Univention Bugzilla – Bug 27098
Suche nach Errata-Updates, wo keine sind
Last modified: 2012-08-13 08:45:00 CEST
Aktuell wird im Online-Update-Modul bei Components, für die nicht "version=current" gesetzt ist, nach den Errata 1 bis 999 gesucht, obwohl für alle URLs ein 404 zurückgegeben wird. "Für UCS sind 70 Errata-Aktualisierungen verfügbar und für die Komponente oxmobility sind 999 Errata-Aktualisierungen verfügbar und für die Komponente ox sind 999 Errata-Aktualisierungen verfügbar." Die Suche dauert bei mehreren Components entsprechend lange.
Debugging-Hinweise: → get_all_available_errata_component_updates() → get_component_repositories() → _iterate_component_repositories() dort werden die Exceptions ConfigurationError, ProxyError und DownloadError ignoriert, sofern (component in self.get_current_components()) nicht gegeben ist.
Created attachment 4376 [details] bug_27098.patch Das Problem scheint zu sein, dass immer wieder nach component/ und nicht nach component-errata/ gefragt wird. Der Patch behebt das Problem in meinen Testumgebungen.
Created attachment 4377 [details] bug_27098_v2.patch Aktualisierter Patch.
(In reply to comment #1) > Debugging-Hinweise: > → get_all_available_errata_component_updates() > → get_component_repositories() > → _iterate_component_repositories() > dort werden die Exceptions ConfigurationError, ProxyError und DownloadError > ignoriert, sofern (component in self.get_current_components()) nicht gegeben > ist. get_all_available_errata_component_updates() möchte eine Liste nur der Versionen erstellen. Da es dafür direkt keine Funktion gibt, wird hier get_component_repositories() missbraucht und in einer selbstgebauten Schleife über alle Errata-Version aufgerufen. Da diese Funktion Debian-Depot-Statements zurückgibt, wird nur getestet, ob die Rückgabe nicht-leer ist. Innerhalb von get_component_repositories() wird extra für OX ein 3. Depot-Schema implementiert, in dem NICHT die Errata-Versionsnummer eingebaut wird. Damit wird dort jedesmal die gleiche URL getestet, deren Vorhandensein in ein gültiges Depot-Statement umgewandelt wird. Wegen dieses Erfolgs wird nicht angebrochen. Attachment 4377 [details] korrigiert das, indem auch beim Iterieren über die OX-Erratas die Versionsnummer eingeschoben wird. Da diese dann nicht mehr vorhanden sind, führt das Fehler des Depots dann zum Abbruch. 2. Anmerkung: _iterate_component_repositories() iteriert auch selber nochmal über alle Errata-Versionen, weshalb da jetzt doppelt drüber iteriert wird.
Problem kann mit univention-updater_7.0.155-1.1026.201203011359 über eine modifizierte Variante von ucs-test/tests/09_updater/52component-nonstd nachgestellt werden. Mit der gepatchten Version tritt das Problem nicht mehr auf. python -c "import sys;from univention.updater.tools import UniventionUpdater as U;u=U();sys.exit(len(dict(u.get_all_available_errata_component_updates())['${compname}']['${_version_version}']))" svn10384, univention-updater_7.0.155-1.1035.201205211034 yaml: svn13160 Fix detection of errata updates for components using non-architecture format.
Der Patch ist in UCS 3.0-2 noch nicht enthalten.
svn33624, univention-updater_7.0.163-1.1038.201206181625 ChangeLog: (svn13518) \item A bug in the detection of component errata updates was fixed, which could lead to wrongly detected and long running updates (\ucsBug{27098}). <http://jenkins.knut.univention.de:8080/job/UCS-3.0-2%20Release%20Notes/12/>
Das funktioniert. Ich habe dafür ein OX-System aufgesetzt. Da hat univention-upgrade wie erwartet keine gefunden. Mit dem Update auf UCS 3.0-2 wurde der Updater mit der Version 7.0.166-1.1040.201206201615 eingespielt. Auch der findet keine erratas. ChangeLog-Eintrag existiert.
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".
Hallo Leute Bei ucs@school werden auch nach UCS3.0-2 keine Erratas korrekt in das lokale Repository heruntergeladen. Wir mussten diese selbst in der Datei /var/lib/univention-repository/mirror/3.0/maintained/component/ eintragen. repository/online/component/ucsschool/3.0/erratalevel: 5 repository/online/component/ucsschool/server: apt.univention.de repository/online/component/ucsschool/version: current repository/online/component/ucsschool: enabled version/erratalevel: 97 version/patchlevel: 2 version/releasename: Horn-Lehe version/security-patchlevel: 7 version/version: 3.0 Bei unserer Installation handelt es sich um einen DC-Master mit einem lokalen Repository. Den Status des Bugs kann ich nicht anpassen, das müsste jemand von Univention machen. mfg, Rolandb
(In reply to comment #10) > Bei ucs@school werden auch nach UCS3.0-2 keine Erratas korrekt in das lokale > Repository heruntergeladen. Wie werden die Updates eingespielt? Per "univention-repository-update net" oder wurden die .tar.gz-Dateien heruntergeladen? Letztere waren leider kaputt, was das Problem erklären würde. > Den Status des Bugs kann ich nicht anpassen, das müsste jemand von Univention > machen. Da der Bug bereits für UCS-3.0 geschlossen wurde, muß de Bug geklont werden, um ihn erneut für UCS-3,x bzw. UCS@scholl zu öffnen.
(In reply to comment #11) > (In reply to comment #10) > > Bei ucs@school werden auch nach UCS3.0-2 keine Erratas korrekt in das lokale > > Repository heruntergeladen. > > Wie werden die Updates eingespielt? Per "univention-repository-update net" oder > wurden die .tar.gz-Dateien heruntergeladen? Letztere waren leider kaputt, was > das Problem erklären würde. mittels "univention-repository-update net --updateto=3.0-2" nur die erratas von den "component/ucsschool" wurden nicht automatisch heruntergeladen (/etc/apt/mirror.list).