WorkerProcess passes None poll intervals to the backend, breaking acquire in the consumer thread
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- python, redis
- Área
- backend, databases, testing-qa
Línea de trabajo
Comienza con tests/test_executor.py:_make_worker() y WorkerProcess.run(), y luego inspecciona RedisTaskBackend.acquire(), donde se usan los intervalos de sondeo. Ejecuta las pruebas relevantes del executor y confirma que el sondeo predeterminado ya no llega a acquire como None y que el hilo consumidor termina sin un TypeError no controlado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Found by testJoe while adding coverage for the fair multi-queue rotation (codingjoe-fair-multi-queue-scheduling), and confirmed pre-existing (untouched by that diff):
defer: WorkerProcess.run() lets None poll overrides reach RedisTaskBackend.acquire, raising TypeError in the consumer thread. Pre-existing, untouched L297. [tests/test_executor.py]
QED
tests/test_executor.py:_make_worker()defaultspoll_intervalandpoll_max_intervaltoNoneand passes them intoWorkerProcess.WorkerProcess.run()assigns them to the backend (backend.poll_interval = self.poll_interval), so the backend's poll options becomeNone.RedisTaskBackend.acquire()computesint(self.poll_max_interval / self.poll_interval), which raisesTypeError: unsupported operand type(s)inside the consumer thread.
The suite only reports PytestUnhandledThreadExceptionWarning, so the failure is invisible today. Either treat None as "keep the backend default" in WorkerProcess, or make the test helper pass the real defaults.
- Lenguaje dominante
- Python
- Estrellas
- 12
- Forks
- 1
- Merge medio
- 1 d 1 h
- PR fusionados (30 d)
- 10
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.
Más de codingjoe/threadmill
-
Dificultad 2/5 Medio día Aptitud para principiantes 84/100
codingjoe/threadmill#52 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
codingjoe/threadmill#51 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
codingjoe/threadmill#47 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
codingjoe/threadmill#55 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
codingjoe/threadmill#54 ·
Todos los issues de codingjoe/threadmill
Issues similares
-
documentation help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
simonw/sqlite-utils#872 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100