返回首頁

GitHub Repo

Open WebUI 社群回報 Sentinel 名稱解析缺陷,大小寫轉換可能讓 Redis 連線失敗

10 月 4 日的 Open WebUI 0.11.4 社群案例指出,Redis Sentinel 主節點群組名稱可能被轉成小寫,導致服務查找失敗。官方文件與 Python 解析規則支持這項機制分析,但修復狀態仍待上游確認。

NASA · Public domain · Image source
zh-Hant

Open WebUI 社群於 10 月 4 日回報,0.11.4 在 Kubernetes 部署中使用 Redis Sentinel 時,若主節點群組名稱包含大寫字母,可能無法建立 Redis 連線。回報者提供的例子是 myMaster:Sentinel 能查到這個群組,Open WebUI 卻搜尋 mymaster,並拋出 MasterNotFoundError。這提供了排查方向,但目前仍屬社群重現,尚未取得維護者確認。問題回報

關鍵在於同一個 URL 欄位承載了不同語意。Open WebUI 官方文件規定,設定 REDIS_SENTINEL_HOSTS 後,REDIS_URL 的 hostname 會被解讀為 Sentinel 服務名稱,而非一般網路主機名稱。因此,工程師即使按照文件填入群組名稱,也可能遇到解析後的字串與 Sentinel 配置不一致。環境變數文件

回報將原因指向 parse_redis_url() 使用的 parts.hostname。Python 官方文件明確列出,URL 解析結果的 hostname 會轉成小寫;這符合一般主機名稱的處理方式,卻可能改變應保留原樣的服務識別字。此案例顯示,將 URL 解析器套用到邏輯名稱時,必須檢查正規化是否改變應用層語意。Python 解析文件

技術影響主要落在需要共享狀態的部署。Open WebUI 擴展部署文件將 Redis 用於多執行程序或多實例的協調,並提供 Sentinel 高可用配置;因此,服務名稱解析失敗可能妨礙這類架構正常運作。這是依文件推導的部署風險,現有案例並未證明所有多實例環境都受影響。擴展部署文件

工程師可先比對錯誤日誌中的群組名稱與 Sentinel 實際名稱,並將大小寫納入連線驗證。後續應觀察上游是否保留服務名稱原始大小寫、加入混合大小寫的回歸測試,以及修補是否進入正式版本。截至查核時,議題仍開啟,頁面未列出關聯修補 PR;不宜把改名視為所有環境都能直接採用的解法。議題狀態

來源

  1. Open WebUI:Redis Sentinel master name is lowercased
  2. Environment Variable Configuration
  3. urllib.parse — Parse URLs into components
  4. Scaling Open WebUI