Skip to content

Add #1467 GC unsafe-zone auto-trigger coverage#1472

Merged
proggeramlug merged 1 commit into
PerryTS:mainfrom
andrewtdiz:codex/issue-1467-gc-unsafe-zones
May 23, 2026
Merged

Add #1467 GC unsafe-zone auto-trigger coverage#1472
proggeramlug merged 1 commit into
PerryTS:mainfrom
andrewtdiz:codex/issue-1467-gc-unsafe-zones

Conversation

@andrewtdiz
Copy link
Copy Markdown
Contributor

Summary

Fixes #1467.

Root cause / verification

  • Affected release: v0.5.1025 (73ceb70) still has lifetime Fastify/ws unsafe zones and gc_check_trigger() ignores GC_UNSAFE_ZONES.
  • Existing main after Fix GC unsafe-zone handling for server adapters #1429 blocks automatic/deferred GC when unsafe zones are active and removes stale server-lifetime unsafe zones.
  • The new tests fail on v0.5.1025 with collection_count incrementing while unsafe zones are active, and pass on this branch.

Local verification

  • cargo fmt --all
  • git diff --check
  • PERRY_GC_TRACE=1 PERRY_GC_DIAG=1 cargo test -p perry-runtime unsafe_zone --lib -- --nocapture
  • PERRY_GC_FORCE_EVACUATE=1 PERRY_GC_VERIFY_EVACUATION=1 cargo test -p perry-ext-fastify gc_mutable_scanner_rewrites_registered_roots --lib -- --nocapture
  • PERRY_GC_FORCE_EVACUATE=1 PERRY_GC_VERIFY_EVACUATION=1 cargo test -p perry-ext-http-server gc_mutable_scanner_rewrites_server_wrapper_and_request_response_roots --lib -- --nocapture
  • PERRY_GC_FORCE_EVACUATE=1 PERRY_GC_VERIFY_EVACUATION=1 cargo test -p perry-ext-ws gc_mutable_scanner_rewrites_client_and_server_listener_roots --lib -- --nocapture
  • cargo build -p perry
  • PERRY_GC_TRACE=1 tests/test_issue_1425_gc_unsafe_zones.sh

@proggeramlug proggeramlug merged commit abe995f into PerryTS:main May 23, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0.5.1025: SIGSEGV every ~5 min on long-running Fastify+ws server (GC use-after-free; same root as #1425, harder failure mode)

2 participants