Bug 25273 - preup.sh wurde nicht ins lokale Repo synchronisiert
preup.sh wurde nicht ins lokale Repo synchronisiert
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Update - univention-updater
UCS 2.4
Other Linux
: P5 normal (vote)
: UCS 2.4-4
Assigned To: Philipp Hahn
Stefan Gohmann
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-12-07 13:56 CET by Sönke Schwardt-Krummrich
Modified: 2011-12-27 11:01 CET (History)
1 user (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):
Max CVSS v3 score:


Attachments
updater.log (42.35 KB, application/x-gzip)
2011-12-07 13:56 CET, Sönke Schwardt-Krummrich
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sönke Schwardt-Krummrich univentionstaff 2011-12-07 13:56:28 CET
Created attachment 3995 [details]
updater.log

Auf einem UCS 2.4-4 Master mit lokalem Repository wurde der Befehl
  univention-updater net --updateto 3.0-0 --ignoressh
aufgerufen. Das Update auf UCS 3.0 ist dabei fehlgeschlagen:

root@mas116:~# univention-updater net --updateto 3.0-0 --ignoressh
Checking local repository
Update to = 3.0-0
Error: Failed to execute "apt-get -o DPkg::Options::=--force-confold -o
DPkg::Options::=--force-overwrite -o DPkg::Options::=--force-overwrite-dir -y
--force-yes -u dist-upgrade"
Error: Please check "/var/log/univention/updater.log" for details.
root@mas116:~# 

Im lokalen Repository konnte anschließend in 
/var/lib/univention-repository/mirror/3.0/maintained/3.0-0/all/
keine preup.sh und postup.sh gefunden werden.

Ein anschließender Aufruf von "univention-repository-update net" hat dazu
geführt, dass beide Dateien anschließend im lokalen Repo enthalten waren,
so dass diese beim erneuten Updateversuch auch ausgeführt wurden.
Comment 1 Sönke Schwardt-Krummrich univentionstaff 2011-12-07 13:57:22 CET
Erstmal auf 2.4-4 getaggt.
Comment 2 Philipp Hahn univentionstaff 2011-12-15 16:12:07 CET
Trat bei mir auch so auf: Aus meiner /var/log/univention/updater.log:

Preparing to replace slapd 2.4.23-1.47.201102221221 (using .../slapd_2.4.23-7.2.64.201110290030_i386.deb) ...
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Kann LC_ALL nicht auf die Standard-Lokale einstellen: Datei oder Verzeichnis nicht gefunden
 * Stopping ldap server(s): slapd
   ...done.
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Kann LC_ALL nicht auf die Standard-Lokale einstellen: Datei oder Verzeichnis nicht gefunden
  Dumping to /var/backups/slapd-2.4.23-1.47.201102221221: 
  - directory dc=univention,dc=qa... OVER: Loading Translog Overlay
OVER: db_init
OVER: Configuring Translog Overlay
OVER: Configured Translog Overlay to use file "/var/lib/univention-ldap/listener/listener"
bdb(dc=univention,dc=qa): Build signature doesn't match environment
bdb_db_open: database "dc=univention,dc=qa" cannot be opened, err -30971. Restore from backup!
backend_startup_one (type=bdb, suffix="dc=univention,dc=qa"): bi_db_open failed! (-30971)
slap_startup failed
failed.
dpkg: error processing /var/lib/univention-repository/mirror/3.0/maintained/3.0-0/i386/slapd_2.4.23-7.2.64.201110290030_i386.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Kann LC_ALL nicht auf die Standard-Lokale einstellen: Datei oder Verzeichnis nicht gefunden
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Kann LC_ALL nicht auf die Standard-Lokale einstellen: Datei oder Verzeichnis nicht gefunden
  Backing up /etc/ldap/slapd.conf in /var/backups/slapd-2.4.23-7.2.64.201110290030... done.
File: /etc/init.d/slapd
Check database: db4.7_recover: Build signature doesn't match environment
done
   * Starting ldap server(s): slapd
.
...
Errors were encountered while processing:
 /var/lib/univention-repository/mirror/3.0/maintained/3.0-0/i386/slapd_2.4.23-7.2.64.201110290030_i386.deb
Traceback (most recent call last):
  File "/usr/sbin/univention-pkgdb-scan", line 35, in ?
    import univention.pkgdb
  File "/usr/lib/python2.4/site-packages/univention/pkgdb.py", line 35, in ?
    import apt_pkg
ImportError: No module named apt_pkg
E: Sub-process /usr/bin/dpkg returned an error code (1)
Error: Failed to execute "apt-get -o DPkg::Options::=--force-confold -o DPkg::Options::=--force-overwrite -o DPkg::Options::=--force-overwrite-dir -y --force-yes -u dist-upgrade"

Ggf. ist hier der OOM aus Bug #25518 die Ursache?
Comment 3 Philipp Hahn univentionstaff 2011-12-16 20:42:56 CET
Ursache war, das durch --updateto zwar repository/mirror/version/end aktualisiert wurde, allerdings die UniventionMirror()-Instanz noch den alten Wert benutzt hat, die für das Herunterladen der Skript verantwortlich ist.
Der Fehler lässt sich rekonstruieren, wenn man die besagte UCR-Variable per unset entfernt (unset).

svn29987, univention-updater_6.0.111-1.989.201112162029

ChangeLog: (svn11610)
\item In \ucsCommand{univention-repository-update} wurde ein Fehler korrigiert,
der bei Benutzung der \ucsCommand{-{}-updateto}-Option dazu geführt hat, das
die \texttt{preup.sh} und \texttt{postup.sh}-Skripte des Updaters nicht
kopiert wurden (\ucsBug{25273}).
Comment 4 Philipp Hahn univentionstaff 2011-12-19 09:09:21 CET
Die Korrektur ist noch nicht vollständig: Da ein "univention-updater net" mit lokalem Repository zunächst ein (kaputtes) "univention-repository-update net" ausführt, bevor dann ein "univention-updater local" ausgeführt wird, fehlt beim Update dann die preup/postup-Skripte.
Für 2.4-3 → 2.4-4 ist da noch unkritisch, aber für 2.4-4 → 3.0-0 ist das kritisch, weil zwischenzeitlich kein weiteres "uni-repo-up net" aufgerufen wird.

Als Work-Around soll in univention-updater noch ein zusätzlicher Test eingebaut werden, der überprüft, ob das preup-Skript für 3.0-0 da ist und ansonsten abbricht.
Comment 5 Philipp Hahn univentionstaff 2011-12-19 12:56:44 CET
Der Updater prüft nun zusätzlich im "local"-Fall mit lokalem Repository, ob beim Update auf "3.0-0" neben der "all/Packages.gz"-Datei das "preup.sh"-Skript existiert und ruft ansonsten "uni-repo-up net --updateto x.y-z" erneut auf.

svn29997, 6.0.111-2.991.201112191250

ChangeLog: (svn11624)
\item In \ucsCommand{univention-repository-update} und
\ucsCommand{univention-updater} wurde ein Fehler korrigiert,
der bei Benutzung der \ucsCommand{-{}-updateto}-Option dazu geführt hat, das
die \texttt{preup.sh} und \texttt{postup.sh}-Skripte des Updaters nicht
kopiert wurden (\ucsBug{25273}).:
Comment 6 Stefan Gohmann univentionstaff 2011-12-19 17:24:11 CET
Funktioniert.
Comment 7 Stefan Gohmann univentionstaff 2011-12-27 11:01:40 CET
UCS 2.4-4 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert
werden: "Clone This Bug"