蔡秀吉 Hsiu-Chi Tsai

02 · Open Source

What I Can Build

Kubernetes GitHub Org Member · Nephio (Linux Foundation Networking) TSC Member · OpenTelemetry GitHub Org Member · Zephyr RTOS M5Stack Platforms Maintainer

六項核心工程能力,皆建立在已合併的上游貢獻之上。每一項能力均附有可公開查證的 GitHub 證據,呈現的不只是技術知識,而是經上游維護者審查、接受並納入正式專案的實際工程交付。

除開源工程貢獻外,亦參與國際學術服務,包括完成 Journal of Open Source Software (JOSS) 正式同儕審查,以及擔任 IEEE WF-PST 2026 Technical Program Reviewer。

開源貢獻摘要

152 Merged PRs 已合併到上游
60 Projects 獨立 upstream 專案(有 merged PR)
6 Foundations CNCF · LFN · ASWF · PyTorch · LF AI & Data · OCUDU
26 Found & Fixed 自己回報並修復、PR 已合併的上游 bug(issue + PR,端到端)

以上為已合併貢獻的定值。進行中的 PR 是動態的,直接看 GitHub 上的即時清單

Variant Analysis

從單點修正到跨專案缺陷模式追蹤

9 個缺陷變體 · 6 個獨立維護的上游專案 · 8 項修正已合併

我不把單一缺陷的修正視為終點。從第一個資源會計錯誤出發,我將根因抽象為一組可重用的審查不變量:資源需求與配額計算在加總、乘法、數值轉換、共享配置與生命週期變更時,必須保持數值可表示、狀態一致,且不能因溢位、截斷、漏算或重複計數而失真。

接著,我以這組不變量系統性檢查其他排程器與 Dynamic Resource Allocation (DRA) 實作,最終在六個獨立維護的上游專案中辨識出九個缺陷變體。

九項問題均由我發現並回報;其中八項的修正由我提交、經上游維護者審查後合併,且每一支都附帶回歸測試,另一項雖已確認根因並備妥修正,因該 scaler 即將 deprecate 而由維護者以 wontfix 結案。下方逐項列出從回報到修正的連結,呈現問題重現、根因分析、修正設計到上游交付的完整證據鏈。

同一子系統的縱深:Kubernetes DRA structured allocator

