Miriam España Acebal
Ingeniera en Informática afincada en Granada (España) trabajando como Ingeniero de Distribución en Canonical (los que hacen Ubuntu)para la nube de Azure, principalmente centrada en el servidor.
Soy conocida por haber introducido .NET en Ubuntu como paquete, es decir, su primer maintainer oficial.
Antes de eso, trabajé como Ingeniero de Software e Ingeniero de Sistemas en diferentes empresas después de pasar 10 años como investigador en la Universidad de Granada en diferentes áreas (neurociencia, sistemas de información geográfica, arqueología, meteorología,...).
Traducción realizada con la versión gratuita del traductor DeepL.com
mirespace
https://github.com/mirespace https://launchpad.net/~mirespace
Session
Actualizar el toolchain de un sistema operativo no es solo cuestión de versiones: es una operación de alto riesgo que puede alterar sutil pero profundamente el comportamiento de software ya integrado. Este es el caso que analizamos, donde el salto a Python 3.12 en Ubuntu Oracular (24.10) introdujo cambios que afectaron silenciosamente al agente de Azure para Linux (WALinuxAgent). En particular, una modificación en el manejo de errores en el que precedía onexc sobre onerror hizo que una excepción crítica nunca llegara a lanzarse ni registrarse, enmascarando un fallo real durante la ejecución.
Aunque el error emergió como un test que fallaba, su origen, más complejo, pasó desapercibido para el equipo de desarrollo original. Fue un ingeniero de distribución —el mantenedor de Ubuntu encargado de integrar WALinuxAgent en el sistema— quien, desde una perspectiva distinta, desentrañó el problema al revisar cómo el agente interactuaba con las librerías del sistema y cómo estas habían cambiado con la nueva versión de Python. Este caso subraya cómo un mismo error puede pasar completamente desapercibido si se analiza desde un único rol o etapa del ciclo de vida del software.
Durante la sesión abordaremos:
- Qué cambió en Python 3.12 y cómo afecta al comportamiento de llamadas al sistema operativo.
- Cómo el error viaja desde una excepción silenciosa en Python hasta un fallo no diagnosticado en producción.
- El papel fundamental del ingeniero de distribución, puente entre el upstream y el sistema operativo.
- Prácticas de testing e integración más robustas para detectar este tipo de regresiones antes de llegar al usuario final.
Este caso real pone de manifiesto la necesidad de una comunicación fluida entre desarrolladores, empaquetadores y distribuidores, así como de entender cómo los cambios en el entorno (toolchains, runtimes, dependencias) afectan incluso a las piezas más estables del software.