Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿Python lanza BrokenProcessPool? Conserva el límite de salida antes de rehacer el pool

La excepción solo prueba que un worker terminó de forma no limpia. Guarda tarea, PID, método de inicio, stderr, estado de salida y evidencia OOM antes de elegir la reparación.

Ilustración original del trayecto tarea-worker-salida en BrokenProcessPool.
Ilustración original: conserva el primer límite de salida antes de rehacer el pool. Watch at Ease

BrokenProcessPool no equivale a OOM ni demuestra que __main__ esté mal; marca que un worker de ProcessPoolExecutor no terminó limpiamente.

Vincula un fallo con su tarea, worker y eventos del sistema, corrige solo el límite probado y valida con la misma tarea y otra tarea normal.

1. Congela un fallo antes de rehacer el pool

Registra ID de tarea, huella segura de entrada, hora, Python, plataforma, opciones, método de inicio y cadena completa de excepción.

No empieces con reintentos: reduce a una tarea con el mismo módulo, initializer, método y límites.

2. Separa el punto de entrada de la muerte del proceso

Verifica __main__ importable, guardas, callable, argumentos y retorno serializables; ejecuta una función superior mínima con el mismo método.

Si no inicia, corrige entrada o initializer; si la tarea real inicia y rompe el pool, captura la salida.

3. Captura el límite de salida del worker

Registra tarea, PID, initializer, inicio, stderr y faulthandler en un destino que sobreviva al cierre del pool.

No dependas de atributos privados; conserva código, señal y registros nativos disponibles para esa versión.

4. Correlaciona señales, OOM y despliegues

En Linux compara memory.events; solo el aumento de oom_kill en la misma carga y ventana prueba OOM.

Alinea memoria máxima, concurrencia, entrada, reinicios y terminaciones; sin evidencia deja la causa sin resolver.

5. Corrige una causa probada y valida dos veces

Repara entrada, extensión nativa, capacidad o supervisor según la evidencia.

Repite la tarea original y otra normal en el mismo pool; ambas deben pasar sin nuevos eventos de caída u OOM.

Ilustración original de causas por importación, señal y OOM.
Ilustración original: cambia reparación y aceptación según la evidencia. Watch at Ease