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

timeout does not terminate the test process when used with xdist

Abierto
#72 1 comentario 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
testing-qa

Línea de trabajo

Comienza con la prueba reproducida en test_simple_hang.py y ejecuta el comando de pytest documentado con los métodos de timeout thread y signal. Inspecciona cómo se comporta el timeout con --boxed y xdist; se considera terminado cuando el proceso de la prueba cuyo tiempo ha expirado finaliza y libera sus recursos, en lugar de permanecer activo.

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

Descripción

Summary

running pytest-timeout with pytest-xdist doesn't terminate the test process.

This creates an issue if I would like to test a long-running computation-intensive function: the test process keeps running even after the timeout and the resources are not released until I manually kill the process.

Some version info from pytest

platform darwin -- Python 3.7.6, pytest-6.0.1, py-1.9.0, pluggy-0.13.1
rootdir: /private/tmp/test_hang
plugins: cov-2.10.0, xdist-1.34.0, timeout-1.4.2, forked-1.3.0
timeout: 10.0s
timeout method: thread
timeout func_only: False

To reproduce

Create a simple test case (test_simple_hang.py) like this:

import time
import os
def test():
    print(os.getpid())
    time.sleep(60)

Running the following command:

pytest --timeout=10 --boxed --timeout_method=thread test_simple_hang.py

After the timeout, if I do ps -ef | grep <pid>, the process remains active.

It also occurs when --timeout_method=signal.

Lenguaje dominante
Python
Estrellas
258
Forks
69
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Aún no hemos revisado los archivos de configuración de este proyecto. 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 pytest-dev/pytest-timeout

Todos los issues de pytest-dev/pytest-timeout

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.