Bug 26884 - Manchmal bleibt der UMC Web-Server in einem futex hängen
Manchmal bleibt der UMC Web-Server in einem futex hängen
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC (Generic)
UCS 3.0
Other Linux
: P3 normal (vote)
: UCS 3.0-2
Assigned To: Sönke Schwardt-Krummrich
Felix Botner
: interim-3
: 27022 (view as bug list)
Depends on:
Blocks: 27113
  Show dependency treegraph
 
Reported: 2012-04-24 11:47 CEST by Andreas Büsching
Modified: 2012-07-20 15:25 CEST (History)
3 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional): Troubleshooting
Max CVSS v3 score:


Attachments
test patch (1.69 KB, patch)
2012-04-24 11:47 CEST, Andreas Büsching
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Büsching univentionstaff 2012-04-24 11:47:21 CEST
Created attachment 4344 [details]
test patch

Es konnte jetzt ein paar Mal reproduziert werden, allerdings immer noch nicht
zuverlässig. Die Situation war folgende:

- Sitzung öffnen in der UMC
- Ein UMC-Modul installieren (reinstall reicht)
- An der UMC neu anmelden als der gleiche Benutzer (reload im Browser)

Ein Thread des UMC-Web-Servers starb dann mit einem Traceback (nur der letzte
Teil):

  File \"/usr/sbin/univention-management-console-web-server\", line 122, in
_authenticated
    self._auth_response_queue.put( self._auth_response )
AttributeError: 'NoneType' object has no attribute 'put'

Eien mit dem angehängten Patch angepasste Variante hatte das Problem nicht
mehr. Allerdings habe ich noch meine Zweifel, dass das an dem Patch lag ;)

Wenn möglich wäre es gut, wenn beim Auftreten des Problems dieser Patch einmal
getestet wird und dann das Log vom UMC Web-Server abgehängt wird.
Comment 1 Sönke Schwardt-Krummrich univentionstaff 2012-07-10 09:57:15 CEST
Um das Problem wahrscheinlicher zu machen, kann ein sleep im UMC-Webserver eingebaut werden:

--- /usr/sbin/univention-management-console-web-server.ORIG     2012-07-09 16:41:41.000000000 +0200
+++ /usr/sbin/univention-management-console-web-server  2012-07-09 16:41:54.000000000 +0200
@@ -73,6 +73,7 @@
                self.client = umcp.Client()
                self.client.signal_connect( 'authenticated', self._authenticated )
                self.client.signal_connect( 'response', self._response )
+               time.sleep(3)
                if self.client.connect():
                        CORE.info('SessionClient(0x%x): connected to UMC server' % (id(self),))
                else:


Über den folgenden Einzeiler können dann fortlaufende Authentifizierungsversuche an der UMC durchgeführt werden (Paket curl installieren):

while /bin/true; do date; curl --cookie-jar cookies.txt --data-binary '{"options":{"username":"Administrator","password":"univention"}}' -H "Content-Type: application/json" -v http://10.200.18.67/umcp/auth; date ; done

Bei einem Neustart des UMC-Servers (nicht der UMC-Webserver!) bleibt ggf. der curl-Prozess hängen. Ggf. UMC-Server sogar kurz anhalten. Wenn man den hängenden curl-Prozess über Ctrl-c beendet, anschließend neustartet und er weiterhin hängt, hat man das Problem getriggert.

Für eigene Tests:

Authentifizieren:
curl --cookie-jar cookies.txt --data-binary '{"options":{"username":"Administrator","password":"univention2"}}' -H "Content-Type: application/json" -v http://10.200.18.67/umcp/auth 

UCR-Variablen auslesen:
curl -b cookies.txt --data-binary '{"options":["ssl/validity/days","ssl/validity/warning","update/available","update/reboot/required"]}' -H "Content-Type: application/json" -v http://10.200.18.67/umcp/get/ucr


Der Patch wurde mit leichten Anpassungen übernommen:
- continue statt return
- client.connect() liefert immer None zurück oder wirft eine Exception

Changelogeintrag wurde erstellt
univention-management-console-frontend (1.0.384-1) unstable; urgency=low
Paket wurde neu gebaut
Comment 2 Sönke Schwardt-Krummrich univentionstaff 2012-07-10 10:01:42 CEST
Hinweis: der Traceback ist nur über strace sichtbar gewesen.
Der jeweilige Thread hängt dann und wird nicht sauber beendet, was den Neustart des UMC-Web-Servers behindert (siehe Bug 27022/22634). Gleichzeitig bekommt der Apache keine Antwort mehr, so dass auch diese Verbindung zu hängen scheint.
Comment 3 Sönke Schwardt-Krummrich univentionstaff 2012-07-10 10:04:36 CEST
*** Bug 27022 has been marked as a duplicate of this bug. ***
Comment 4 Felix Botner univentionstaff 2012-07-17 11:15:11 CEST
OK, konnte in der alten Version reproduziert werden, in der neuen nicht.

Changelog Eintrag vorhanden.
Comment 5 Stefan Gohmann univentionstaff 2012-07-20 15:25:10 CEST
UCS 3.0-2 has been released: 
  http://forum.univention.de/viewtopic.php?f=54&t=1905

If this error occurs again, please use "Clone This Bug".