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

Downloading an image from a URL has no timeout

Abierto
#4,669 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@Daksha1611 ya está trabajando en esto.

Desde el 18/10/2026.

  • #4670 de @Daksha1611 — abierto

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

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

  1. Serve a VLM with --allowed_media_domains <host>.
  2. Point <host> at a server that sends one byte per second.
  3. Send a chat completion with an image_url pointing 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

  1. OVMS version: main @ eec7daac
  2. VLM servable with --allowed_media_domains
  3. N/A
  4. N/A
  5. 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

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 openvinotoolkit/model_server

Todos los issues de openvinotoolkit/model_server

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.