nic-6443 opened a new pull request, #13708: URL: https://github.com/apache/apisix/pull/13708
### Description Bumps `nginx-lua-prometheus-api7` to `0.20260716`, which fixes the infinite busy loop behind #12275 — workers pegged at 100% CPU on a full `prometheus-metrics` shared dict, unresponsive even after traffic is removed. The root cause is in the library's `KeyIndex:add()`: once the shared dict is full, `__ngx_prom__key_count` can be LRU-evicted (it is an ordinary node, only refreshed when a *new* series is registered, so it goes cold under steady traffic). `sync()` then reads it as `nil → 0`, and every new series does `dict:add()` against an already-occupied slot → `"exists"` → retry the same slot → forever, without ever yielding. Full analysis, profiles and a standalone reproduction are in https://github.com/apache/apisix/issues/12275#issuecomment-4988690889. The fix (api7/nginx-lua-prometheus#16, released as `0.20260716`) advances the counter past the occupied slot on a repeated collision, so the next `sync()` adopts that slot's occupant and progress resumes; a hard cap makes it degrade to the existing dict-full error instead of spinning. The regression test lives with the fix in the library repo. I ran `t/plugin/prometheus*.t` locally against the bumped dependency and the prometheus suites pass. The only failures are the pre-existing `worker-events ... failed to receive the header bytes: closed` shutdown-race flake, which reproduces identically on the current `0.20260623` pin and is unrelated to this change. #### Which issue(s) this PR fixes: Fixes #12275 ### Checklist - [x] I have explained the need for this PR and the problem it solves - [x] I have explained the changes or the new features added to this PR - [x] I have added tests corresponding to this change (the regression test ships with the library fix in api7/nginx-lua-prometheus#16; this PR is the version bump that pulls it in) - [ ] I have updated the documentation to reflect this change (dependency bump only, no doc change needed) - [x] I have verified that this change is backward compatible -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
