Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto Apto para principiantes
#1,107 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
linux, python
Área
cli, devops

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 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.

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de linuxmint/mintupdate

Todos los issues de linuxmint/mintupdate

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.