Skip to content

Keep Component compilation off async workers and limit slot waits - #416

Draft
SashaMIT wants to merge 10 commits into
developfrom
fix/review-component-responsiveness
Draft

SashaMIT wants to merge 10 commits into
developfrom
fix/review-component-responsiveness

Conversation

@SashaMIT

@SashaMIT SashaMIT commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Component file reads and compilation run off asynchronous workers. Each blocking job retains its provider-owned slot after caller cancellation. Waiting for a slot is limited to 30 seconds.

The cancellation regression holds an admitted job in the blocking-worker queue, cancels its caller, and advances virtual time. A later load must return its queue-timeout error before the queued job is released and drained. A fresh load then succeeds.

At prior head 6610d115, all eight Component tests passed. Moving slot ownership into the async waiter compiled and failed the cancellation assertion; the restored target passed. From elastos/:

cargo test --locked -p elastos-compute --lib providers::component::tests -- --nocapture

#440 owns active compilation duration, input-size and resource limits. Its worker-start gate and negative control are recorded follow-ups and remain unimplemented. The 30-second bound covers queue waiting; simultaneous waiter count remains separate. #431 owns compilation of the same immutable bytes accepted at admission.

Candidate: eda253b4353279313ddab9fd28ede979778d22d9; merged develop: 3a043849e2c91af3fd338def86d1e3a76d74e701. Required local checks: manual just ci-local-prepush and the actual unchanged push hook PASS, including all eight Component tests in each gate. A separate exact-head product-data run passed 99/99. Hosted CI: PASS, with 15 successful jobs and one configured skip.

Prior-head Claude review records PASS (B+) at 6610d115. Independent source-continuity review passed: the Component source matches the prior reviewed head. The current-head Claude re-review records PASS at eda253b4; the linked earlier verdict remains historical evidence. Installed Component/Bus acceptance remains pending.

Review order: #420 → #421 → #424 → #416 → #411 → #412 → #428. #417 owns ZIP remediation. Draft; target develop.

Review package extracted from preserved candidate b0fa431d. The original eighteen commits remain on fix/runtime-performance-080. Validation of this recomposed head is recorded separately from historical candidate evidence.
@SashaMIT

Copy link
Copy Markdown
Contributor Author

Independent review (Claude) of 37c4399: PASS after fixes. The compile permit stays with the blocking job; the tamper check fails.
Fix: merge develop so CI reruns with the zip exception. Add a wait limit or size cap for the single slot (or file an issue), and make the heartbeat test assert or remove it.

Copy link
Copy Markdown
Contributor Author

Head 2defb2fb953942a87a94149c663aad91b2f34e93. Ready for Sasha’s Claude review of this head.
Bound compile-slot waiting to 30 seconds and replaced the metric-only test; proof: component_load_times_out_waiting_for_compile_slot with the timeout reverted. Verified-byte compilation is tracked in #431.
CI started: https://github.com/Elacity/elastos-runtime/actions/runs/39050466614. Code checks are queued.

@SashaMIT

Copy link
Copy Markdown
Contributor Author

Review at 2defb2f: PASS (A-). 30 s wait limit proven; #431 accurate.
Follow-up issue: compilation itself has no time or size limit. Red CI jobs are unrelated (#433, People smoke).

Preserve the existing review history and include current develop 8ea4aac. Refresh through the reviewed parent branch where that dependency applies.

Co-authored-by: Codex
Apply the test-only System fixture from 619c096 to the refreshed develop base. Preserve the existing authority assertions and production behavior.

Co-authored-by: Codex
Preserve the reviewed task changes and integrate the current development base through a normal merge.

Co-authored-by: Codex
Use the upstream Library fixture and preserve the branch feature changes.

Co-authored-by: Codex
@SashaMIT SashaMIT changed the title Keep bounded Component compilation off async workers Keep Component compilation off async workers and limit slot waits Oct 18, 2026

Copy link
Copy Markdown
Contributor Author

Ready for Claude review at 9ee1cad4f2fc766ae08ede96a4b7de7db8dd48b4.
Merged current develop; component_load_times_out_waiting_for_compile_slot and component_load_retains_compile_slot_after_cancellation passed in both required local checks.
CI has started: https://github.com/Elacity/elastos-runtime/actions/runs/39102682843

@SashaMIT

Copy link
Copy Markdown
Contributor Author

Round 6 at 9ee1cad: PASS (A-). #440 opened; one fail-closed compile slot, no new authority.
Optional: the cancellation test should fail if the slot is released before compilation ends.

Control admission and the blocked worker, then require a subsequent load to reach its queue timeout while the original compile retains the slot.

Co-authored-by: Codex

Copy link
Copy Markdown
Contributor Author

Updated head: 6610d115329e3df08d5ab2a511e1b018c465f018.
Unchanged manual and push-hook gates passed; the stronger cancellation test passed and caught the intended regression.
CI has started: https://github.com/Elacity/elastos-runtime/actions/runs/39138758317

@SashaMIT

Copy link
Copy Markdown
Contributor Author

Independent review (Claude) at 6610d11: PASS (B+). Test-only; 8 Component tests pass; keeping the slot in the cancelled caller fails the cancellation test. CI green.
Remaining test gap: a slot released when compilation starts is not detected. Track in #440; does not block merge.

Preserve the reviewed behavior and integrate the verified base through the named parent.

Co-authored-by: Codex

Copy link
Copy Markdown
Contributor Author

Updated head: eda253b4353279313ddab9fd28ede979778d22d9.
Manual just ci-local-prepush and the actual unchanged push hook: PASS; separate product-data run: 99/99.
CI has started: https://github.com/Elacity/elastos-runtime/actions/runs/39246470878. Current-head source-continuity review: PASS; Claude PASS (B+) remains at prior 6610d115, with new-head review pending.

@SashaMIT

Copy link
Copy Markdown
Contributor Author

Re-review (Claude) at eda253b: PASS (B+ carried). One clean develop merge (3a04384); own patch unchanged; all CI jobs pass. Cancellation-test gap stays with #440.

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.

2 participants