開源ioredis 上游修正
後註冊的自訂指令在自動批次裡失效;修正並補測試後由官方合併
Redis 官方組織的 Node.js client。重現問題、修正、補測試,由維護者審查後合併。
原始畫面
1 / 3
- 成果
- PR #2180 已由官方合併;新增 6 項回歸測試
- 角色
- 個人貢獻:重現錯誤、修正、回歸測試與 PR
- 狀態
- PR #2180 已合併
- 技術
- TypeScript · Node.js · Redis · Redis Cluster
問題 後註冊的自訂指令,在自動批次裡找不到
同一輪事件迴圈裡,前面的指令先建立了自動批次;之後才註冊的自訂指令,批次裡找不到。例如限流套件加的指令,呼叫會直接失敗。
回呼又已先排進去,後面整批回應可能錯位或報錯。對應 issue #1931。
貢獻範圍 重現、修正、補測試到送出 PR
個人貢獻:重現錯誤、修正、補測試到送出 PR。以 Codex 協助開發、CodeRabbit 審查,PR 內都有寫明。
屬於對既有開源套件的貢獻:修補由上游維護者審查後合併。
修法 只改動態指令的取得與回呼註冊順序
自訂與後加入的指令,改從當下的 client 取得,再交給既有的批次執行。結果回呼改成指令成功入列後才註冊。
一般內建指令維持原路徑,只改動態指令。公開 API、相依套件與排除規則都沒改。
驗證 上游測試 2,209 項通過、0 失敗;新增 6 項回歸測試
修之前先重現兩個錯誤:指令找不到、回呼與結果錯位。
- 非 Cluster 測試:2,209 項通過、0 失敗(455 項 pending,不計入通過)。
- 真實六節點 Redis Cluster:62 項通過、0 失敗(4 項 pending)。
- 新增回歸測試 6 項;變更 4 個檔案,+255/−7 行。
- 驗證環境:Node.js 24.19.0、Redis 7.4.11(Linux)。PR 寫明只驗過這一組版本。
現況 已合併進上游主線
已合併進上游主線。截至 2026-09-24 還沒收進正式發行版;當時最新發行版是 v6.0.0。
證據 PR、issue 與上游 commit
- PR:redis/ioredis #2180
- Issue:redis/ioredis #1931
- 合併後的上游 commit:7479cab