Skip to content

Commit 80d6688

Browse files
committed
ci(asan): suppress Node-internal contextify singletons
Node's lazy initialisation of the global fetch() (undici) and the ESM loader compiling web/client.js each allocate a ContextifyContext / ContextifyScript that lives for the lifetime of the process. They are not owned by rclnodejs, are allocated exactly once, and are reported by LeakSanitizer at process exit only because Node does not tear down its own VM bookkeeping. Suppress both signatures in suppr.txt. Verified locally that the ASan run for test-web-http.js + test-web-ws.js now exits cleanly with the suppression counts matching the previously-unsuppressed leaks.
1 parent ee9df15 commit 80d6688

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

suppr.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,10 @@ leak:librcl.so$
22
leak:ref-napi/prebuilds/linux-x64/node.napi.node$
33
leak:^napi_module_register$
44
leak:^napi_create_reference$
5-
leak:^napi_create_external$
5+
leak:^napi_create_external$
6+
# Node-internal one-shot singletons retained for the lifetime of the process.
7+
# Triggered by Node's lazy initialisation of the global `fetch()` (undici) and
8+
# the ESM loader compiling our `web/client.js` module — both allocated once,
9+
# never freed before process exit, and not owned by rclnodejs code.
10+
leak:node::contextify::ContextifyContext
11+
leak:node::contextify::ContextifyScript

0 commit comments

Comments
 (0)