Univention Bugzilla – Bug 28820
Update eines ungejointen System - OpenLDAP in UCS 3.1
Last modified: 2012-12-12 21:08:55 CET
Prüfung zu interim-3. +++ This bug was initially created as a clone of Bug #27992 +++ (In reply to comment #10) > Das Aktualisieren eines ungejointen UCS-3.0-2-Generic Backup auf UCS-3.1 geht > schief: Irgendwas™ geht schief: > > Vorbereiten zum Ersetzen von slapd 2.4.23-7.2.64.201110290030 (durch .../slapd_2.4.31-1.73.101208231905_amd64.deb) ... > > Stopping ldap server(s): slapd ...done. > > Dumping to /var/backup/slapd-2.4.23-7.2.64.201110290030: > > - directory dc=ucs,dc=test... bdb_db_open: database "dc=ucs,dc=test": db_open(/var/lib/univention-ldap/ldap/id2entry.bdb) failed: No such file or directory (2). > > backend_startup_one (type=bdb, suffix="dc=ucs,dc=test"): bi_db_open failed! (2) > > slap_startup failed > > failed > > dpkg: Fehler beim Berarbeiten von /var/cache/apt/archives/slapd_2.4.31-1.73.201208231905_amd64.deb (- > > Unterprozess neues pre-installation-Skript gab den Fehlerwert 1 zurück > > configured to not write apport reports > ... > > Checking Schema ID: ....invoke-rc.d: initscript slapd, action "start" failed. > > dpkg: Fehler beim Aufräumen: > > Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück > ... > > Ersatz für libldap-2.4.2 wird entpackt ... > > Danach ist eine Mischung von altem "slapd"-Paket und neuer "libldap" > installiert. slapcat funktioniert danach nicht mehr und meckert: > > slapcat: Symbol `ldap_int_global_options' has different size in shared object, consider re-linking. > > Da das im prerm zum Sichern der LDAP-DB aufgerufen wird, funktioniert dann > weder ein Down- noch Upgrade. > > Das sieht so erstmal danach aus, als ob die Shared-Library-Versionsnummer von > libldap-2.4 nicht erhöht worden ist, obwohl sich das Interface einer Funktion > gegenüber der früheren version geändert hat. > Ggf. REOPEN?
Ich habe das gestern schon mit Arvid diskutiert: Die Vermutung geht dahin, daß das ein hausgemachtes Problem der Generic-Templates oder von System-Setup ist. Ein slapcat scheint den Inhalt von /var/lib/ldap/ zu dumpen, erst mit der Option -c /etc/ldap/slapd.conf wird dann wohl /var/lib/univention-ldap/ldap verwendet. Da dort noch keine DB liegt, geht der Dump schief und das Upgrade von slapd bricht ab. Kopier man vorher /var/lib/ldap/* nach /var/lib/univention-ldap/ldap/, dann funktioniert das Update (besser? kann ich nicht genau sagen, da mein Testsystem dann schon in einem eher kaputten Zustand war).
Das Problem ist, dass wir die slapd.conf auch auf einem ungejointen System schon schreiben. Die dortige Konfiguration stimmt dann aber nicht mit den Daten aus /var/lib/ldap... überein, so dass einige Funktionen aus dem post/pre inst fehlschlagen. Im postinst wird database_dumping nun nicht mehr gestartet, wenn das System ein Univention System und noch nicht gejoint ist. Im postinst wird move_incompatible_databases_away nicht mehr ausgeführt, wenn das System ein Univention System und noch nicht gejoint ist. Getestet mit ungejoineten Backup update auf 3.1, gejointem Backup update auf 3.1. TODO: Master 3.1 Installation, Backup 3.1 Installation und join
*** Bug 29047 has been marked as a duplicate of this bug. ***
Ich konnte jetzt keine Probleme mehr feststellen * ungejointer 3.0-2 Backup update auf 3.1 * gejointer 3.0-2 Backup update auf 3.1 * Master/Backup 3.1 Neuinstallation * 3.1 Backup Join
Verified: * Funktion OK * Einschränkung: Datenbank-Migration bei Datenbank-Formatwechsel wird jetzt nur noch bei Paketinstallation im gejointen Zustand durchgeführt. Das ist OK. Vorschlag: * Besser auf /var/univention-join/joined testen? (Bug #28991)
(In reply to comment #5) > Verified: > * Funktion OK > * Einschränkung: Datenbank-Migration bei Datenbank-Formatwechsel > wird jetzt nur noch bei Paketinstallation im gejointen Zustand durchgeführt. > Das ist OK. > > Vorschlag: > * Besser auf /var/univention-join/joined testen? (Bug #28991) Patch wurde auch /var/univention-join/joined umgestellt.
Der Patch wurde nochmal umgestellt. Es wird nun nicht mehr so etwas gemacht [ ! -e /var/univention-join/joined -a "Univention" = "$(lsb_release -si)" ] sondern local distributor="Debian" if [ -x "$(which lsb_release)" ]; then distributor="$(lsb_release -si)" fi if [ -e /var/univention-join/joined -o "Univention" != "$distributor" ]; then
Anpassungen sind ok.
UCS 3.1-0 has been released: http://forum.univention.de/viewtopic.php?f=54&t=2125 If this error occurs again, please use "Clone This Bug".