Report failed upgrades with a non-zero exit status (mintupdate-cli, mint-refresh-cache, automatic upgrades)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
Línea de trabajo
Empieza por los tres puntos de entrada mencionados en el issue: usr/lib/linuxmint/mintUpdate/mintupdate-cli.py, mint-refresh-cache y system_automatic_upgrades.py; sigue cómo gestiona cada uno los resultados de los subprocesos y las ramas de error. Después, comprueba si ya hay pruebas que cubran estos comandos. Se considera terminado cuando los errores devuelven estados distintos de cero y las actualizaciones automáticas registran el error, mientras que las ejecuciones correctas mantienen su comportamiento actual.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 424
- Forks
- 191
- Merge medio
- 23 d 14 h
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de linuxmint/mintupdate
-
BUG
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
linuxmint/mintupdate#1089 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
linuxmint/mintupdate#1041 · 1 comentario ·
-
FEATURE REQUEST
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
linuxmint/mintupdate#910 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
linuxmint/mintupdate#903 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
linuxmint/mintupdate#1102 ·
Todos los issues de linuxmint/mintupdate
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
MIT-LCP/wfdb-python#590 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
pollen-robotics/reachy_mini#1517 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
NRLMMD-GEOIPS/pluginify#41 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
scverse/spatialdata#1293 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
UKGovernmentBEIS/inspect_evals#2788 ·
Los mantenedores suelen responder en 1 día