From ac8d101c55d94686bde972923b47c6a91b70831c Mon Sep 17 00:00:00 2001 From: Arshia Ghafoori Date: Mon, 10 Aug 2026 12:09:38 +0000 Subject: [PATCH 1/4] chore: bump napi: size the guest-heap chunk allocator's node budget to the chunk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes the dominant term in the V8+WASIX large-payload leak — each 1 MiB guest chunk was costing ~2 MiB of permanently-retained host allocator metadata. --- napi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/napi b/napi index 5d5cef39c..1998d6643 160000 --- a/napi +++ b/napi @@ -1 +1 @@ -Subproject commit 5d5cef39c13bb93adbcd00d7437ac1e3c5ca7910 +Subproject commit 1998d664341bfc24b6542370ffa4983b65f9e08f From f7f9689733a7a0f6e4a4d0ad28785ceb96cfcde2 Mon Sep 17 00:00:00 2001 From: Arshia Ghafoori Date: Mon, 10 Aug 2026 12:52:56 +0000 Subject: [PATCH 2/4] chore: bump napi: serialize the external-backing-store hint set Picks up the fix for the host-heap corruption that aborted edgejs-v8 with "malloc_consolidate(): unaligned fastbin chunk detected" under sustained load: V8's ArrayBufferSweeper background threads were mutating the env's hint unordered_set concurrently with the main thread. --- napi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/napi b/napi index 1998d6643..7fc43928f 160000 --- a/napi +++ b/napi @@ -1 +1 @@ -Subproject commit 1998d664341bfc24b6542370ffa4983b65f9e08f +Subproject commit 7fc43928f8d1aa9ae0e0f526db9159d8f3d5ef65 From d4c54045345d2c36f71983d112433296cbfeeab2 Mon Sep 17 00:00:00 2001 From: Arshia Ghafoori Date: Mon, 10 Aug 2026 16:21:28 +0000 Subject: [PATCH 3/4] chore: bump napi: reach guest memory through SharedMemory, not the VM handle Picks up wasmerio/napi#54, which replaces the private-VM-type accessor GuestHeap was using with the store-free SharedMemory::grow/data_ptr/style API added in wasmerio/wasmer#6877. Removes an unwrap_sys_ref() that would panic on the v8/js backends, and the last unsafe deref on the grow path. --- napi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/napi b/napi index 7fc43928f..52e9da419 160000 --- a/napi +++ b/napi @@ -1 +1 @@ -Subproject commit 7fc43928f8d1aa9ae0e0f526db9159d8f3d5ef65 +Subproject commit 52e9da41914b20913ea69fa0ac996161eb6c95cb From 46c1614e26e484e24e5f9bdb97faefb890d1c880 Mon Sep 17 00:00:00 2001 From: Arshia Ghafoori Date: Mon, 10 Aug 2026 17:03:53 +0000 Subject: [PATCH 4/4] ci: only init the wasmer lib/wild submodule when the ref has it wasmerio/wasmer#6848 ("port to vanilla Wild and use in-memory FS") removed the lib/wild submodule. provision-wasmer.sh asked for it unconditionally, so checking out any wasmer ref at or after that commit died with error: pathspec 'lib/wild' did not match any file(s) known to git before a single thing was built, taking every lane that provisions wasmer with it. Guard the init on the path actually being in the tree, which keeps older refs (which do need it, since wasmer-compiler path-depends on wasmer-wild at lib/wild/libwild) working unchanged. --- scripts/ci/provision-wasmer.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/ci/provision-wasmer.sh b/scripts/ci/provision-wasmer.sh index bea31407d..9062bb1ba 100755 --- a/scripts/ci/provision-wasmer.sh +++ b/scripts/ci/provision-wasmer.sh @@ -111,7 +111,12 @@ fetch_source() { # wasmer-wild at lib/wild/libwild). --recursive covers lib/wild's nested # submodule. The test-suite submodules are not needed. git -C "$SRC_DIR" -c protocol.version=2 submodule update --init --depth 1 lib/napi - git -C "$SRC_DIR" -c protocol.version=2 submodule update --init --recursive --depth 1 lib/wild + # wasmerio/wasmer#6848 ("port to vanilla Wild") dropped the lib/wild submodule, + # so it only exists on refs from before that. Asking for it unconditionally + # fails the checkout outright on anything newer. + if [ -n "$(git -C "$SRC_DIR" ls-tree HEAD lib/wild 2>/dev/null)" ]; then + git -C "$SRC_DIR" -c protocol.version=2 submodule update --init --recursive --depth 1 lib/wild + fi } # Setup mirrored from wasmer's own Builds workflow (.github/workflows/build.yml