Bug 21933 - apt/mirror.list unvollständig wenn eine Komponente auf dem mirror server nicht vorhanden ist
apt/mirror.list unvollständig wenn eine Komponente auf dem mirror server nich...
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Update - Repository administration
UCS 2.4
Other Linux
: P5 normal (vote)
: UCS 2.4-2
Assigned To: Philipp Hahn
Felix Botner
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-03-22 13:19 CET by Felix Botner
Modified: 2011-04-04 15:47 CEST (History)
2 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:
hahn: Patch_Available+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Botner univentionstaff 2011-03-22 13:19:43 CET
2.4-2

-> ucr set repository/online/component/ucd=enable

-> more /etc/apt/mirror.list| grep ucd
deb http://apt.univention.de/2.4/maintained/component/ ucd/all/
deb http://apt.univention.de/2.4/maintained/component/ ucd/i386/
deb http://apt.univention.de/2.3/maintained/component/ ucd/all/
deb http://apt.univention.de/2.3/maintained/component/ ucd/extern/
deb http://apt.univention.de/2.3/maintained/component/ ucd/i386/

# diese Komponente gibt es nicht
-> ucr set repository/online/component/abc=enable

In mirror.list sind nun zwar die Release und Security Updates, aber alle Komponenten fehlen, auch die, die es eigentlich gibt.

-> more /etc/apt/mirror.list
...
deb http://apt.univention.de/2.4/maintained/ sec2/i386/
# An error occurred during the repository check. The error message:
#   univention.updater.errors.ConfigurationError: Configuration error: 
#     component not found

# After fixing this issue, you should rewrite this file with the 
#  following command:
#   univention-config-registry commit /etc/apt/mirror.list
#
Comment 1 Philipp Hahn univentionstaff 2011-03-23 08:02:05 CET
Das Problem an dieser Stelle ist, daß die Updater-Implementierung eine Fehlkonfiguration meldet: Eine aktivierte Komponente wurde nicht gefunden. Dies wird per Ausnahme gemeldet, damit z.B. bei direkten Aufruf von u-updater dem Benutzer diese Fehlkonfiguration direkt gemeldet werden kann. Ansonsten können solche Dinge passieren, daß z.B. wegen der Fehlkonfiguration überhaupt keine Updates gefunden werden können und dann behauptet wird, daß keine Updates verfügbar sind und daß das System aktuell sei.

Die gleiche Funktion wird aber auch durch das "ucr commit /etc/apt/sources.list.d/20_ucs-online-component.list" bzw. "/etc/apt/mirror.list" aufgerufen, die dann statt der Liste der Repositories besagte Ausnahme liefert. Dort gibt es keine prominentere Möglichkeit, der Benutzer auf eine Fehlkonfiguration aufmerksam zu machen. Dadurch ist es dann schon zu anderen Fehlern gekommen, siehe dazu insbesondere Bug #21583.

Ggf. ist folgendes hilfreich:
--- univention-updater/modules/univention/updater/tools.py      (Revision 23105)
+++ univention-updater/modules/univention/updater/tools.py      (Arbeitskopie)
@@ -1213,7 +1213,12 @@
                                server = self._get_component_server(component)
                                version = ','.join(map(str, versions))
                                uri = server.join('%s/component/%s/' % (version, component))
-                               raise ConfigurationError(uri, 'component not found')
+                               msg = "component '%s' not found" % component
+                               if for_mirror_list:
+                                       result.append('# ERROR: %s' % msg)
+                                       continue
+                               else:
+                                       raise ConfigurationError(uri, 'component not found')
                        result += repos
                return '\n'.join(result)
