From 21ca7544abe27bd1347ef304ccc97a95e9f5cdb5 Mon Sep 17 00:00:00 2001 From: ldm0 Date: Wed, 30 Sep 2026 00:48:36 +0800 Subject: [PATCH] fix(runtime): pin owner task futures before executor handoff --- moli-renderer-v8/src/runtime/access.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/moli-renderer-v8/src/runtime/access.rs b/moli-renderer-v8/src/runtime/access.rs index 5648203d38..e9ab78693c 100644 --- a/moli-renderer-v8/src/runtime/access.rs +++ b/moli-renderer-v8/src/runtime/access.rs @@ -14,6 +14,10 @@ where R: 'static, F: std::future::Future> + 'static, { + // Page task futures carry script preparation state. Keep that state on the + // heap before wrapping it in executor/TLS and spawn futures, so nested owner + // turns do not repeatedly reserve large copies on the caller's stack. + let future = Box::pin(future); let (reply_tx, reply_rx) = oneshot::channel(); let timing_enabled = moli_trace::cdp_nav_timing_enabled(); let started = timing_enabled.then(std::time::Instant::now);