跨專案追蹤缺陷變體之外,我也在 Kubernetes 核心 DRA allocator 中沿著資源會計不變量持續向下檢查。五項已合併修正涵蓋數值表示與溢位(#140666#140442)、跨 driver 的 counter-cache 身分碰撞(#140435)、候選拒絕與回溯時的狀態洩漏(#140431),以及持久化共享裝置的 counter 重複計算(#140437)。

五支 PR 均已合併至 master、帶有 release-note 標籤並列入 v1.37 milestone;每支均關閉一個由我回報的 issue,並附有針對原始失效路徑的回歸測試。

上游制度化:SIG API Machinery 的 Quantity int64 burndown

這條 int64 溢位家族後來被上游收攏成正式工作項。SIG API Machinery 維護者 jpbetz 在 #141166 開了官方 burndown、系統性追蹤整個 resource.Quantity int64 accessor 溢位 class(乘法 wrap、負值捨入方向、String() 掉後綴、指數截 32-bit 等),並具名 CC 我。我供稿其第一項——#141170 的 baseline accessor 測試矩陣:記錄 ValueMilliValueScaledValue 等每個 accessor 今日的實際回傳、對錯誤值標 TODO,讓後續每項修正都對「已知基準」做 diff 而非憑記憶。此為 open PR、不計入頁首數字。

Capabilities

能力與證據

每一張卡片代表一項工程能力,下方列出代表性 PR 作為「我做過、且被合併」的證據。

Cloud-Native Kubernetes Engineering

從 Kubernetes 核心邏輯(klog verbosity 修補)到 ecosystem 上的 operator 模式、多叢集編排、高可用網路、自動擴縮。 理解 controller-runtime、CRD lifecycle、Ansible 部署、Operator pattern。

Distributed Tracing & Observability

OpenTelemetry SDK(Go / C++ / Android)instrumentation、Jaeger UI 大型 refactor、metrics backend(Cortex)、儀表板(Perses)。 擅長在既有 codebase「補上」trace propagation 與 verbosity-correct 的 logging。

Telco Cloud — Nephio TSC Member · O-RAN 自動化

Nephio (LFN) Technical Steering Committee Member,參與專案技術治理與方向決策。 工程貢獻涵蓋 Intent-based 網路功能部署、KRM 套件編排(kpt porch)、Nephio CI/CD 測試基礎設施、O-RAN SC 整合測試。

Frontend Engineering & 大規模 Codebase 重構

在 Jaeger UI 跑 20 個 PR 的系統性 refactor series:把 React class components 轉成 hooks-based functional components, 跨 plexus graph library 與 trace views。能在大型 codebase 做漸進式 migration 而不破壞既有功能。

IAM、Security & Policy-as-Code

Keycloak(Java IAM)、Harbor container registry 以 dependency injection 重構提升可測性、OPA / conftest 政策驗證、 Aserto policy registry CLI、kgateway API gateway。整套 zero-trust / supply-chain security 鏈條的工程能力。

AI Platform Engineering & Workload Scheduling

Distributed compute(Ray)、LLM serving(vLLM)、ML on Kubernetes(Kubeflow pipelines / trainer、Koordinator scheduler)、 event-driven autoscale(KEDA)、eBPF / sched_ext 客製化 scheduler(Gthulhu)、向量資料庫全文模糊檢索(Milvus)、批次/gang 排程配額溢位加固(Volcano、Kueue)。 專注「把 ML workload 跑在 cloud-native infra 上」與「kernel 層級 CPU 排程最佳化」這層問題。

Stack

實際交付過的技術棧

Languages
Go 30+ repos TypeScript & React 5 C++ 1 Java 1 Python 3 Bash · YAML · Ansible
Frameworks
Kubernetes API controller-runtime OpenTelemetry SDK React + hooks Envoy Helm klog Cobra Flask LINE Bot SDK v3
Tools
Git · GitHub Actions Docker PostgreSQL MinIO Linux 系統管理 Hugo · MkDocs

Recent

近期 Merged PRs(按時序)

按時序列出所有 upstream merged PRs 標題與日期。點 PR 編號跳到 GitHub 看 diff。

  1. 2026-08-05
    ocudu/ocudu!1097 (GitLab) NTN 的 eci_to_orbitalstd::acos 吃 dot-product 比值算出的 cosine,合法幾何在 apoapsis 仍可能因浮點 round-off 使引數微超 [-1,1](實測 -1.0000000000000004)→ acos 回 NaN、汙染 eccentric/mean anomaly,整組軌道要素與衍生的 SIB19 ephemeris 全變 NaN 不可用。修法在三個 acos 引數前 clamp 到 [-1,1](well-conditioned 幾何路徑不變、只有邊界 round-off 收斂到 0 或 π);新增 apoapsis near-circular 與邊界 sweep 兩個測試、跨 -O0/-O2/-O3 一致 · +110/−43、2 檔 · 與 0/0 singularity(#660)分屬不同案 · target dev、maintainer asaezper 合併
  2. 2026-08-04
    kubernetes-sigs/dra-driver-google-tpu#25 prepareDevices 把 full-chip 數、allocatable 查找、container edits 套到整包 Results;但一個 ResourceClaim 可由多個 driver 一起滿足,claim 若同時含別 driver 的裝置,完整 TPU 配置反被拒、錯誤訊息還文不對題。改為只處理 result.Driver == DriverName 的 result(把官方 dra-example-driver 本就有的守衛補回)· +175/−1、2 檔 · kind/bug、Fixes #26、Prow 合併
  3. 2026-08-04
    IBM/power-dra-driver#323 prepareDevices 的 result 迴圈對每筆 result 都查自家 allocatable,別 driver 的裝置不在集合裡 → 混用兩 driver 的 claim 整包回 not allocatable、pod 起不來(config 路徑的 GetOpaqueDeviceConfigs 早就跳過別 driver、result 迴圈漏了同一步)。改為 result.Driver != DriverName 就跳過 · +81/−0、2 檔 · Fixes #322、maintainer prb112 合併
  4. 2026-08-04
    kubernetes-sigs/kueue#13727 文件補記 deviceClassMappings 是啟動時才讀的設定:改了要重啟 controller 才生效,線上熱改不會被撿起來(DRA autoscaling 相關)· +16/−0、1 檔 · kind/documentation、area/dra、Prow 合併
  5. 2026-08-04
    open-telemetry/opentelemetry-cpp#4346 nostd::string_view::data() 指向 view 首字元、非 C string,凡讀到 NUL 才停的地方都會越界(4 處):最狠的是 HttpSslOptionsstrncmp(url.data(),"https:",6) 把 5 字元的 https view 多讀一 byte 誤判成 https、擅自開 caller 沒要求的 TLS。改為在 view 長度內比較、header log 改用帶長度的 operator<< · +31/−5、6 檔 · [BUG] Stop reading past a non-NUL-terminated string_view(maintainer Marc Alff 合併)
  6. 2026-08-04
    open-telemetry/opentelemetry-cpp#4327 ext 標頭安裝從 *.h glob 改為明確清單:標頭只有被列名才進套件(改名/刪除即當場報錯),並把 default_factory.h、curl client/operation、及內嵌 HTTP server 的 http_server.h/socket_tools.h 共 5 支實作/伺服器標頭移出安裝面(CHANGELOG 標為破壞性),以「安裝樹 diff」驗證恰好移除 5 支、0 新增、安裝測試通過 · +72/−16、8 檔 · 承 #4315 稽核計畫第 2 步、貢獻 #1980(maintainer Marc Alff 合併)
  7. 2026-08-04
    kubernetes-sigs/dra-driver-cpu#272 讓 kubelet root 目錄可設定:原本硬編 /var/lib/kubelet,把 root 搬家過的叢集無法跑 driver(kubelet 監看自己的 root,註冊與 plugin-data 路徑在容器內外須一致)。新增 --kubelet-root-dir,值會被清理且必須是絕對路徑,空值直接拒絕不 fallback(避免 chart 把它渲染成空、driver 註冊到 kubelet 沒在看的地方);設為 flag 而非 driverConfig 欄位、附 schemaExcludedFields · +451/−43、12 檔 · kind/bug、已合併的 #273 設定鍵大小寫修正為其前置(maintainer 經 lgtm+approved 由 Prow 合併)
  8. 2026-08-04
    kubernetes-sigs/kueue#13645 kueue 的 WorkloadPriorityClass 概念頁沒說明:當 kueue.x-k8s.io/priority-class label 指向不存在的 class 時,ExtractPriority 會回傳查找錯誤、且不 fallback 到 Pod PriorityClass 或預設優先權,錯誤在 client.Create 前就傳播 → Workload 根本沒被建立(update 亦然)。本 PR 把此行為與「省略 label 時的 fallback」差異寫進文件 · +8/−0、1 檔 · kind/documentation(不關閉 #3439,那筆追蹤加 Warning event)· maintainer 經 lgtm+approved 由 Prow 合併
  9. 2026-08-04
    ROCm/k8s-gpu-dra-driver#74 AMD ROCm GPU DRA driver 的 ResourceSlice 裝置以 maps.Values 收集、Go map 迭代無序,導致每次重啟發佈順序不同:硬體沒變卻改寫 ResourceSlice,且 scheduler 的 first-fit 選哪顆裝置受 map 順序影響(不可重現)。改為發佈前按名稱排序+穩定性單元測試 · +83/−4、2 檔 · AMD 官方 Kubernetes GPU DRA driver、maintainer bhatnitish 合併
  10. 2026-08-04
    ROCm/k8s-gpu-dra-driver#76 同 driver 的 .gitignore「Binaries」樣式未錨定,gpu-kubeletplugin/webhook 連 cmd/ 下的原始碼目錄一起忽略,新增的 _test.go 被吞、要 git add -f 且檔案搜尋工具掃不到。加前導斜線錨定:root 的 binary 仍忽略、原始碼目錄不再 · +4/−3、1 檔 · AMD ROCm、maintainer bhatnitish 合併
  11. 2026-08-04
    sysprog21/muxleq#19 muxleq 的 compute_promotions() 把直接 jal ra 的返回點算作外部 loop entry,卻漏了已解析的 jalr ra 返回點(successors 與返回點收集把兩者都當 call)。於是經 jalr ra 返回進入的 loop 會看似 single-entry,promotion 只把 preload 掛在直接跳的 entry 上,走返回路徑就讀到歸零的 promotion cell(guest 該寫 B=0x42 卻寫成 0x01)。改用共用的 is_link_call() 述詞統一三處判斷、附可執行回歸 · +33/−12、2 檔 · sysprog21(Jserv)、maintainer jserv 合併
  12. 2026-08-03
    sysprog21/muxleq#13 承 #12:把不支援的 JALR/SYSTEM 編碼解為 K_ILL 後,暴露一個既有 CFG 缺口——K_ILL 不終止基本塊,於是常數傳播會跨越不可達的非法字、進而解出後面的 JALR。改為讓 K_ILL 終止基本塊並停止 CFG 遍歷(is_block_end/successors),加保留 JALR 與 CSR 字的 jump-over 測試、PACK_WORDS 失敗時提早停 · +16/−8、2 檔 · sysprog21(Jserv)、maintainer jserv 合併
  13. 2026-08-03
    sysprog21/muxleq#18 承 #13:相同的 leader 標記問題也影響直接 JAL 與 branch 目標——不可達的控制轉移會把可達塊裡的指令誤標為 leader、切割 live block,使 analyze_syscalls() 清掉常數傳播狀態而誤拒合法 ecall。改用保守的可達性走訪播種 leader(來源指令可達才標目標為 leader),並對 syscall 分類/JALR 目標/leader/可達性重算至定點;加 off-path JAL/branch/JALR 回歸案例(chained-JALR 跑實際映像、要求輸出恰為 AB),既有 RV32I test ELF 位元組不變 · +139/−42、2 檔 · sysprog21(Jserv)、maintainer jserv 合併
  14. 2026-08-03
    sysprog21/muxleq#16 muxleq 的 RV32I rolling-release freshness 檢查只比 conformance ELF 的「數量」:內容改了但數量不變時 CI 會留著 stale release、之後的 lowering 檢查只重驗過時輸入。改為只 stage 實際出貨檔、產生排序後的 SHA-256 manifest、解壓後驗 manifest 並與當前 CI build 比對,任一檔新增/移除/內容變動才重新發佈(供應鏈/內容完整性) · +259/−71、6 檔 · sysprog21(Jserv)SUBLEQ+MUX VM、maintainer jserv 合併
  15. 2026-08-03
    sysprog21/muxleq#14 muxleq 的 rv32i-prebuilt.shcount.txt 當可選、比對前又剝掉所有非數字字元,於是沒有該檔的 release 也能過、1x2 被讀成 12。改為要求 count.txt 恰為一個正十進位整數,缺失/格式錯/與 ELF 數不符即 exit 77,並加離線案例(fail-closed 中繼資料驗證) · +144/−12、3 檔 · sysprog21(Jserv)、maintainer jserv 合併
  16. 2026-08-03
    kubernetes-sigs/dra-driver-cpu#273 encoding/json 大小寫不敏感(reservedcpus 也能設到 ReservedCPUs),但周邊兩處以精確名稱比對:rejectExcludedFields 讓折疊拼法把 schema 排除的欄位(如 bindaddressBindAddress)偷渡進來;Load 的旗標優先權刪除也按精確名稱,使檔案的 reservedcpus 蓋過顯式 --reserved-cpus(與旗標語意相反)。改為拒絕拼法與 Config 正規 json tag 不符的設定鍵(不折疊比對、避免同鍵兩拼歧義,fail-closed)· +252/−3、3 檔 · kind/bug(先於 #272 落地;lgtm+approved 經 Prow 合併)
  17. 2026-08-03
    sysprog21/muxleq#12 muxleq 的 RISC-V decode_word() 把所有 opcode 0x67 一律當 JALR、所有 0x73 一律當 SYSTEM:0x00009067(JALR funct3 為保留值)被當 direct jump 降階、0x00001073(CSR 指令)在 a7==93 時變成 SYS_EXIT。改為 JALR 要求 funct3==0、SYSTEM 只認精確 ECALL/EBREAK 指令字、其餘標 illegal,analyze_syscalls() 比對精確 ECALL 字,並加手工編碼回歸案例(decoder 正確性 bug、無自報 issue) · +58/−6、3 檔 · sysprog21(Jserv)、maintainer jserv 合併
  18. 2026-08-03
    open-telemetry/opentelemetry-cpp#4298 Elasticsearch exporter 的 waitForResponse() 在無述詞的 cv_.wait(lk) 上等待:OnResponse 在鎖外 notify,若通知早於 waiter parking 即遺失、export 執行緒永久阻塞(OnEvent 失敗路徑更未持鎖、未記狀態;Destroyed 亦不通知不記錄),spurious wakeup 又把在途請求誤報失敗。改為在成功/失敗路徑於鎖內記錄明確 CompletionState、以述詞等待,附翻轉兩執行緒順序的回歸測試 · +54/−16、2 檔 · Fixes #4296(maintainer Marc Alff 合併)
  19. 2026-08-01
    open-telemetry/opentelemetry-cpp#4326 Windows CI 的 cmake.install.test component 清單有 ext_http_curl 卻漏了 ext_http,導致該 component 的安裝測試在 Windows 從未 configure/build(test_ext_http.cc 只在 Linux/macOS 對安裝套件編譯);補上後三平台一致 · +4/−0、2 檔 · 由 #4315 稽核拆出(maintainer dbarker 要求分開處理並合併)
  20. 2026-08-01
    open-telemetry/opentelemetry-cpp#4292 SocketAddr(char const *) 兩平台記憶體安全:POSIX 於固定索引截斷未初始化 char[16],短於 15 字元的 host 讓 inet_pton 讀不定值(髒堆疊上 1.2.3.4:80 靜默變 0.0.0.0:80);Windows 複製迴圈以 sizeof(buf) 位元組數為界卻索引 WCHAR[200],逾 200 字元位址越界寫。兩平台改用單一 inet_pton 解析器+嚴格 valid/invalid 契約(解析失敗留 AF_UNSPEC、port()==-1),並以 static_assert 釘死 sockaddr 版面 · +279/−30、7 檔 · Fixes #4290、#4291(屬 ext/http 稽核 #4287;maintainer Marc Alff 合併)
  21. 2026-07-31
    argoproj/argo-workflows#16587 為 Argo 加上第一等的 Kubernetes DRA resource claims:WorkflowSpec 與 Template 層新增 resourceClaims、貫穿到 pod(原本只能靠 podSpecPatch 手寫)· +3343/−2、33 檔 · feat、實作自本人提案 #16576(lead maintainer Joibel 合併、排進 4.1-rc2)
  22. 2026-07-31
    argoproj/argo-workflows#16591 把 #16577 的 archive-once + 暫時性 DB 重試 cherry-pick 到 release-4.0(自動 pick 因 archiveWorkflow wrapper 衝突、手動解衝突)· +300/−27、2 檔 · release-4.0 backport(Joibel 合併)
  23. 2026-07-31
    argoproj/argo-workflows#16577 controller 修 archiveWorkflow 在成功路徑重複呼叫 archiveWorkflowAux(雙寫 archive DB、顛倒錯誤處理),並補上暫時性 DB 錯誤重試 · +296/−28、2 檔 · Fixes #16575(lead maintainer Joibel 合併、一併納入 #15780)
  24. 2026-07-31
    open-telemetry/opentelemetry-cpp#4289 HttpServer 在 handleConnectionClosed() 以 map::erase 銷毀 Connection 後,processRequest 未 return 就續寫 conn.response.*、組 status line、對已關 socket sendMore(use-after-free)· +81/−6、4 檔 · Fixes #4288
  25. 2026-07-30
    kubernetes-sigs/dra-driver-cpu#259 Load 掃整個 FlagSet,對 --config、klog --v 等非 Config 欄位誤記 flagToJSONKey error(訊息還誤稱其值會被設定檔覆寫);收斂為只掃已映射 flag、涵蓋性交回既有測試保證 · +33/−14、3 檔
  26. 2026-07-28
    open-telemetry/opentelemetry-cpp#4302 SDK common 與 logs 測試 helper 移入匿名 namespace 強制 internal linkage,收掉 misc-use-internal-linkage 警告(含一個析構順序測試需保序處理)· +21/−7、4 檔 · Part of #4196
  27. 2026-07-27
    openchoreo/openchoreo#4315 reconcileObservabilityRelease 把暫時性的 ObservabilityPlane 查詢失敗當成「不管理」而刪掉既有 Release 且不 requeue;改以 apierrors.IsNotFound 區分真缺席與暫時失敗,後者回傳錯誤重新入列 · +330/−10 · CNCF Sandbox · Fixes #2764
  28. 2026-07-27
    kubernetes-sigs/dra-driver-cpu#257 dracpu 只處理 SIGINT 不處理 SIGTERM,正常 Pod 終止(送 SIGTERM)時關閉清理不會執行;改為攔截 SIGTERM 讓 graceful shutdown 正常跑 · +9/−15 · Fixes #253
  29. 2026-07-26
    open-telemetry/opentelemetry-cpp#4301 把剩餘的 API 測試 helper 移進匿名 namespace 強制 internal linkage,收掉對應的 misc-use-internal-linkage 警告 · +22/−8、6 檔
  30. 2026-07-26
    kubevirt/kubevirt#18542 virt-api 的 countConfiguredMDEVRamFBs 把「present 但 enabled 未設」的 vGPU ramFB 當關閉,但 SetDefaults_FeatureState 會把未設的 Enabled 補成 true → validator 與欄位預設值語意矛盾,VM/VMIRS 接受、VMI 卻被拒;改為未設即當 enabled · +114/−1 · kind/bug · release-note · Fixes #18541
  31. 2026-07-25
    open-telemetry/opentelemetry-cpp#4303 把 SDK trace 與 metrics 測試的 helper(batch_span_processor_testtracer_testtracer_provider_set_test、直方圖 exemplar reservoir 等)移進匿名 namespace 強制 internal linkage,收掉對應的 misc-use-internal-linkage 警告 · +27/−7、7 檔
  32. 2026-07-24
    kubernetes-sigs/cluster-api-provider-aws#6130 把既有的 spec.secondaryControlPlaneLoadBalancer 設為 null 移除時,AWSCluster 的 validating webhook 會 nil pointer dereference panicValidateUpdate 只在新舊值皆為 nil 時才跳過該組,於是 oldlb != nil、newlb == nil 走進既有 LB 分支並解參考 newlb;改為明確拒絕這種移除並回傳驗證錯誤 · +96/−14、2 檔 · kind/bug · release-note · Fixes #6129
  33. 2026-07-24
    open-telemetry/opentelemetry-cpp#4280 收掉 ext/http 內嵌伺服器最後 5 個 misc-override-with-different-visibility 警告(#4215 當時延後處理的部分):HttpServer 以 private 繼承 SocketCallback,四個 onSocket* override 由 protected 對齊為 private;Reactor 以 protected 繼承 ThreadonThread 由 public 對齊為 protected。這些 override 只透過基底介面派發,故不影響相容性 · +8/−4、4 檔 · 完成 #4195
  34. 2026-07-24
    open-telemetry/opentelemetry-cpp#4286 把四個 metric storage 測試檔的 WritableMetricStorage* fixture 移進匿名 namespace 以強制 internal linkage(misc-use-internal-linkage),消掉 7 個 clang-tidy 警告、warning_limit 降至 156/166;這四個檔各自定義同名的 WritableMetricStorageTestFixture 且都連進同一個 //sdk/test/metrics:all_tests,逐 TU 匿名 namespace 同時解掉 gtest 套件名衝突 · +47/−20、6 檔 · Part of #4196
  35. 2026-07-23
    kubeflow/pipelines#12417 feat: 支援在 API server 啟動時設定 driver pod 的 labels 與 annotations(InitDriverPodConfig() 啟動時載入一次、以 sync.RWMutex 快取供併發安全讀取,回應 issue #12015)· +1139/−0、13 檔、size/XXL · 2025-11-07 開啟,歷經 8 個多月審查於 2026-07-23 合併
  36. 2026-07-22
    zhu-xlab/DOFA#31 hubconf: 宣告 timm 相依並把 model import 延後到 entrypoint(torch.hub 先 import hubconf 讀 dependencies 再檢查;頂層 import 依賴 timm 的模組會在檢查前丟深層 ImportError,改 lazy import 後 Hub 能清楚印出「Missing dependencies: timm」)· 打包/可用性衛生
  37. 2026-07-22
    zhu-xlab/DOFA#32 cleanup: 移除未使用的 import(dofa_v1.py 的 pdb、numpy 與 wave_dynamic_layer.py 的 numpy 皆未使用,無行為改變)· 整潔/可重現性
  38. 2026-07-21
    kubernetes/kubernetes#140442 DRA: 修 consumable-capacity 請求 rounding 的 int64 溢位(roundUpRangemin+step*n 對大 capacity 請求溢位成負 → 配置了一個其實無法滿足的 device;Fixes #140441;kind/bug · release-note;pohly 認定為 #140666 驗證層的「執行期防護」另一半)
  39. 2026-07-21
    kubernetes/kubernetes#140437 DRA: 對只以 share ID 記錄的既存 allow-multiple 裝置略過 counter 檢查(structured allocator 會把同一個共用 counter 重複計算,Fixes #140433;kind/bug · release-note · sig/scheduling + sig/node)
  40. 2026-07-21
    kubernetes/kubernetes#140666 DRA: 拒絕無法使用的 consumable-capacity validRange 邊界(守衛用精確的 Quantity.Sign()、算術卻用會截斷的 Quantity.Value()2^64 因此通過守衛後除零;kind/bug · release-note,Fixes #140472,經 pohly 與 liggitt 核准)
  41. 2026-07-20
    cncf-tags/container-device-interface#321 parser: 為單字元 vendor/class 名稱補上界線守衛(validateVendorOrClassNamename[1:len(name)-1] 時未擋 len(name)==1,會算出 name[1:0] 而 slice-bounds panic;兄弟函式 ValidateDeviceName 本來就有這道守衛,Fixes #320,由 maintainer elezar 合併)
  42. 2026-07-20
    kai-scheduler/KAI-Scheduler#1874 fix(scheduler): 阻止 DRA GPU 數量溢位低估佇列需求(未檢查的 int64 加總會把正的 GPU 需求 wrap 成負值,連帶抵銷同佇列其他工作負載的需求、擋掉本應成立的 reclaim;Fixes #1873
  43. 2026-07-20
    insomniacslk/dhcp#583 nclient4: 拒絕 IPv4 payload 長度不足以容納 UDP 標頭的封包(ReadFrom 計算 payloadLength − udpHdrLen 時無下界,畸形 frame 會算出越界長度;由 dhcp/uio 維護者 hugelgupf 審核合併)
  44. 2026-07-18
    kubernetes/kubernetes#140663 Automated cherry pick of #140431 到 release-1.36(DRA reserved-state rollback backport;lgtm+approved+cherry-pick-approved)
  45. 2026-07-18
    llm-d/llm-d-router#1840 feat: 為 precise-prefix-cache-producer 實作 DumpState(plugin.StateDumper,Fixes #1794;由 maintainer liu-cong 合併)
  46. 2026-07-17
    kubernetes-sigs/dranet#256 apis: 依 destination+table 去重合併後的 routes(修 MergeNetworkConfig 丟失同 destination 不同 table 的路由,Fixes #255
  47. 2026-07-17
    kubernetes-sigs/dranet#254 apis: validation 拒絕混用 IPv4/IPv6 的 route 與 rule(kernel 本就會拒絕,驗證層需提前擋下,Fixes #253
  48. 2026-07-16
    llm-d/llm-d-router#1838 feat: 為 mm-embeddings-cache-producer 實作 DumpState(+182/−0)
  49. 2026-07-16
    llm-d/llm-d-router#1839 feat: 為 program-aware-fairness 實作 DumpState
  50. 2026-07-16
    ocudu/ocudu!1045 (GitLab) ntn: 為 --k_mac 補上 CLI 範圍檢查(3GPP kmac-r17 為 INTEGER 1..512,Fixes #577
  51. 2026-07-16
    ocudu/ocudu!1047 (GitLab) ntn: 校驗 ta_common + ta_common_offset 之和落在 ASN.1 taCommon-r17 範圍(0..66485757)內,修無驗證的溢位(Fixes #579
  52. 2026-07-15
    kubernetes/kubernetes#140431 DRA: roll back reserved state in allocateDevice(拒絕/回溯候選 device 時回滾 reserved counters 與 constraints,Fixes #140436
  53. 2026-07-14
    intel/intel-resource-drivers-for-kubernetes#74 QAT: free all devices before unpreparing the claim(修 multi-PF claim 的 device 洩漏,Fixes #73
  54. 2026-07-13
    kubernetes/kubernetes#140435 DRA: key the structured allocator counter caches by PoolID
  55. 2026-07-13
    zephyrproject-rtos/zephyr#110205 boards: m5stack: add support for M5Stack StickS3(同 PR 列名上游 maintainer)
  56. 2026-07-12
    helm/helm#32304 fix(ci): pin govulncheck-action to the v1.1.0 release
  57. 2026-07-12
    RocketPy-Team/RocketPy#1052 ENH: seed sensor measurement noise per instance
  58. 2026-07-11
    llm-d/llm-d-router#1835 feat: implement DumpState for approx-prefix-cache-producer
  59. 2026-07-10
    akhenakh/sgp4#12 Add Vallado SGP4-VER verification test
  60. 2026-07-10
    akhenakh/sgp4#11 Reject deep-space orbits in Initialize instead of returning a wrong position (Fixes #10)
  61. 2026-07-10
    kubernetes-sigs/kueue#12954 dra: test count==1 rounding and log the negative driver-counter clamp
  62. 2026-07-10
    volcano-sh/volcano#5626 [release-1.15] fix: prevent int64 overflow in DRA device count quota accounting
  63. 2026-07-10
    kubernetes-sigs/kueue#12945 dra: clamp driver counter values to [0, MaxInt64] before charging quota
  64. 2026-07-10
    volcano-sh/volcano#5621 fix: prevent int64 overflow in DRA device count quota accounting
  65. 2026-07-10
    kubernetes-sigs/kueue#12909 dra: saturate counter-charge multiplication to avoid int64 overflow
  66. 2026-07-10
    kubernetes-sigs/kueue#12897 dra: reject device counts whose sum overflows int64
  67. 2026-07-09
    kubernetes-sigs/dranet#251 feat: make kubelet registrar and plugins directories configurable
  68. 2026-07-09
    k8s-operatorhub/community-operators#8733 operator ntn-operators (0.6.0)
  69. 2026-07-09
    kubernetes-sigs/dra-driver-cpu#215 test: cover StopContainer claim release; document lifetime invariant
  70. 2026-07-07
    open-telemetry/opentelemetry-cpp#4215 [CODE HEALTH] Fix clang-tidy misc-override-with-different-visibility warnings
  71. 2026-07-07
    open-telemetry/opentelemetry-cpp#4216 [CODE HEALTH] Fix clang-tidy bugprone-unchecked-string-to-number-conversion warnings
  72. 2026-07-07
    open-telemetry/opentelemetry-cpp#4217 [CODE HEALTH] Move api/test and sdk/test classes into anonymous namespace
  73. 2026-07-07
    open-telemetry/opentelemetry-android#1834 Make the disk buffering export period configurable
  74. 2026-07-06
    milvus-io/milvus#50933 enhance: support text_match_fuzzy (edit-distance) scalar filter
  75. 2026-07-04
    microcks/microcks.io#551 docs: add BlueSky to the Community page social section
  76. 2026-07-03
    open-telemetry/opentelemetry-cpp#4157 [SDK] LogRecord attribute limits enforcement
  77. 2026-07-03
    open-telemetry/opentelemetry-cpp#4202 [CODE HEALTH] Fix clang-tidy bugprone-unused-local-non-trivial-variable warnings
  78. 2026-07-01
    open-telemetry/opentelemetry-helm-charts#2280 [opentelemetry-operator]: add a CI check that feature gates stay in sync
  79. 2026-06-30
    opentofu/opentofu#4321 configs: fix panic on invalid removed.from with destroy provisioner
  80. 2026-06-30
    llm-d/llm-d-router#1837 feat: implement DumpState for no-hit-lru-scorer
  81. 2026-06-30
    llm-d/llm-d-router#1836 feat: implement DumpState for file-discovery
  82. 2026-06-30
    envoyproxy/envoy#45828 attributes: add connection.peer_certificate_valid attribute
  83. 2026-06-27
    kubernetes-sigs/dranet#240 docs: surface examples on the DRANET website
  84. 2026-06-24
    pollen-robotics/reachy_mini#1224 Use capped exponential backoff for central relay reconnect
  85. 2026-06-23
    open-telemetry/opentelemetry-helm-charts#2271 [opentelemetry-operator]: remove deprecated manager.featureGates
  86. 2026-06-13
    open-telemetry/opentelemetry-cpp#4148 [SDK] File configuration: declarative resource detection types
  87. 2026-06-12
    pollen-robotics/reachy_mini#1193 fix(daemon): cap glibc malloc arenas on Pi 4 Wireless (MALLOC_ARENA_MAX=2)
  88. 2026-06-11
    kubernetes-sigs/kueue#12094 [release-0.17] Classify DRA reconcile errors as transient vs deterministic
  89. 2026-06-11
    open-telemetry/opentelemetry-cpp#4144 [SDK] Delta temporality: use per-instrument creation time for first interval start_ts
  90. 2026-06-10
    kubernetes-sigs/kueue#12002 Classify DRA reconcile errors as transient vs deterministic
  91. 2026-06-06
    open-telemetry/opentelemetry-cpp#4129 [CODE HEALTH] Move func_grpc_main classes into anonymous namespace
  92. 2026-06-06
    open-telemetry/opentelemetry-cpp#4128 [CODE HEALTH] Move func_http_main classes into anonymous namespace
  93. 2026-06-06
    open-telemetry/opentelemetry-cpp#4124 [CODE HEALTH] Move logger_sdk_test classes into anonymous namespace
  94. 2026-06-05
    open-telemetry/opentelemetry-cpp#4122 [CODE HEALTH] Move sdk_builder.cc builders into anonymous namespace
  95. 2026-06-05
    k8s-operatorhub/community-operators#8299 operator ntn-operators (0.5.0)
  96. 2026-06-04
    open-telemetry/opentelemetry-cpp#4121 [CODE HEALTH] Move registry.cc propagator builders into anonymous namespace
  97. 2026-06-04
    open-telemetry/opentelemetry-cpp#4116 [CODE HEALTH] Move simple_log_record_processor_test into anonymous namespace
  98. 2026-06-03
    open-telemetry/opentelemetry-cpp#4115 [CODE HEALTH] Move curl_http_test classes into anonymous namespace
  99. 2026-06-03
    open-telemetry/opentelemetry-cpp#4114 [CODE HEALTH] Remove last unused nostd namespace alias in otlp_populate_attribute_utils
  100. 2026-06-03
    zephyrproject-rtos/zephyr#110155 scripts: west: runners: esp32: support watchdog-reset via --reset-type
  101. 2026-06-02
    open-telemetry/opentelemetry-cpp#4090 [EXPORTER] Convert uint64_t attribute values exceeding INT64_MAX to string per OTel spec
  102. 2026-05-27
    kubernetes/minikube#23036 containerd: skip TestPreload user-image check
  103. 2026-05-26
    AcademySoftwareFoundation/dna#138 feat: transcript publishing workflow (#120) — +2335 / −175 across 30 files
  104. 2026-05-21
    kptdev/porch#541 Reduce code duplication across rpkg CLI commands
  105. 2026-05-19
    open-telemetry/opentelemetry-cpp#4091 [CODE HEALTH] Remove unused alias declarations
  106. 2026-04-27
    k8s-operatorhub/community-operators#8018 operator [N] [CI] ntn-operators (0.4.0)
  107. 2026-04-21
    open-telemetry/opentelemetry-cpp#4013 [CODE HEALTH] Fix clang-tidy narrowing-conversions warnings in sync_instruments
  108. 2026-04-17
    open-telemetry/opentelemetry-cpp#3997 [CODE HEALTH] Fix clang-tidy warnings in base2 exponential histogram aggregation
  109. 2026-04-14
    jaegertracing/jaeger-ui#3407 Convert MeasurableNode to functional component
  110. 2026-04-14
    open-telemetry/opentelemetry-cpp#3989 [CODE HEALTH] Fix clang-tidy narrowing conversions in baggage
  111. 2026-03-14
    jaegertracing/jaeger-ui#3592 fix(TracePage): fix stale filterSpans cache key and remove dead code
  112. 2026-03-02
    jaegertracing/jaeger-ui#3413 refactor(plexus): convert NodesLayer from class to functional component
  113. 2026-02-27
    jaegertracing/jaeger-ui#3410 refactor(plexus): convert SvgLayer from class to functional component
  114. 2026-02-24
    ocudu/ocudu!316 (GitLab) docker: support all gNB deployment scenarios for metrics
  115. 2026-02-23
    meshery/meshery#17139 [Docs] Fix typo in filename: sever → server
  116. 2026-02-19
    jaegertracing/jaeger-ui#3412 refactor(plexus): convert SvgLayersGroup from class to functional component
  117. 2026-02-13
    kubernetes-sigs/kubespray#13002 Bump custom_cni test Cilium version to 1.18.6
  118. 2026-02-09
    kptdev/porch#437 Skip binary files in DB cache sync
  119. 2026-02-05
    kubernetes/kubernetes#136434 [release-1.33] fix(kubelet): convert V().Error() to V().Info()
  120. 2026-02-05
    kubernetes/kubernetes#136433 [release-1.34] fix(kubelet): convert V().Error() to V().Info()
  121. 2026-02-05
    kubernetes/kubernetes#136432 [release-1.35] fix(kubelet): convert V().Error() to V().Info()
  122. 2026-02-03
    jaegertracing/jaeger-ui#3409 refactor(plexus): convert SvgEdgesLayer from class to functional component
  123. 2026-02-02
    cncf/gitdm#960 Add thc1006 affiliation as Independent
  124. 2026-01-27
    kptdev/porch#405 Use context-aware database methods for tracing propagation
  125. 2026-01-27
    meshery/meshery#17136 [Docs] Update outdated Go version requirements in documentation
  126. 2026-01-26
    goharbor/harbor#22709 fix(core): add warning when config admin password is ignored
  127. 2026-01-22
    kubernetes/kubernetes#136028 fix(kubelet): convert V().Error() to V().Info() so verbosity is respected
  128. 2026-01-21
    kubernetes/minikube#22494 fix: return non-zero exit code when status unavailable
  129. 2026-01-19
    score-spec/community-provisioners#54 feat: add gcp-pubsub-emulator provisioner for score-compose
  130. 2026-01-17
    kubernetes/kubernetes#136229 fix(apiserver): convert V().Error() to V().Info()
  131. 2026-01-14
    kptdev/porch#398 Cleanup after PR #375: rename function and consolidate tests
  132. 2026-01-08
    open-telemetry/opentelemetry-collector#14115 [mdatagen] Add optional display_name field to metadata
  133. 2026-01-06
    docker/model-runner#516 feat(distribution): add CNCF ModelPack format compatibility (+1351 / −150)
  134. 2025-12-31
    kgateway-dev/kgateway#12829 test: add unit tests for AgentgatewayPolicy frontend field
  135. 2025-12-09
    nephio-project/catalog#132 Migrate kpt functions to kptdev registry
  136. 2025-12-02
    opentofu/opentofu#3506 docs: Add missing short-circuit evaluation entry
  137. 2025-11-13
    kubestellar/kubestellar#3476 Remove unused controlplanes/status write permissions
  138. 2025-11-11
    cortexproject/cortex#7068 Add ARM64 architecture support to integration tests
  139. 2025-11-06
    perses/perses#3528 [ENHANCEMENT] Add support for nanoseconds and microseconds time units
  140. 2025-11-05
    kubernetes/website#53094 Fix broken CRI link in services-networking documentation
  141. 2025-11-05
    kube-vip/kube-vip#1315 Add SIGUSR1 signal handler for runtime configuration reload
  142. 2025-11-04
    nephio-project/test-infra#369 Update documentation for kptdev migration
  143. 2025-11-03
    nephio-project/test-infra#368 Migrate KRM functions to ghcr.io registry
  144. 2025-11-03
    nephio-project/test-infra#367 Migrate kpt binary to kptdev organization
  145. 2025-11-02
    keycloak/keycloak#43888 Fix typos in OIDC Device Authorization Grant documentation
  146. 2025-10-12
    Gthulhu/api#4 feat: 實作排程策略快取機制提升 API 效能(eBPF / sched_ext scheduler API)
  147. 2025-10-09
    nephio-project/docs#256 chore(docs): Correct package metadata, upgrade dependencies, enhance npm scripts
  148. 2025-10-08
    kedacore/keda-docs#1637 docs: Add TLS support documentation for Artemis scaler
  149. 2025-10-08
    kedacore/keda#7106 feat: Add TLS support with client certificates to Artemis scaler
  150. 2025-10-05
    ray-project/ray#57191 [docs] Fix broken Towards Data Science links
  151. 2025-09-29
    open-telemetry/opentelemetry-collector-contrib#43041 Fix invalid configuration example in PostgreSQL receiver
  152. 2025-05-21
    nephio-project/docs#232 fix broken install links & harden linkspector CI(hctsai1006 帳號)

註:以上為 upstream merged PRs 時序總覽(預設顯示最近數筆,點上方按鈕展開全部);完整逐 repo 紀錄見下方各 Foundation 區塊。

Reference

Foundation 完整清單

給想知道「哪個 foundation 下哪個專案有幾個 PR」的人。每個 repo 名稱都連到該 repo 內我所有 PR 的過濾結果。

CNCF

Cloud Native Computing Foundation

117 merged · 41 repos

  • jaegertracing/jaeger-ui 6 merged
  • kubernetes/kubernetes 11 merged · DRA structured allocator 5 支修復全進 Kubernetes v1.37(int64 溢位、除零、counter 重複計算、reject/backtrack 的 reserved-state rollback、跨 driver pool-key 碰撞,皆帶 release-note),另有 release-1.36 backport
  • kptdev/porch 4 merged
  • cncf-tags/container-device-interface 1 merged · #321 單字元 vendor/class 名稱的 slice-bounds panic 守衛(Fixes #320,由 maintainer elezar 合併)· CNCF TAG Runtime 的容器裝置介面規格 · DRA 的上游相依(2026-07-20)
  • kai-scheduler/KAI-Scheduler 1 merged · #1874 阻止 DRA GPU 數量溢位低估佇列需求(Fixes #1873,由 maintainer enoodle 合併)· CNCF sandbox(2025-12-21 接受)· GPU 排程器(2026-07-20)
  • open-telemetry/opentelemetry-cpp 31 merged · #4346 string_view::data() 被當 NUL 結尾 C string 讀過頭(4 處;含 HttpSslOptions 把 5 字元 https view 多讀一 byte 誤判成 https、擅自開 TLS)→ view 長度內比較(Marc Alff 合併)(2026-08-04);#4327 ext 標頭安裝從 *.h glob 改為明確清單(標頭列名才進套件、改名/刪除即當場報錯),移除 default_factory.h、curl client/operation 及內嵌 server 的 http_server.hsocket_tools.h 共 5 支實作/伺服器標頭出安裝面(貢獻 #1980、承 #4315 稽核)(2026-08-04);#4298 Elasticsearch exporter 的 waitForResponse() 在無述詞的 cv_.wait 上等待,通知早於 waiter parking 即遺失致永久阻塞(lost-wakeup;失敗路徑更未持鎖記狀態、spurious wakeup 又誤報失敗);改於鎖內記 CompletionState、以述詞等待(Fixes #4296,maintainer Marc Alff 合併)(2026-08-03);#4326 Windows CI 補跑 ext_http component 安裝測試(清單有 ext_http_curl 卻漏 ext_http,該測試在 Windows 從未 configure/build;由 #4315 稽核拆出、maintainer dbarker 合併)(2026-08-01);#4292 SocketAddr 字串解析兩平台記憶體安全(POSIX 讀未初始化位元組、Windows 越界寫;改用單一 inet_pton 解析器+valid/invalid 契約,Fixes #4290、#4291、屬 ext/http 稽核 #4287、maintainer Marc Alff 合併)(2026-08-01);#4289 HttpServer use-after-free(handleConnectionClosed()map::erase 銷毀 Connection 後,processRequest() 未 return 仍寫 conn.response.*、對已關 socket sendMore,Fixes #4288)(2026-07-31);#4302 SDK common/logs 測試 helper 移入匿名 namespace(misc-use-internal-linkage 第二批,接續 #4301、Part of #4196)(2026-07-28)
  • meshery/meshery 2 merged
  • kube-vip/kube-vip 1 merged
  • kubernetes-sigs/kubespray 1 merged
  • kubernetes-sigs/kueue 8 merged · #13727 docs 補記 deviceClassMappings 變更需重啟 controller 才生效(area/dra)(2026-08-04);#13645 docs 釐清 kueue.x-k8s.io/priority-class label 指向不存在的 WorkloadPriorityClass 時,ExtractPriority 回查找錯誤、Workload 於 client.Create 前即被擋(不 fallback 到 Pod PriorityClass 或預設)(2026-08-04);#12897/#12909/#12945/#12954 DRA 配額會計 int64 溢位與 counter 夾值加固(含 count==1 進位測試)(2026-07-10)
  • volcano-sh/volcano 2 merged · #5621 DRA count int64 overflow guard(新建 SaturatingAdd/Mul)+ #5626 release-1.15 backport · CNCF Incubating (2026-07-10)
  • kubernetes-sigs/dranet 4 merged · #256 依 destination+table 去重合併路由(Fixes #255)+ #254 validation 擋下 IPv4/IPv6 混用(Fixes #253)(2026-07-17);#251 configurable kubelet registrar/plugin dirs (2026-07-09)
  • kubernetes-sigs/dra-driver-cpu 5 merged · #272 讓 kubelet root 目錄可設定(原硬編 /var/lib/kubelet、搬過家的叢集跑不動:新增 --kubelet-root-dir、要求絕對路徑、空值 fail-closed 拒絕不 fallback;已合併的 #273 為其前置)(2026-08-04);#273 拒絕拼法與 schema 正規 json tag 不符的設定鍵(encoding/json 大小寫折疊讓 reservedcpus 偷渡到 ReservedCPUs、且蓋過顯式 --reserved-cpus,折疊的排除欄位如 bindaddress 亦繞過;改 fail-closed 拒收)(2026-08-03);#259 Load 收斂 flag 掃描範圍、不再對 --config、klog --v 等非 Config 欄位誤記 flagToJSONKey error(涵蓋性交回 TestFlagToJSONKey_CoversAllFlags 保證)(2026-07-30);#257 處理 SIGTERM 讓優雅關閉能執行清理(Fixes #253)(2026-07-27);#215 StopContainer claim-release test + lifetime invariant (2026-07-09)
  • kubernetes-sigs/dra-driver-google-tpu 1 merged · #25 prepareDevices 對整包 Results 套 TPU 專屬檢查(full-chip 數/allocatable/container edits),claim 若同時含別 driver 裝置則完整 TPU 配置被拒;改為只處理 result.Driver == DriverName 的 result(把官方範本本就有的守衛補回,Fixes #26,kind/bug、Prow 合併)· Google 的 Kubernetes TPU DRA driver(2026-08-04)
  • llm-d/llm-d-router 6 merged · #1840 為 precise-prefix-cache-producer 實作 DumpState(Fixes #1794)(2026-07-18);#1838/#1839 mm-embeddings-cache-producer 與 program-aware-fairness DumpState(2026-07-16);#1835/#1836/#1837 DumpState features · CNCF Sandbox(皆 maintainer liu-cong 合併)
  • envoyproxy/envoy 1 merged · #45828 peer_certificate_valid attribute (2026-06-30)
  • open-telemetry/opentelemetry-collector-contrib 1 merged
  • open-telemetry/opentelemetry-helm-charts 2 merged · #2280 featureGates CI sync check (2026-07-01)
  • cncf/gitdm 1 merged
  • cortexproject/cortex 1 merged
  • goharbor/harbor 1 merged
  • k8s-operatorhub/community-operators 3 merged · #8733 ntn-operators 0.6.0 (2026-07-09)
  • kedacore/keda 1 merged
  • kedacore/keda-docs 1 merged
  • keycloak/keycloak 1 merged
  • kgateway-dev/kgateway 1 merged
  • kubernetes/minikube 2 merged · #23036 containerd preload skip (2026-05-27)
  • kubernetes/website 1 merged
  • kubestellar/kubestellar 1 merged
  • microcks/microcks.io 1 merged · #551 add BlueSky to Community page · CNCF Sandbox (2026-07-04)
  • open-telemetry/opentelemetry-android 1 merged · #1834 configurable disk-buffering export period (2026-07-07)
  • open-telemetry/opentelemetry-collector 1 merged
  • opentofu/opentofu 2 merged · #4321 fix panic on invalid removed.from (2026-06-30)
  • perses/perses 1 merged
  • score-spec/community-provisioners 1 merged
  • kubeflow/pipelines 1 merged · #12417 API server 啟動時載入 driver pod labels/annotations 的管理級設定(+1139/−0、13 檔、size/XXL;2025-11-07 開啟、歷經 8 個多月於 2026-07-23 合併)· Kubeflow ML pipelines 後端(2026-07-23)
  • helm/helm 1 merged · #32304 將 govulncheck-action 釘到 v1.1.0 release(CI 供應鏈固化)· Kubernetes 套件管理器(2026-07-12)
  • kubernetes-sigs/cluster-api-provider-aws 1 merged · #6130 移除次要控制平面 LB 時 webhook nil deref panic(Fixes #6129)· Cluster API AWS provider(2026-07-24)· 隨 v2.13.0 出貨
  • kubevirt/kubevirt 1 merged · #18542 virt-api 把未設的 ramFB.enabled 當 enabled、對齊 SetDefaults_FeatureState(修 validator 與欄位預設值語意不一致致 VMI 被拒,Fixes #18541,kind/bug · release-note)· CNCF Incubating(2026-07-26)
  • openchoreo/openchoreo 1 merged · #4315 reconcileObservabilityRelease 對暫時性 ObservabilityPlane 查詢失敗改以 apierrors.IsNotFound 區分真缺席與暫時失敗、後者 requeue 而非刪掉既有 Release(Fixes #2764,由 maintainer LakshanSS 合併)· CNCF Sandbox(2026-01-06 接受)· Kubernetes 開發者平台(2026-07-27)
  • argoproj/argo-workflows 3 merged · #16587 為 Argo 加上第一等 Kubernetes DRA resource claims(WorkflowSpec/TemplateresourceClaims 貫穿到 pod,實作自本人提案 #16576,+3343/−2、33 檔,lead maintainer Joibel 合併並排進 4.1-rc2)(2026-07-31);#16591 把該修正 cherry-pick 到 release-4.0(自動 pick 因 archiveWorkflow wrapper 衝突、手動解衝突,由 Joibel 合併,2026-07-31);#16577 controller archive 每個 workflow 只歸檔一次(修 archiveWorkflowAux 成功路徑雙重呼叫、雙寫 archive DB 且顛倒錯誤處理),並補上暫時性 DB 錯誤重試(納入 lead maintainer Joibel 邀請的 #15780,由 Joibel 合併)· CNCF Graduated · Argo 工作流引擎(2026-07-31)
LFN

Linux Foundation Networking

6 merged · 3 repos

OCUDU

OCUDU Ecosystem Foundation (Linux Foundation umbrella)

4 merged · 1 repo

  • ocudu/ocudu (GitLab) 4 merged · !316 使 Docker/Grafana metrics 支援 gNB 位於 Docker、host、Kubernetes 或遠端主機等部署情境 · !1045 為 NTN --k_mac 加入 3GPP kmac-r17 1–512 範圍驗證(關閉 #577)· !1047 驗證 ta_common + ta_common_offset 不超過 ASN.1 taCommon-r17 合法範圍(關閉 #579)· !1097eci_to_orbital 的 acos 引數前 clamp 到 [-1,1],防合法幾何於 apoapsis 因浮點 round-off 使 cosine 微超 -1 → acos NaN 汙染整組軌道要素與 SIB19 ephemeris · O-RAN 5G CU/DU full-stack 實作,其中三筆為 NTN 協定正確性修正
LF 直屬

Linux Foundation 直屬

2 merged · 1 repo — 不在任何 sub-foundation 下,直接 Linux Foundation 託管

  • zephyrproject-rtos/zephyr M5Stack Platforms Maintainer — 上游 MAINTAINERS.yml status: maintained · 2 merged · #110205 StickS3 板級支援,由 Zephyr TSC 主席 nashif 合併(2026-07-13)
ASWF

Academy Software Foundation

1 merged · 1 repo

LF AI & Data

LF AI & Data Foundation (Linux Foundation umbrella)

1 merged · 1 repo

  • milvus-io/milvus 1 merged · #50933 text_match_fuzzy edit-distance scalar filter (XXL,Rust/tantivy→C++→Go) · LF AI & Data graduated(非 CNCF)(2026-07-06)
PyTorch Foundation

PyTorch Foundation (Linux Foundation umbrella)

1 merged · 1 repo

Docker

Docker & OCI ecosystem

1 merged · 1 repo

Hugging Face

Hugging Face × Pollen Robotics

2 merged · 1 repo — Hugging Face 開源機器人平台(2025-04 收購 Pollen Robotics);非 LF 旗下之獨立開源組織

Other

其他 Notable 開源組織

17 merged · 9 repos — 其他 high-profile 開源組織(非 LF 旗下)

  • ROCm/k8s-gpu-dra-driver 2 merged · #74 ResourceSlice 裝置改按名稱排序(原依 Go maps.Values 序、每次重啟順序不同、且影響 scheduler first-fit)+ #76 .gitignore 錨定 binary 樣式(原未錨定、連 cmd/ 原始碼目錄一起忽略) · AMD 官方 Kubernetes GPU DRA driver(ROCm)、maintainer bhatnitish 合併(2026-08-04)
  • IBM/power-dra-driver 1 merged · #323 prepareDevices 的 result 迴圈對每筆 result 都查自家 allocatable(config 路徑的 GetOpaqueDeviceConfigs 早就跳過別 driver、result 迴圈漏了)→ 混用兩 driver 的 claim 回 not allocatable、pod 起不來;改為跳過別 driver 的裝置(Fixes #322,maintainer prb112 合併)· IBM Power 架構的 Kubernetes DRA driver(2026-08-04)
  • sysprog21/muxleq 6 merged · #19 loop promotion 補算已解析 jalr ra 的返回點(用共用 is_link_call() 統一 successors/compute_promotions/返回點收集,防走 jalr 返回路徑讀到歸零 promotion cell)+ #18 leader discovery 改為 reachability-aware(不可達的控制轉移不再把可達塊裡的指令誤標為 leader、切割 live block,避免誤拒合法 ecall;重算至定點)+ #13 不支援的 JALR/SYSTEM 解為 K_ILL 後令其終止基本塊與 CFG 遍歷(防常數傳播跨越不可達字而誤解後續 JALR,#12 的後續)+ #16 RV32I rolling-release 改用 SHA-256 內容 manifest(不再只比 ELF 數量、避免 stale release)+ #14 count.txt 嚴格驗證(fail-closed,畸形/缺失 exit 77)+ #12 RISC-V decoder 拒絕非法 JALR/SYSTEM 編碼(funct3≠0、精確 ECALL/EBREAK 指令字) · SUBLEQ+MUX 雙指令 VM、自舉 Forth、編 RISC-V(sysprog21/Jserv)(2026-08-04)
  • akhenakh/sgp4 2 merged · #11 拒絕 deep-space 軌道靜默錯誤(SGP4/SDP4 邊界,Fixes #10)+ #12 Vallado SGP4-VER 正典驗證 · 衛星軌道傳播(2026-07-10)
  • RocketPy-Team/RocketPy 1 merged · #1052 讓感測器量測雜訊可逐實例設種子(模擬可重現性)· 6-DOF 高空火箭軌跡模擬(2026-07-12)
  • zhu-xlab/DOFA 2 merged · #31 hubconf 宣告 timm 相依並把 model import 延後到 entrypoint(Torch Hub 能清楚報缺依賴,而非深層 ImportError)+ #32 移除未使用的 import · 打包與可重現性衛生 · TUM 慕尼黑工大地球觀測基礎模型(多光譜/高光譜)(2026-07-22)
  • intel/intel-resource-drivers-for-kubernetes 1 merged · #74 QAT DRA driver 修 multi-PF claim 的 device 洩漏(Unprepare 生命週期,Fixes #73)· Kubernetes DRA (2026-07-14)
  • insomniacslk/dhcp 1 merged · #583 nclient4 拒絕 IPv4 payload 長度不足以容納 UDP 標頭的封包(ReadFrom 的長度計算無下界)· Go DHCPv4/v6 函式庫(2026-07-20)
  • Gthulhu/api 1 merged · eBPF / sched_ext API 排程策略快取

In Progress

進行中:送出審查、尚未合併

對這些專案已送出、正在上游審查的 PR。尚未合併,不計入上方 152;列在此是因為它們是往 vLLM、Prometheus、Magma 等專案的實質 pipeline。完整即時清單見 GitHub

Kubernetes DRA

跨廠商 DRA driver 正確性稽核

8 個 driver · 7 個組織 · 其中 4 家同一個「多-driver claim」缺陷(★)

Dynamic Resource Allocation(DRA,Kubernetes 1.34 GA)讓每個廠商用自己的 driver 把硬體交給排程器。我沿用缺陷變體分析法橫向稽核多家 driver,發現一個反覆出現的共通假設:claim.Status.Allocation.Devices.Results 裡的每一筆都是我這個 driver 的」。但一個 ResourceClaim 可由多個 driver 一起滿足,於是這個假設在四家不同廠商的 driver 上各自爆開(★ 標記)。這與我在 Kubernetes 核心的 int64 溢位家族是同一種方法,換到裝置管理層。回報中/進行中項目不計入頁首數字;已 merged 的修正已列入上方合併清單。

O-RAN / NTN

OCUDU NTN SIB19 路徑正確性稽核

11 個缺陷 · 分屬 5 種類別 · 同一 NTN SIB19 更新路徑

OCUDU(Open Centralized Unit Distributed Unit)是 srsRAN Project 的後繼專案,承襲其 5G CU/DU 程式碼、系統架構與開發脈絡。程式碼由 GitHub 移轉至 GitLab,主要授權亦由 srsRAN Project 的 AGPLv3 改為較寬鬆的 BSD-3-Clause-Open-MPI。OCUDU 的初始建置計畫於 2025 年公布,由美國 FutureG Office 透過 National Spectrum Consortium 提供經費,交由 DeepSig 與 Software Radio Systems(SRS)共同建置初始軟體。

Linux Foundation 於 2026 年 3 月 1 日在 MWC Barcelona 宣布成立 OCUDU Ecosystem Foundation,將技術專案置於中立、跨組織的開源治理架構之下。創始成員包括 AMD、AT&T、DeepSig、Ericsson、Nokia、NVIDIA、SoftBank、SRS 與 Verizon。SRS 是初始 CU/DU 程式碼的重要建置者及核心技術貢獻者之一。

OCUDU 並非在 2026 年 7 月才開始支援 NTN(Non-Terrestrial Network,非地面網路)。其前身 srsRAN Project 在 24.4 版已加入 GEO NTN 與 SIB19 支援,OCUDU 的初始 26.04 版本亦保留 GEO NTN 能力。2026 年 7 月期間 dev 分支密集合併 SIB19 廣播、TN/NTN 鄰區資訊、衛星切換、饋電鏈路 timing advance 與動態 SIB19 更新等擴充,是 NTN 實作快速演進與協定正確性加固的階段。

我沿用前述缺陷變體分析方法,對這條剛落地的 NTN SIB19 更新路徑(du_highdu_manager、MAC 排程與 ntn 數學)逐段稽核,辨識出 11 個缺陷、分屬五類:記憶體生命週期、環狀與規範時間邊界、數值退化與界限、錯誤處理與交易性、狀態失同步。這與我在 Kubernetes 上的 int64 溢位家族是同一種方法,換到 5G NTN 協定棧。

以下皆為回報中;其中 10 項已提出修正 MR(!1096!1153!1162!1163)正在 SRS 審查,1 項(#660)尚未提交。均不計入頁首的 Merged PR 或 Found & Fixed,待 MR 合併再逐筆計入。

縱深一:非同步生命週期安全(#643 → !1153)

SIB19 更新路徑將指向區域 std::vector<byte_buffer> 的 non-owning span,連同對區域 request 的 reference,交給延後執行的 coroutine。原始 handler 返回後,request 與 span 的 backing storage 均已失效,使後續 DU update procedure 與 MAC reconfiguration 讀取已釋放的記憶體。

修正 !1153 將 SI message buffers 改為由 request 持有,並以 value/move semantics 端到端傳遞至 coroutine 與 procedure。新增的端到端回歸測試經 ASan 驗證:修正前觸發錯誤、修正後通過;另以 mutation testing 分別還原 reference capture 與 non-owning span,確認測試能獨立捕捉兩條生命週期失效路徑。

縱深二:整條 NTN 更新程序的錯誤處理缺口

#653#654#655#657 不是四個孤立缺陷,而是同一條 NTN parameter update 程序端到端缺乏錯誤處理與交易性的四個面向:佇列滿時靜默丟棄、失敗留半套狀態且不 rollback忽略失敗回傳報假成功、MAC 多 PDU 中途失敗不回滾。逐段稽核比逐個修 bug 高一階之處,正在於指出這種系統性的品質缺口,而非只撿到四個 bug。

另記兩項(不計入上列 11 個)

#642 epoch_time 設定契約:serving-cell 的 epoch_time 文件化為 SIB19 EpochTime 的覆寫值,但 build_sib19_info 從未讀取;因同一 epoch 亦用於 ephemeris propagation,宜整體處理。目前等待維護者決定完整實作 override 或移除欄位並保留 epoch_sfn_offset

#633 CI 供應鏈(非 NTN 協定):CodeChecker CI builder 釘 6.26.1,其 bundled ldlogger 受 CVE-2025-40843 影響(6.26.2 已修);現行 CI 使用 analyze/parse、未觸及受影響的 CodeChecker log,屬預防性升版與供應鏈衛生。

已合併的 OCUDU NTN 修正(計入 Found & Fixed)

這次稽核延續我在同一 NTN 子系統的既有貢獻。OCUDU 維護者先前已合併兩項由我回報並修復的 3GPP Release 17 邊界問題:!1045(為 --k_mac 加入 kmac-r17 1–512 的 CLI 驗證,關閉 #577)與 !1047(驗證 ta_common + ta_common_offset 落在 taCommon-r17 0–66485757,關閉 #579)。兩者已合併至 dev 分支、計入頁首 Found & Fixed。

Peer Review · Issues · Cross-Platform

學術同儕審查 · 重點 Issues · 跨平台貢獻

GitHub merged PR 之外的貢獻,分三類:A 學術同儕審查、B 自己回報又自己修好並合併的上游 bug(端到端,對應摘要的 26 Found & Fixed)、C 我回報但由他人修復或仍在審查中(誠實標注、不計入 merged)。

A · 學術同儕審查

B · 自報自修並合併 — 端到端(對應上方 26 Found & Fixed)

C · 我回報、上游據以修復並合併,或仍在審查中(誠實揭露,不計入 merged)