FPM: Freeing child allocated data
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C
- Estrellas
- 40.4k
- Forks
- 8.1k
- Merge medio
- 2 d 13 h
- PR fusionados (30 d)
- 96
Descripción
Description
FPM allocates some data during child initialization for keeping around some configuration options. This is done in following places:
- https://github.com/php/php-src/blob/15184435007ae13d31902be2613632b813b80b0f/sapi/fpm/fpm/fpm_log.c#L81 (this was reported in https://bugs.php.net/bug.php?id=75635 and it is the reason for creating this issue).
- https://github.com/php/php-src/blob/15184435007ae13d31902be2613632b813b80b0f/sapi/fpm/fpm/fpm_log.c#L91
- https://github.com/php/php-src/blob/15184435007ae13d31902be2613632b813b80b0f/sapi/fpm/fpm/fpm_status.c#L32
- https://github.com/php/php-src/blob/15184435007ae13d31902be2613632b813b80b0f/sapi/fpm/fpm/fpm_status.c#L40-L41
- https://github.com/php/php-src/blob/15184435007ae13d31902be2613632b813b80b0f/sapi/fpm/fpm/fpm_php.c#L219-L221 (this just takes ownership but means the same sort of leak effectively)
Those values are never freed. They are needed for the whole life of child so it is not a big issue as it gets released on process exit (that's why this is classified more as a feature and not a bug because there is no impact of this). However it is a good convention to free those values so some child destroy functions should be created for that purpose and called before exiting the child.
Guía de contribución
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.
Línea de trabajo
Comienza leyendo el código de inicialización del proceso hijo en sapi/fpm/fpm/fpm_log.c, fpm_status.c y fpm_php.c; después, sigue la ruta de salida del proceso hijo. Añade el manejo correspondiente de destrucción del proceso hijo para las asignaciones indicadas en el issue y llámalo antes de que el proceso hijo termine. Se considera terminado cuando esos valores propiedad del proceso hijo se liberan durante el apagado, en lugar de hacerlo únicamente al salir del proceso.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- c, php
- Área
- backend
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 42/100