Comment 2 Stefan Gohmann univentionstaff 2011-03-23 08:05:43 CET
(In reply to comment #1)
> Die gleiche Funktion wird aber auch durch das "ucr commit
> /etc/apt/sources.list.d/20_ucs-online-component.list" bzw.
> "/etc/apt/mirror.list" aufgerufen, die dann statt der Liste der Repositories
> besagte Ausnahme liefert. Dort gibt es keine prominentere Möglichkeit, der
> Benutzer auf eine Fehlkonfiguration aufmerksam zu machen. Dadurch ist es dann
> schon zu anderen Fehlern gekommen, siehe dazu insbesondere Bug #21583.

Das bedeutet mit 2.4-1 war das Ergebnis in der mirror.list noch anders? Wenn ja, dann sollten wir das zur 2.4-2 noch beheben.
Comment 3 Stefan Gohmann univentionstaff 2011-03-23 16:56:29 CET
(In reply to comment #2)
> (In reply to comment #1)
> > Die gleiche Funktion wird aber auch durch das "ucr commit
> > /etc/apt/sources.list.d/20_ucs-online-component.list" bzw.
> > "/etc/apt/mirror.list" aufgerufen, die dann statt der Liste der Repositories
> > besagte Ausnahme liefert. Dort gibt es keine prominentere Möglichkeit, der
> > Benutzer auf eine Fehlkonfiguration aufmerksam zu machen. Dadurch ist es dann
> > schon zu anderen Fehlern gekommen, siehe dazu insbesondere Bug #21583.
> 
> Das bedeutet mit 2.4-1 war das Ergebnis in der mirror.list noch anders? Wenn
> ja, dann sollten wir das zur 2.4-2 noch beheben.

Felix, kannst du das nochmal kurz testen?
Comment 4 Philipp Hahn univentionstaff 2011-03-23 16:59:33 CET
(In reply to comment #2)
> Das bedeutet mit 2.4-1 war das Ergebnis in der mirror.list noch anders?

Ja: <= 2.4-1 wurden die funktionierenden Repository-Einträge und die Fehler als
Kommentare generiert, mit 2.4-2devel nur noch eine Fehlermeldung für alle
Komponenten, das eine kaputt ist.

> Wenn ja, dann sollten wir das zur 2.4-2 noch beheben.

Das wurde jetzt angepasst:
univention.updater.UniventionUpdater().print_component_repositories() gibt
jetzt wieder Repositories für alle noch funktionierende Komponenten und einen
Kommentar mit einer Fehlermeldung für die fehlerhaft konfigurierten Komponenten
aus. Ein direkter Aufruf von u-updater bringt weiterhin das Update ab und weist
auf die Fehlkonfiguration hin.

svn23140, univention-updater_6.0.80-1.780.201103231656

Kein ChangeLog-Eintrag notwendig, da der Fehler nur in 2.4-2devel auftrat.
Comment 5 Felix Botner univentionstaff 2011-03-24 09:38:17 CET
repository/online/component/abc: enable
repository/online/component/def: true
repository/online/component/ucd: enable

/etc/apt/mirror.list und /etc/apt/sources.list.d/20_ucs-online-component.list sehen gut aus. Jedoch wird das update selbst nicht abgebrochen.

-> ucr set version/patchlevel="0"
-> univention-updater net


Das ist aber erstmal OK so, da man diese Funktionalität eigentlich mit version=current bekommt.


/etc/apt/sources.list.d/20_ucs-online-component.list:
...repository.knut.univention.de/2.4/maintained/component/ ucd/all/
...repository.knut.univention.de/2.4/maintained/component/ ucd/i386/
...repository.knut.univention.de/2.3/maintained/component/ ucd/all/
...repository.knut.univention.de/2.3/maintained/component/ ucd/extern/
...repository.knut.univention.de/2.3/maintained/component/ ucd/i386/
# Configuration error: component not found: abc
# Configuration error: component not found: def

/etc/apt/mirror.list:
...
deb http://apt.univention.de/2.4/maintained/component/ ucd/all/
deb http://apt.univention.de/2.4/maintained/component/ ucd/i386/
deb http://apt.univention.de/2.3/maintained/component/ ucd/all/
deb http://apt.univention.de/2.3/maintained/component/ ucd/extern/
deb http://apt.univention.de/2.3/maintained/component/ ucd/i386/
# Configuration error: component not found: abc
# Configuration error: component not found: def
Comment 6 Sönke Schwardt-Krummrich univentionstaff 2011-04-04 15:47:03 CEST
UCS 2.4-2 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden:
"Clone This Bug".