Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Report failed upgrades with a non-zero exit status (mintupdate-cli, mint-refresh-cache, automatic upgrades)

Aperta Adatta ai principianti
#1,107 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
76/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
linux, python
Ambito
cli, devops

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 upgrade runs apt-get with subprocess.call(arguments + packages, env=environment) (usr/lib/linuxmint/mintUpdate/mintupdate-cli.py, line 95 on master) and discards its return code.
  • mint-refresh-cache prints an error and exits 0 when the update fails or when it is run without root.
  • system_automatic_upgrades.py ignores the result of subprocess.run(cmd, ...) (line 44) and always logs -- Automatic Upgrade completed (line 57), so mintupdate-automation-upgrade.service never 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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di linuxmint/mintupdate

Tutte le issue di linuxmint/mintupdate

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.