Skip to content

fix(async): publish released boxes when activation quiesces - #8268

Closed
proggeramlug wants to merge 1 commit into
fix/async-state-rss-accumulationfrom
fix/8213-activation-box-reuse
Closed

fix(async): publish released boxes when activation quiesces#8268
proggeramlug wants to merge 1 commit into
fix/async-state-rss-accumulationfrom
fix/8213-activation-box-reuse

Conversation

@proggeramlug

Copy link
Copy Markdown
Contributor

Summary

  • keep released async box cells scoped to the step invocation that released them
  • publish that batch immediately once the step returns and no matching resume remains queued
  • preserve the outermost empty-queue quarantine as the conservative duplicate-resume fallback
  • extend the immovable-source safety audit and release diagnostics for both publication gates

This is stacked on #8208 and completes the remaining activation-reachability work for #8213. No package or crate version is bumped.

Measurements

asyncpipe, best of five /usr/bin/time -l runs, with byte-identical output in every run:

BATCHES resident box cells base RSS #8208 RSS this PR RSS
30 1,635 21.92 MiB 22.44 MiB 20.84 MiB
60 1,635 28.41 MiB 29.20 MiB 27.22 MiB
1200 1,635 138.02 MiB 79.08 MiB 79.30 MiB

The resident-cell count is constant across the 40x workload range, down from #8208's 65,915-cell inter-pump residue. The strict 30/60-batch RSS floor is also below the no-release base.

Validation

  • cargo test -q -p perry-runtime --lib (2,555 passed, 4 ignored)
  • cargo test -q -p perry-runtime --lib release_tests -- --test-threads=1
  • cargo test -q -p perry-codegen --test release_boxes_lowering
  • cargo test -q -p perry-transform box_release
  • python3 scripts/check_thread_locals.py
  • python3 scripts/gc_root_dominance_check.py --audit-immovable-sources
  • python3 scripts/gc_root_dominance_check.py --self-test
  • Node/Perry exit-path fixture comparison (byte-identical stdout)

Fixes #8213

@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 14c19fca-865b-4f03-9cd6-5e880b472ffc

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@proggeramlug

Copy link
Copy Markdown
Contributor Author

Closing as superseded by the current #8208 head (485925b), which landed the same #8213 per-activation publication goal with explicit queued/running activation ownership, pending-thunk generation checks, and longjmp coverage before this branch was pushed. That implementation is the stronger fix and is already mergeable against main. This duplicate intentionally made no version changes.

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.

1 participant