docker-library / docker-library/python

"debug build" for at least one image

Abierto
#807 2 comentarios 3 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Dockerfile
Estrellas
2.8k
Forks
1.1k
Merge medio
3 d 1 h
PR fusionados (30 d)
1

Descripción

Recently we had a C extension for python failing in production in an environment that we do not own ourselves. The data in that environment was causing the issues. Because for that reason, it was complicated to reproduce it in different environments, we looked into running a debug version of python in that environment to understand where it was crashing, but that turned out quite complicated to do.

In the end I managed to home in on the data issues, set up data locally to reproduce it and build a debug version of the slim-bullseye image that I could use as a source for our application image. This allowed us to dump a core and investigate the back traces.

Would it be helpful to have at least one image that contains a debug build of python in this stack, so that it's easier for developers to switch to that image and do this analysis?

An image that adds these lines to .,/configure

--with-pydebug \ CFLAGS="-g -O0" \

and sets LDFLAGS="" instead of LDFLAGS="-Wl,--strip-all"; \ ,

installs gdb and gdb extensions (# enable GDB to load debugging data: https://github.com/docker-library/python/pull/701)

If that's not a good idea, could you let me know what you'd recommend otherwise as a better process?

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

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.

Línea de trabajo

Empieza revisando cómo se construye la imagen slim-bullseye y dónde se establecen sus opciones de ./configure y LDFLAGS. Comprueba las flags propuestas para la compilación de depuración de Python, la instalación de GDB y las extensiones de GDB frente al proceso de imagen existente. Se considera completado cuando el proyecto tenga una imagen de depuración documentada o una alternativa clara y aprobada por un maintainer para producir core dumps y backtraces.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
docker, python
Área
build-system, devops
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.