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

Blueapi Hangs on Malformed Task Submission

Abierto Apto para principiantes
#1,702 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
api, backend

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 detectors as 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

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

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 DiamondLightSource/blueapi

Todos los issues de DiamondLightSource/blueapi

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.