Univention Bugzilla – Bug 29970
UCS 3.1 Appliance: UCR Variablen aus postinst-Skripten sind nicht gesetzt.
Last modified: 2013-01-15 15:15:47 CET
Bei der genaueren Analyse von Bug 29961 fiel auf, dass eine UCR-Variablen, die in univention-samba4.postinst gesetzt werden, sich dann nicht in base.conf finden.
Created attachment 4958 [details] /var/log/univention/config-registry.replog
Created attachment 4959 [details] base.conf Die base.conf wurde ein paar Sekunden vor der config-registry.replog kopiert, man sieht aber, dass z.B. alle connector/.* Variablen nicht da sind ebenso wie die meisten der samba./ Variablen.
Created attachment 4960 [details] Tar mit allen Dateien z.B. sieht man im log, dass connector/s4/listener/dir gesetzt wird, aber nach Abschluß von system-setup ist die Variable nicht in base.conf
Created attachment 4961 [details] setup.log
Der Status sollte nochmal geprüft werden, wenn Bug #15723 behoben ist. Siehe auch Bug #29758.
Den Effekt hatte ich im Appliance-Mode ebenfalls nachdem ich als zusätzliche Software univention-mail-server ausgewählt hatte. Die UCR-Variablen aus univention-mail-server.postinst sind nach dem Durchlauf ebenfalls nicht gesetzt, obwohl die Änderung in config-registry.replog korrekt angezeigt wird.
In system-setup wird im Software-Installationsprozess jetzt kein bash-Skript mehr benutzt, sondern ein Python-Skript: SoftwareScript(AptScript). Und das ruft am Anfang ein ucr.load() und am Ende automatisch ein self.commit_ucr() auf: ucr.save() ucr.load() if self._ucr_changes: [...] # handler, aber der Teil wird nicht ausgeführt werden, denn das Skript setzt keine UCR-Variablen Kann das zu den beschriebenen Problemen führen (insbesondere das save)?
(In reply to comment #7) > In system-setup wird im Software-Installationsprozess jetzt kein bash-Skript > mehr benutzt, sondern ein Python-Skript: SoftwareScript(AptScript). Und das > ruft am Anfang ein ucr.load() und am Ende automatisch ein self.commit_ucr() > auf: > ucr.save() > ucr.load() > if self._ucr_changes: > [...] # handler, aber der Teil wird nicht ausgeführt werden, denn das > Skript setzt keine UCR-Variablen > > Kann das zu den beschriebenen Problemen führen (insbesondere das save)? Ja, dann wird der UCR-Zustand am Anfang einmal ausgelesen und am Ende wird der Anfangszustand wieder zurückgeschrieben.
(In reply to comment #8) > Ja, dann wird der UCR-Zustand am Anfang einmal ausgelesen und am Ende wird der > Anfangszustand wieder zurückgeschrieben. Deswegen siehe Bug #15723 comment 3; da ist auch ein Patch für base/univention-system-setup/umc/python/setup/setup_script.py
Fixed in: univention-system-setup 6.0.56-1.433.201301091151
Beim Reproduzieren des Fehlers ist mir aufgefallen, dass die UCR-Variablen von anderen postinst-Skripten (bspw. Nagios-Server) gesetzt werden. Mir ist nicht wirklich verständlich warum dem so ist. Wie dem auch sei, zuverlässig konnte ich das Problem mit univention-samba4 und univention-s4-connector nachstellen. Es wurde mir allerdings kein Hinweis ausgegeben in System-Setup, dass die Samba-Joinskripte fehlerhaft ausgeführt wurden (wie dies berichtet wurde). Mit anderen Worten, der Exit-Status der Samba-Joinskripte scheint normal zu sein → ist das so gewollt? univention-check-join-status zeigt jedoch die Join-Skripte als noch nicht ausgeführt an: ==================== root@appliance86:~# univention-check-join-status Warning: 'univention-samba4' is not configured. Warning: 'univention-s4-connector' is not configured. Warning: 'univention-samba4-dns' is not configured. Error: Not all install files configured: 3 missing ==================== Vielleicht wäre es sinnvoll, dass System-Setup am Ende den Join-Status noch einmal überprüft, bzw. die Samba-Joinskripte sollten einen korrekten Fehlerstatus zurückgeben. Vielleicht ist deshalb der Fehler auch noch nicht früher aufgefallen? Fix: OK YAML-Datei: OK Übernahme nach 3.1-1: OK Changelog 3.1-1: OK
(In reply to comment #11) > ... > Fix: OK → will heißen durch die hier eingebrachten Änderungen funktioniert die Installation nun korrekt.
> Es wurde mir allerdings kein Hinweis ausgegeben in System-Setup, dass die > Samba-Joinskripte fehlerhaft ausgeführt wurden (wie dies berichtet wurde). Mit > anderen Worten, der Exit-Status der Samba-Joinskripte scheint normal zu sein → > ist das so gewollt? Die exit codes sind != 0, aber univention-system-setup/scripts/setup-join.sh prüft das nicht, siehe Patch an Bug #29969 ;-)
(In reply to comment #13) > Die exit codes sind != 0, aber univention-system-setup/scripts/setup-join.sh > prüft das nicht, siehe Patch an Bug #29969 ;-) Ja, stimmt, danke für den Hinweis :) !
YAML-Datei: 2012-12-21-univention-system-setup.yaml
http://errata.univention.de/3.1-errata10.html