opsi-package-updater: Prüfen, ob er bereits läuft

Antworten
joneuhauser
Beiträge: 4
Registriert: 22 Jul 2022, 15:58

opsi-package-updater: Prüfen, ob er bereits läuft

Beitrag von joneuhauser »

Was sollte passieren?
Wenn opsi-package-updater startet, sollte er prüfen, ob bereits ein anderer Prozess von opsi-package-updater läuft, und in dem Fall eine Fehler-Email senden, anstatt sich gegenseitig zu ärgern. Ich hatten aus Versehen zwei Cronjobs aktiv.

Was ist passiert?
Sind im Log Fehlermeldungen zu sehen?

Code: Alles auswählen

Jul 21 00:00:21 o4i_chrome_103.0.5060.134-1.opsi - download of package is required:  local package not found
Jul 21 00:00:28 Download of 'https://repo.o4i.org/non-public/o4i_chrome_103.0.5060.134-1.opsi' completed (~172MB)
Jul 21 00:00:39 Error occurred: Backend error: Failed to install package '/var/lib/opsi/repository/o4i_chrome_103.0.5060.134-1.opsi' on depot '[mein-depot]': Backend temporary error: Product 'o4i_chrome' currently locked on depot '[mein-depot]', use argument 'force' to ignore
oder alternativ:

Code: Alles auswählen

Jul 20 00:00:21 l-opsi-client-kiosk_4.1.1.16-4.opsi - download of package is required:  local package not found
Jul 20 00:00:21 Download of 'http://download.uib.de/opsi4.2/stable/packages/linux/localboot/l-opsi-client-kiosk_4.1.1.16-4.opsi' completed (~11MB)
Jul 20 00:00:22 Error occurred: Failed to get metadata from package '/var/lib/opsi/repository/l-opsi-client-kiosk_4.1.1.16-4.opsi': Failed to extract archive '/var/lib/opsi/repository/l-opsi-client-kiosk_4.1.1.16-4.opsi': Failed to get archive content '/var/lib/opsi/repository/l-opsi-client-kiosk_4.1.1.16-4.opsi': Command '/usr/bin/cat "/var/lib/opsi/repository/l-opsi-client-kiosk_4.1.1.16-4.opsi" | /usr/bin/cpio --quiet --extract --list' failed (2):
CLIENT_DATA.cpio.gz
/usr/bin/cpio: premature end of file

Mit welchen Schritten kann das Problem nachgestellt werden?
Zwei @daily cronjobs mit Opsi-Package-updater erstellen.

Bei welche Versionen der beteiligten Komponenten tritt das Problem auf?
Stelle sicher, dass es die aktuellen Versionen aus den stable-Bereichen sind!

# opsi-package-updater --version
4.2.0.165 [python-opsi=4.2.0.283]
Jan.Schmidt
Beiträge: 439
Registriert: 08 Jul 2017, 12:02

Re: opsi-package-updater: Prüfen, ob er bereits läuft

Beitrag von Jan.Schmidt »

joneuhauser hat geschrieben: 22 Jul 2022, 16:10 Was sollte passieren?
Wenn opsi-package-updater startet, sollte er prüfen, ob bereits ein anderer Prozess von opsi-package-updater läuft, und in dem Fall eine Fehler-Email senden, anstatt sich gegenseitig zu ärgern. Ich hatten aus Versehen zwei Cronjobs aktiv.
Hi,

aber da ist der Bug doch eher vor der Tastatur zu suchen?

Code: Alles auswählen

ps aux|grep opsi-package-updater|grep -v grep && echo Ich hatten aus Versehen zwei Cronjobs aktiv. || opsi-package-updater - deineparameter 
SirTux
Beiträge: 558
Registriert: 05 Feb 2011, 18:37

Re: opsi-package-updater: Prüfen, ob er bereits läuft

Beitrag von SirTux »

@Jan.Schmidt Ein PID- bzw. Lock-File ist IMO nicht eine wahnsinnig neue Idee und funktioniert auch zuverlässiger ;)
Benutzeravatar
n.doerrer
uib-Team
Beiträge: 267
Registriert: 23 Okt 2020, 16:11

Re: opsi-package-updater: Prüfen, ob er bereits läuft

Beitrag von n.doerrer »

Hallo,

ich nehme das mal als Anregung auf, nicht als Bug.
Ich würde sagen, es wäre ein Szenario denkbar in dem zwei opsi-package-updater gleichzeitig laufen sollen.
Ein globales Lock wäre also eventuell kontroproduktiv. Pro Paket arbeiten wir mit Transaktionen, sodass auf dieser Ebene dadurch nichts kaput gehen sollte.

Ich habe das gerade nochmal getestet und einer der beiden Prozesse landet in

Code: Alles auswählen

Backend temporary error: Product 'ubuntu22-04' currently locked on depot 'opsi-server.domain.local', use argument 'force' to ignore
richtet also keinen Schaden an.

Das ist aber trotzdem ein interessanter Gedanke und wir haben das im Hinterkopf für zukünftige Entwicklungen - danke für die Meldung.
Antworten