Bug 27098 - Suche nach Errata-Updates, wo keine sind
Suche nach Errata-Updates, wo keine sind
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC - Software update
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.0-2
Assigned To: Philipp Hahn
Andreas Büsching
: interim-1
Depends on:
Blocks: 27151 27713 28187
  Show dependency treegraph
 
Reported: 2012-05-11 15:47 CEST by Sönke Schwardt-Krummrich
Modified: 2012-08-13 08:45 CEST (History)
4 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):
Max CVSS v3 score:


Attachments
bug_27098.patch (925 bytes, patch)
2012-05-15 21:29 CEST, Stefan Gohmann
Details | Diff
bug_27098_v2.patch (1.63 KB, patch)
2012-05-15 22:13 CEST, Stefan Gohmann
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sönke Schwardt-Krummrich univentionstaff 2012-05-11 15:47:26 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.
Comment 1 Sönke Schwardt-Krummrich univentionstaff 2012-05-11 15:50:40 CEST
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.
Comment 2 Stefan Gohmann univentionstaff 2012-05-15 21:29:27 CEST
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.
Comment 3 Stefan Gohmann univentionstaff 2012-05-15 22:13:55 CEST
Created attachment 4377 [details]
bug_27098_v2.patch

Aktualisierter Patch.
Comment 4 Philipp Hahn univentionstaff 2012-05-16 11:46:54 CEST
(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.
Comment 5 Philipp Hahn univentionstaff 2012-05-21 15:24:31 CEST
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.
Comment 6 Sönke Schwardt-Krummrich univentionstaff 2012-06-14 13:38:33 CEST
Der Patch ist in UCS 3.0-2 noch nicht enthalten.
Comment 7 Philipp Hahn univentionstaff 2012-06-18 16:30:48 CEST
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/>
Comment 8 Andreas Büsching univentionstaff 2012-06-21 13:47:59 CEST
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.
Comment 9 Stefan Gohmann univentionstaff 2012-07-20 15:24:23 CEST
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".
Comment 10 rolandb 2012-08-02 09:03:56 CEST
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
Comment 11 Philipp Hahn univentionstaff 2012-08-02 12:49:43 CEST
(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.
Comment 12 rolandb 2012-08-02 13:32:53 CEST
(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).