Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Downloading an image from a URL has no timeout

オープン
#4,669 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 3 日以内に返信

@Daksha1611 がすでに取り組んでいます。

2026年10月18日 から。

  • #4670 @Daksha1611 による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
cpp

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
C++
スター
947
フォーク
280
平均マージ
3日 14時間
マージ済み PR(30日)
46

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

openvinotoolkit/model_server のほかの issue

openvinotoolkit/model_server の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。