Univention Bugzilla – Bug 26884
Manchmal bleibt der UMC Web-Server in einem futex hängen
Last modified: 2012-07-20 15:25:10 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.
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
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.
*** Bug 27022 has been marked as a duplicate of this bug. ***
OK, konnte in der alten Version reproduziert werden, in der neuen nicht. Changelog Eintrag vorhanden.
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".