Repository navigation
Conversation
| let mut javascript = JavascriptExecutionEngine::new(process_runtime); | ||
| javascript.set_event_notify(Some(Arc::clone(&event_notify))); | ||
| let mut python = PythonExecutionEngine::new(runtime.clone()); | ||
| let mut python = PythonExecutionEngine::new(vm_runtime.clone()); |
There was a problem hiding this comment.
🔴 High · Python can still bind the global timer wheel to one VM
PythonExecutionEngine::new(vm_runtime.clone()) constructs its embedded JavascriptExecutionEngine with this VM-scoped context. Python executions are ultimately started through that engine, whose LocalBridgeState passes the engine context to TimerWheel::get; if Python is the first runtime to schedule a JS/bridge timer, the process-global wheel is therefore still spawned under this VM's admission scope and dies when the VM is disposed, leaving later VMs with the same dead singleton. WasmExecutionEngine::new(vm_runtime) on the next line has the same path. Give both wrapper engines the process runtime for their embedded JavaScript host while retaining the VM runtime for guest execution, and cover first-use through Python/Wasm before disposing the VM.
f26c94d to
e5aa7f3
Compare
|
Follow-up from a credential-free comparison using the official v0.2.22 Linux x86_64 native sidecar and matching The release binary checksum matched
As of October 8, npm latest and the latest GitHub native release still identify 0.2.22. We understand this PR reports the consumed-response regression passing on main after Is there a compatible published native build containing the timer ownership fix for the 0.2.22 interface, or is migration to the newer process runtime API required? What supported path should a Rivet actor integration use to verify both cleanup cases without carrying another custom upstream patch? No credentials, actor identifiers, transcripts or user data are included here. Hosted inference was not used for this comparison. |
fetch()whose response body is fully consumed, then require VM disposal before the 5-second shutdown deadline.mainafter upstream commita6c668cmade timer-wheel initialization process-owned.Related: #1989
This covers the completed-response disposal path. The unread-response evaluation delay needs separate investigation.