Skip to content

Key the callback blob test gate by the store's canonical root - #434

Merged
ifdotpy merged 1 commit into
mainfrom
fix/blob-gate-canonical-root
Oct 22, 2026
Merged

ifdotpy merged 1 commit into
mainfrom
fix/blob-gate-canonical-root

Conversation

@ifdotpy

@ifdotpy ifdotpy commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Problem

On macOS, 6 of the 9 callback_blob_* tests in sends_tests.rs fail on every run with Elapsed at the arrival guard (sends_tests.rs:1086). Reproduced alone on origin/main 23fc606: 3 passed, 6 failed, 17.65 s.

callback_blob_case installs its I/O gate under directory.path(), the raw tempdir path (/var/folders/...). RuntimeStore::open canonicalizes the state root (resolve_explicit_state_dir), so the blob code calls test_io_gate with /private/var/folders/.... The keys never match, the gate never fires, and the test waits 10 s for an arrival that cannot come. Linux has no /var symlink, so the tests pass there.

Change

Key the gate by store.state_dir(), the root the blob code receives. Test-only change; no product code changes.

Tests

  • cargo test -p studio-runtime-services --lib callback_blob on macOS: before 3 passed, 6 failed; after 9 passed (7.43 s).
  • just test-fast: result below.

The callback blob race tests installed their I/O gate under the raw
tempdir path. RuntimeStore canonicalizes its state root, so on macOS
the blob code looks up /private/var/... while the gate waits under
/var/.... The gate never fired, and 6 of the 9 tests timed out at the
arrival guard on every macOS run. Use store.state_dir(), the path the
blob code receives.
@ifdotpy

ifdotpy commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

just test-fast on macOS: passed (757 s) on a local tree of origin/main 23fc606 + #434 (3918e2f) + #433 (8192de3). All 18 steps passed, including "provider callback, task submission and monitor projection witnesses" (53 passed). just test-comprehensive is running on the same tree.

@ifdotpy

ifdotpy commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

just test-comprehensive on the same local tree (origin/main 23fc606 + #434 + #433): server 6320 passed, server bridge 103, clippy clean, Rust nextest 3101 passed and 9 failed at load average 200 to 276. The 9 (7 Python-oracle 60 s timeouts in runtime-http, browser_host_flow port race, wave7_p01_registry strict account wake) passed alone: 9 of 9. The steps after nextest, run by hand: web focused type check, API contract types, client helper type check, web unit 1247 passed, tooling 36 passed, browser smoke 9 passed.

@ifdotpy
ifdotpy merged commit b5cb833 into main Oct 22, 2026
9 of 16 checks passed
@ifdotpy
ifdotpy deleted the fix/blob-gate-canonical-root branch October 22, 2026 14:46
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