-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
area:runtime-nodeArea: Node runtime bridgeArea: Node runtime bridgebugSomething isn't workingSomething isn't workingpriority:p2Priority P2 (medium)Priority P2 (medium)
Milestone
Description
Summary
OptimizedNodeBridge sets disposed=true but call/instantiate/callMethod do not check it. Calls after dispose() can spawn new workers and continue executing, violating the expected lifecycle.
Failure mode
bridge.dispose()is called.- A subsequent
bridge.call()still executes, spawning new processes.
Evidence
src/runtime/optimized-node.tscall/instantiate/callMethod/executeRequestdo not guard onthis.disposed.
Proposed fix
- Add a guard that throws
BridgeDisposedErrorinexecuteRequest(or in public methods). - Ensure
dispose()prevents any new work from being scheduled.
Acceptance criteria
- Calls after dispose reliably throw
BridgeDisposedErrorand do not spawn processes. - Add a regression test for use-after-dispose.
Metadata
Metadata
Assignees
Labels
area:runtime-nodeArea: Node runtime bridgeArea: Node runtime bridgebugSomething isn't workingSomething isn't workingpriority:p2Priority P2 (medium)Priority P2 (medium)