Blueapi Hangs on Malformed Task Submission
Los mantenedores suelen responder en 4 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 75/100
Línea de trabajo
Empieza por la validación de la solicitud de /api/v1/tasks y sigue cómo se gestionan los valores malformados de detectors antes del envío de la tarea. Reproduce el problema con la solicitud curl proporcionada o con las pruebas del sistema (just); el trabajo estará terminado cuando un valor de tipo cadena devuelva un error de validación y ni el servidor ni el cliente se queden bloqueados. El payload no menciona ningún archivo de prueba específico.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When the detectors parameter is malformed, a POST to /api/v1/tasks can cause Blueapi to hang. In the system tests (just), the request ( detectors is a string rather than a list):
curl -X 'POST' \
'http://localhost:4180/api/v1/tasks' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d '{
"name": "count",
"params": {
"detectors": "stage.x"
},
"instrument_session": "cm12345-1"
}'
Will cause the server to output the stack trace:
2026-10-16 16:33:50,336 INFO blueapi.worker.task_worker Awaiting task
2026-10-16 16:34:40,408 INFO blueapi.service.main 127.0.0.1:0 POST /api/v1/tasks
2026-10-16 16:34:40,409 INFO blueapi.service.authorization Checking permissions to run task
Exception in thread Thread-3 (_handle_results):
Traceback (most recent call last):
File "/home/danielfernandes/.local/share/uv/python/cpython-3.14.0-linux-x86_64-gnu/lib/python3.14/threading.py", line 1081, in _bootstrap_inner
self._context.run(self.run)
~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/home/danielfernandes/.local/share/uv/python/cpython-3.14.0-linux-x86_64-gnu/lib/python3.14/threading.py", line 1023, in run
self._target(*self._args, **self._kwargs)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/danielfernandes/.local/share/uv/python/cpython-3.14.0-linux-x86_64-gnu/lib/python3.14/multiprocessing/pool.py", line 579, in _handle_results
task = get()
File "/home/danielfernandes/.local/share/uv/python/cpython-3.14.0-linux-x86_64-gnu/lib/python3.14/multiprocessing/connection.py", line 257, in recv
return _ForkingPickler.loads(buf.getbuffer())
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: "Invalid error type: 'sequence_str'"
Then both the server and client will hang.
Acceptance Criteria
- A task request with
detectorsas a string raises a neat validation error, and does not cause Blueapi to hang
- Lenguaje dominante
- Python
- Estrellas
- 13
- Forks
- 14
- Merge medio
- 7 d 13 h
- PR fusionados (30 d)
- 6
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la 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 DiamondLightSource/blueapi
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
DiamondLightSource/blueapi#1626 ·
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
DiamondLightSource/blueapi#1623 · 2 comentarios ·
Los mantenedores suelen responder en 4 días
-
Cannot Install SoftiocAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
DiamondLightSource/blueapi#1605 · 1 comentario ·
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
DiamondLightSource/blueapi#1494 ·
Los mantenedores suelen responder en 4 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 18/100
DiamondLightSource/blueapi#1701 ·
Los mantenedores suelen responder en 4 días
Todos los issues de DiamondLightSource/blueapi
Issues similares
-
Deferred from #1869: Complete the companion pytest guardrail update noted in the PR description...Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
Los mantenedores suelen responder en 1 día
-
Custom provider API keys collide on one host: env slot keyed on host:port only, not URL pathAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
NousResearch/hermes-agent#140958 ·
Los mantenedores suelen responder en 1 día
-
Bug triage/confirmed
Dificultad 2/5 Medio día Aptitud para principiantes 85/100
agentscope-ai/agentscope#3355 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
ethereum/execution-specs#3859 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día