Downloading an image from a URL has no timeout
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- cpp
- Área
- backend, networking
Línea de trabajo
Read src/llm/io_processing/image_utils.cpp at downloadImage() and compare its curl options with src/pull_module/curl_downloader.cpp. The issue provides a slow-response reproduction and timeout behavior to check. Done when image downloads have a bounded duration and the stalled transfer returns a clear error; the reporter says they have a patch and plan to open a PR.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
downloadImage() in src/llm/io_processing/image_utils.cpp sets no timeout on its curl handle: no
CURLOPT_CONNECTTIMEOUT, CURLOPT_TIMEOUT or low-speed limit. libcurl then puts no limit on the
transfer time, and waits up to 300 s to connect. A host that accepts the connection and then sends
nothing, or a trickle, holds the request and the thread serving it indefinitely. The size limit
(20 MB) does not help, because the data arrives too slowly to reach it.
The model download code in the same repository sets both
(src/pull_module/curl_downloader.cpp: 30 s to connect, 60 s in total).
This is reachable by any client that can send an image URL to a multimodal servable whenever the host
is on --allowed_media_domains, and by any client at all with --allowed_media_domains all.
Run with the real libcurl (8.16) against a local server that announces a 40 KB image and sends one
byte per second, using the same options downloadImage sets:
no timeout options -> still running when a 25 s watchdog stopped it (would take about 11 hours)
CURLOPT_TIMEOUT = 5 -> stops after 5.0 s, curl error 28 (operation timed out)
I could not verify the 300 s connect default here, since the sandbox refuses connections to
unroutable addresses immediately; that figure is from the libcurl documentation.
To Reproduce
- Serve a VLM with
--allowed_media_domains <host>. - Point
<host>at a server that sends one byte per second. - Send a chat completion with an
image_urlpointing at it. The request does not return.
Expected behavior
The download gives up after a bounded time and the request fails with a clear error.
Logs
None.
Configuration
- OVMS version: main @ eec7daac
- VLM servable with
--allowed_media_domains - N/A
- N/A
- N/A
Additional context
I have a patch with tests and will open a PR.
- Lenguaje dominante
- C++
- Estrellas
- 952
- Forks
- 285
- Merge medio
- 3 d 5 h
- PR fusionados (30 d)
- 45
Preparar el entorno
- Sin Dockerfile ni 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 openvinotoolkit/model_server
-
KServe REST parser drops requested outputs except the lastPosiblemente ocupada @YugShah1510 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
openvinotoolkit/model_server#4690 ·
Los mantenedores suelen responder en 2 días
-
KServe REST rejects INT64 and UINT64 values outside 32-bit rangePosiblemente ocupada @YugShah1510 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 25/100
openvinotoolkit/model_server#4688 ·
Los mantenedores suelen responder en 2 días
-
Preserve double precision when parsing FP64 REST inputsPosiblemente ocupada @YugShah1510 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
openvinotoolkit/model_server#4686 ·
Los mantenedores suelen responder en 2 días
-
Rerank with an empty documents array or object documents fails with an internal tokenizer errorPosiblemente ocupada @Daksha1611 la tomó hace 4 días. Abierto
Dificultad 4/5 1-2 días Aptitud para principiantes 24/100
openvinotoolkit/model_server#4671 ·
Los mantenedores suelen responder en 2 días
-
max_tokens and best_of reject a value equal to their configured limitPosiblemente ocupada @Daksha1611 la tomó hace 5 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 25/100
openvinotoolkit/model_server#4666 ·
Los mantenedores suelen responder en 2 días
Todos los issues de openvinotoolkit/model_server
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
foxglove/mcap#1907 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
telegramdesktop/tdesktop#31505 ·
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
-
ll-builder shell completions omit existing lockfile commands and --lockedPosiblemente ocupada @project-nju-learner la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
OpenAtom-Linyaps/linyaps#2291 ·
Los mantenedores suelen responder en 1 día