Downloading an image from a URL has no timeout
メンテナーはふだん 3 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- cpp
- 領域
- backend, networking
調査の方向性
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
- 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.
- 主要言語
- C++
- スター
- 947
- フォーク
- 280
- 平均マージ
- 3日 14時間
- マージ済み PR(30日)
- 46
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
openvinotoolkit/model_server のほかの issue
-
Rerank with an empty documents array or object documents fails with an internal tokenizer error対応中かも @Daksha1611 が 2 日前に担当しました。 オープン
難易度 4/5 1〜2日 初心者へのやさしさ 24/100
openvinotoolkit/model_server#4671 ·
メンテナーはふだん 3 日以内に返信
-
max_tokens and best_of reject a value equal to their configured limit対応中かも @Daksha1611 が 3 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 25/100
openvinotoolkit/model_server#4666 ·
メンテナーはふだん 3 日以内に返信
-
/v1/tokenize returns a flat list when the text array holds a single string対応中かも @Daksha1611 が 4 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 25/100
openvinotoolkit/model_server#4664 ·
メンテナーはふだん 3 日以内に返信
-
String-typed tool call arguments are rewritten when the text is valid JSON対応中かも @Daksha1611 が 4 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 25/100
openvinotoolkit/model_server#4662 ·
メンテナーはふだん 3 日以内に返信
-
/v3/audio/speech ignores response_format and always returns 32-bit float WAV対応中かも @michalkulakowski が 22 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
openvinotoolkit/model_server#4613 · コメント 3 件 · 担当者 1 名 ·
メンテナーはふだん 3 日以内に返信
openvinotoolkit/model_server の issue をすべて見る
似ている issue
-
v9.6.0: CMake incorrectly enforces presence of libevdev対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
メンテナーはふだん 1 日以内に返信
-
Rowan (2017) electron heating gives NaN for beta > beta_max; clip() then sets electrons to kel_minオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
parthenon-hpc-lab/kharma#213 · コメント 1 件 ·
メンテナーはふだん 3 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
metasequoiaime/msime#9113 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
tone-3000/tone3000-plugin#257 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Locked plugin flip-flops position on every refresh after being disabled対応中かも @Illustar0 が今日担当しました。 オープンissue report
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
ModOrganizer2/modorganizer#2449 ·