Skip to content

chore: port pending executor and release hardening - #38

Merged
kp2pml30 merged 5 commits into
v0.3-devfrom
pr/v0.3/chore/port-pending-fixes
Sep 14, 2026
Merged

kp2pml30 merged 5 commits into
v0.3-devfrom
pr/v0.3/chore/port-pending-fixes

Conversation

@kp2pml30

Copy link
Copy Markdown
Member

Auto-opened executor mirror of genlayerlabs/genvm-manager#36.

Carries the executor-side work for that manager PR. The manager branch update fast-forwards v0.3-dev to its pinned commit after landing.

A directory descriptor kept an owned string per path component while its RAM
charge is the flat per-descriptor one, so the resident cost ran well ahead of
what was metered. The table is per-VFS and interning deduplicates, so reopening
the same path cannot grow it, and every component it can hold names a trie node
whose name `MapFile` already charged.
Every distinct address a contract asked about was kept for the whole run, off
any limiter: measured 141 octets per entry at 28k inserts per second, so a plain
loop turned wall-clock into unmetered RSS. Bounding beats charging here because
the entry outlives the sub-VM that inserted it, so a per-VM charge would be
released while the entry stayed resident, and routing it to a shared limiter
would breach the separate deterministic and non-deterministic budgets. Evicting
is free of consequence: the host answers from a fixed pre-state and in-run
changes are applied on top, so a miss costs a round trip, never a different
answer.
gl_call and the named-struct Decode derive both materialized `Maybe` fields
through an intermediate `Value`, so emissions were charged for their encoded
length but retained a ~39x larger tree for the whole run.
Per-argument wrappers and allocations let flat calldata outgrow its wire-based RAM charge. Retain each validated argument collection as one buffer while preserving its encoding and enclosing depth budget.
@coderabbitai

coderabbitai Bot commented Sep 13, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 9721a1d1-ae6b-416a-a994-be7739da86b4

📥 Commits

Reviewing files that changed from the base of the PR and between a004192 and 977f945.

⛔ Files ignored due to path filters (4)
  • executor/crates/calldata/tests/derive_decode_binary.rs is excluded by !**/tests/**
  • executor/crates/calldata/tests/unparsed.rs is excluded by !**/tests/**
  • executor/crates/sdk-rs/tests/entry_deferred.rs is excluded by !**/tests/**
  • executor/tests/wasi_join_dir_and_path.rs is excluded by !**/tests/**
📒 Files selected for processing (8)
  • executor/crates/calldata-derive/src/decode.rs
  • executor/crates/calldata/src/types.rs
  • executor/crates/sdk-rs/src/abi/entry.rs
  • executor/src/rt/supervisor/mod.rs
  • executor/src/wasi/genlayer_sdk/mod.rs
  • executor/src/wasi/genlayer_sdk/tests.rs
  • executor/src/wasi/preview1.rs
  • executor/src/wasi/vfs.rs

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.

@kp2pml30 kp2pml30 self-assigned this Sep 13, 2026
@kp2pml30
kp2pml30 merged commit 977f945 into v0.3-dev Sep 14, 2026
1 check passed
@kp2pml30
kp2pml30 deleted the pr/v0.3/chore/port-pending-fixes branch September 14, 2026 07:18
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