Bug 25271 - Neustart von UMC-Server/-Webserver/Apache während Paketaktualisierung oder Update
Summary: Neustart von UMC-Server/-Webserver/Apache während Paketaktualisierung oder Up...
Status: CLOSED FIXED
Alias: None
Product: UCS
Classification: Unclassified
Component: UMC - Software update
Version: UCS 3.0
Hardware: Other Linux
: P2 critical
Target Milestone: UCS 3.0-0-errata
Assignee: Andreas Büsching
QA Contact: Felix Botner
URL:
Keywords:
Depends on:
Blocks: 25810
  Show dependency treegraph
 
Reported: 2011-12-07 13:13 CET by Alexander Kläser
Modified: 2012-08-15 13:35 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):
Customer ID:
Max CVSS v3 score:


Attachments
updater log file (7.84 KB, text/plain)
2011-12-07 13:16 CET, Alexander Kläser
Details
umc-server log file (98.68 KB, text/plain)
2011-12-07 13:17 CET, Alexander Kläser
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Kläser univentionstaff 2011-12-07 13:13:12 CET
Aus Bug 25069, Comment 5:

> Das Problem kann reproduziert werden, wenn bspw. das Paket
> univention-management-console-module-udm aktualisiert wird. Beim Ausführen des
> postinst-Paketes wird apache2 neu gestartet:
> 
> ====================
> ...
> Site univention-directory-manager already enabled
> Restarting web server: apache2 ... waiting .
> Processing triggers for python-support ...
> 
> The update has been finished successfully at Wed Dec 7 12:42:02 CET 2011.
> ====================
> 
> Dadurch geht ein Status-Request bereits im Apache verloren, d.h. er wird nicht
> bis zum UMC-Server durchgereicht. Auf der Client-Seite wird der Request mit
> einem Fehler beantwortet und der Code sieht nicht vor, dass der Status auch im
> Fehlerfall erneut abgefragt wird. Der Fix schließt diese Lücke.
> 
> Eine spannende Frage ist, warum Apache überhaupt neu gestartet werden kann,
> denn sein Ausführungsrecht wurde vor dem Update-Vorgang weg genommen.

→ Dem Fall sollte noch etwas mehr Beachtung geschenkt werden. Die Execute-Rechte wuden im AT-Job weggenommen (das wurde während des Updates für UMC-Web- und -Server überprüft während des Update-Vorgangs), nichtdestotrotz kann Apache neu gestartet werden. Es scheint, dass der UMC-Server auch einen Reload durchführt, obwohl dies ebenfalls nicht geschehen sollte. Das hängt damit evtl. zusammen.
Comment 1 Alexander Kläser univentionstaff 2011-12-07 13:16:48 CET
Created attachment 3993 [details]
updater log file
Comment 2 Alexander Kläser univentionstaff 2011-12-07 13:17:36 CET
Created attachment 3994 [details]
umc-server log file

Note that the UMC-server performs a reload several times during the update.
Comment 3 Alexander Kläser univentionstaff 2011-12-23 14:25:17 CET
Das gleiche Problem trat bei mir auch während eines Test-Updates auf 3.0-1 auf. Dabei waren UMC-Server und -Webserver gestoppt nach dem Update.
Comment 4 Stefan Gohmann univentionstaff 2012-01-02 07:18:03 CET
Das Verhalten ist auch beim Update dist-upgrade nach der 3.0 Repository Aktualisierung aufgetreten. Das sollte in einem errata Update behoben werden.
Comment 5 Ingo Steuwer univentionstaff 2012-01-02 16:05:07 CET
Ist bei mir gerade beim Einspielen der ersten 8 errata-Updates aufgetreten (wurden per UMC eingespielt, während der Installation hatte das System noch kein Netz). Manuelles Start des UMC-Serves half nicht, der Prozess lief auch:

 5571 ?        S      0:00 /usr/bin/python2.6 /usr/sbin/univention-management-console-server start


"F5" hat den UMC-Login neu geladen, die Anmeldung scheiterte aber.

Nach Reboot per SSH geht der Login wieder.
Comment 6 Andreas Büsching univentionstaff 2012-01-03 10:23:01 CET
Während eines errata-Updates gab es folgende Rechte:

root@master:~# ls -l /usr/sbin/univention-management-console-web-server /usr/sbin/univention-management-console-server /usr/sbin/apache2 -L
-rw-r-xr-x 1 root root 398624 10. Okt 12:18 /usr/sbin/apache2
-rw-r-xr-x 1 root root   7084  5. Dez 18:06 /usr/sbin/univention-management-console-server
-rw-r-xr-x 1 root root  22763 25. Nov 19:30 /usr/sbin/univention-management-console-web-server

Das würde erklären wieso die Dienste trotzdem neugestartet werden. Der Grund für die Rechte ist noch unklar.
Comment 7 Andreas Büsching univentionstaff 2012-01-04 16:50:48 CET
(In reply to comment #6)
> Das würde erklären wieso die Dienste trotzdem neugestartet werden. Der Grund
> für die Rechte ist noch unklar.

Grund ist die neue umask vom UMC-Server:

chmod -x entfernt nur die bits, die NICHT in der umask gesetzt sind

chmod a-x entfernt sie ohne Einschränkung -> Lösung!
Comment 8 Andreas Büsching univentionstaff 2012-01-05 09:21:01 CET
(In reply to comment #7)
> (In reply to comment #6)
> > Das würde erklären wieso die Dienste trotzdem neugestartet werden. Der Grund
> > für die Rechte ist noch unklar.
> 
> Grund ist die neue umask vom UMC-Server:
> 
> chmod -x entfernt nur die bits, die NICHT in der umask gesetzt sind
> 
> chmod a-x entfernt sie ohne Einschränkung -> Lösung!

Das wurde jetzt implementiert und für UCS 3.0-1 sowie als errata Update gebaut

- ChangeLog 3.0-1 wurde ergänzt
- YAML-File: 2012-01-05-univention-updater.yaml
Comment 9 Felix Botner univentionstaff 2012-01-05 12:17:35 CET
Funktioniert. während des Update über UMC sind die Execute-Rechte an /usr/sbin/univention-management-console-server /usr/sbin/univention-management-console-web-server und /usr/lib/apache2/mpm-prefork/apache2 nicht gesetzt. Wenn das Update durch ist, sind sie wieder gesetzt. Im errata und Patchlevel Update getestet.

Gebaut in errata3.0-0 und ucs3.0-1, yaml Datei vorhanden.

Versionen OK:

# patchlevel
-> find ucs_3.0-0-ucs3.0-1/all/| grep updater
ucs_3.0-0-ucs3.0-1/all/univention-updater_7.0.132-1.1000.201201050921_all.deb
ucs_3.0-0-ucs3.0-1/all/univention-management-console-module-updater_7.0.132-1.1000.201201050921_all.deb

# errata
-> find ucs_3.0-0-errata3.0-0/all/| grep updater
ucs_3.0-0-errata3.0-0/all/univention-management-console-module-updater_7.0.127-2.999.201201050859_all.deb
ucs_3.0-0-errata3.0-0/all/univention-updater_7.0.127-2.999.201201050859_all.deb

# ucs 3.0-0
-> find ucs_3.0-0/all/| grep updater
ucs_3.0-0/all/univention-updater_7.0.127-2.997.201112221419_all.deb
ucs_3.0-0/all/univention-management-console-module-updater_7.0.127-2.997.201112221419_all.deb