Report failed upgrades with a non-zero exit status (mintupdate-cli, mint-refresh-cache, automatic upgrades)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
Direzione di ricerca
Inizia dai tre punti di ingresso indicati nell’issue: usr/lib/linuxmint/mintUpdate/mintupdate-cli.py, mint-refresh-cache e system_automatic_upgrades.py; segui il modo in cui ciascuno gestisce i risultati dei sottoprocessi e i rami di errore. Poi verifica se esistono già test che coprono questi comandi. Il lavoro è completato quando gli errori restituiscono stati diversi da zero e gli aggiornamenti automatici registrano l’errore, mentre le esecuzioni riuscite mantengono il comportamento attuale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Is your feature request related to a problem? Please describe.
When an upgrade or a cache refresh fails, every entry point still reports success, so the failure is invisible to anything that checks exit codes: cron, Ansible, scripts, systemctl --failed or fleet monitoring.
mintupdate-cli upgraderuns apt-get withsubprocess.call(arguments + packages, env=environment)(usr/lib/linuxmint/mintUpdate/mintupdate-cli.py, line 95 on master) and discards its return code.mint-refresh-cacheprints an error and exits 0 when the update fails or when it is run without root.system_automatic_upgrades.pyignores the result ofsubprocess.run(cmd, ...)(line 44) and always logs-- Automatic Upgrade completed(line 57), somintupdate-automation-upgrade.servicenever fails.
Reproduced on Linux Mint 22.2 with mintupdate 7.1.1, using a fake apt-get on PATH that exits 100:
$ PATH=/tmp/fakebin:$PATH mintupdate-cli upgrade --dry-run; echo $?
E: Could not get lock /var/lib/dpkg/lock-frontend (simulated)
0
$ mint-refresh-cache; echo $?
Error: mint-refresh-cache requires admin privileges
0
Related: #1097 (a failed scheduled cache refresh goes unnoticed) and #1043 (automatic updates silently not installing).
Describe the solution you'd like
Propagate the failure:
mintupdate-cli:sys.exit(subprocess.call(...))so apt-get's status is returned.mint-refresh-cache:sys.exit(1)in the error branches.system_automatic_upgrades.py: check the return code, log-- Automatic Upgrade failed (exit N)and exit non-zero so the systemd unit is marked failed.
Successful runs behave exactly as today.
Describe alternatives you've considered
Parsing the log in /var/log/mintupdate.log, which is fragile and only works on machines someone is watching.
Additional context
Happy to send a pull request if this direction is acceptable.
- Lingua principale
- Python
- Stelle
- 424
- Fork
- 191
- Merge medio
- 23g 14h
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di linuxmint/mintupdate
-
BUG
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
linuxmint/mintupdate#1089 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
linuxmint/mintupdate#1041 · 1 commento ·
-
FEATURE REQUEST
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
linuxmint/mintupdate#910 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
linuxmint/mintupdate#903 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
linuxmint/mintupdate#1102 ·
Tutte le issue di linuxmint/mintupdate
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
pydot/pydot#601 · 4 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
letsencrypt/cp-cps#361 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
CI: startup_failure because callers grant fewer permissions than ledger-app-workflows@v1 declaresForse già presa @maykonmichel l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
LedgerHQ/app-boilerplate-rust#227 ·
-
needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni