錯誤訊息說「請求失敗」,其實是回應太大裝不下——害人往網路問題查很久 #92
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
症狀:它說「請求失敗」,而其實是東西太大裝不下
http_request零件遇到回應大於 64 KB 時,回的是:這句話完全看不出真正原因。撞到的人會往網路、DNS、憑證、權限的方向查很久——
而那幾個方向全都是好的。
根因(已定位,省下重查)
registry/components/http_request/main.go:88寫死緩衝區 64 KB(
outBuf := make([]byte, 65536))。host function 寫不下就回非 0,而第 105 行一律寫成
writeError("HTTP request failed")——成因被抹平成同一句話。
實撞脈絡
Leo/InkStoneCo#17的global_index工作流要讀 Gitea 五個 repo 的 issue 清單:arcrun-ragArcrunInkStoneCo全部超過 64 KB,全部只拿到那句「HTTP request failed」。
最後改走 recipe(由 cypher-executor 直接 fetch,不經 WASM)才通。
⇒ 「讀一個清單」是很普通的需求,而 Gitea/GitHub 這類 API 的清單回應輕易就破 64 KB。
這不是罕見邊角,是會反覆絆倒人的一格。
要達成什麼
怎麼驗才算數
對一個確定會回超過 64 KB 的端點跑一次,
錯誤訊息要能讓人一眼判斷是緩衝上限,而不是網路問題。貼實測輸出。
🔴 紅線
cypher-executor 的 TS 不實作業務邏輯。
相關
Leo/InkStoneCo#17(實撞來源)|Leo/Arcrun#88(同一家族:零件層的回答會誤導判斷)