You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Found by the tokio-removal measurement (#11451). It reproduces on both BEFORE (d8f24f15ed) and AFTER (bd8936e98e).
A long-running http backend (http server + fetch + crypto + zlib + timers) panics with common native handle registration exhausted: IdExhausted after about 200k requests in one process. Handle ids are being consumed and never returned. Any long-running Perry server will crash.
Also relevant: #11225 (merged) made dropped stdlib handle ids never reused and moved them into perry-ffi's shared pool (~262k ids). That is correct for avoiding stale-id aliasing, but it means ids are now strictly finite per process. Check:
which handles leak (never dropped) versus are dropped but never reclaimable;
whether the pool needs generation-tagged ids (reuse slots safely with a generation counter so stale ids don't alias) instead of never-reuse.
Repro: the backend probe in benchmarks/tokio-removal/ (#11451) under sustained load.
Activity
test: pool-provider runtime tests and handle-id churn gap test (#11453)
fix(stdlib,ffi): recycle shared handle ids through the collector inst…
test: pool-provider runtime tests and handle-id churn gap test (#11453)
fix(stdlib,ffi): recycle shared handle ids through the collector inst…
test: pool-provider runtime tests and handle-id churn gap test (#11453)
feat(runtime,stdlib): ordinary objects that own a native payload; cry…