Currently we're getting ❯ env G_SLICE=always-malloc valgrind --leak-check=full --suppressions=/usr/share/glib-2.0/valgrind/glib.supp gjs -c "const GLib=imports.gi['GLib'];function leak(){const l=GLib.Variant['new']('i',1)};leak();imports.system.gc();" ==131398== Memcheck, a memory error detector ==131398== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==131398== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info ==131398== Command: gjs -c const\ GLib=imports.gi['GLib'];function\ leak(){const\ l=GLib.Variant['new']('i',1)};leak();imports.system.gc(); ==131398== ==131398== Warning: set address range perms: large range [0x1663bc3af000, 0x16643bfaf000) (noaccess) ==131398== Warning: set address range perms: large range [0x1663bc3af000, 0x16643bfaf000) (noaccess) ==131398== ==131398== HEAP SUMMARY: ==131398== in use at exit: 191,779 bytes in 2,483 blocks ==131398== total heap usage: 18,733 allocs, 16,250 frees, 8,376,620 bytes allocated ==131398== ==131398== 108 (64 direct, 44 indirect) bytes in 1 blocks are definitely lost in loss record 1,885 of 2,041 ==131398== at 0x4844899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==131398== by 0x4A22948: g_malloc (gmem.c:130) ==131398== by 0x4A6598F: UnknownInlinedFun (gvariant-core.c:565) ==131398== by 0x4A6598F: g_variant_new_from_bytes (gvariant-core.c:608) ==131398== by 0x4A65EF3: UnknownInlinedFun (gvariant.c:327) ==131398== by 0x4A65EF3: g_variant_new_int32 (gvariant.c:491) ==131398== by 0x51B8E2D: ??? (in /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0) ==131398== by 0x51B5492: ??? (in /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0) ==131398== by 0x48C8198: ??? (in /usr/lib/x86_64-linux-gnu/libgjs.so.0.0.0) ==131398== by 0x48C8A06: ??? (in /usr/lib/x86_64-linux-gnu/libgjs.so.0.0.0) ==131398== by 0x532FC81: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (Interpreter.cpp:420) ==131398== by 0x533A46B: UnknownInlinedFun (Interpreter.cpp:574) ==131398== by 0x533A46B: UnknownInlinedFun (Interpreter.cpp:578) ==131398== by 0x533A46B: Interpret(JSContext*, js::RunState&) [clone .lto_priv.0] (Interpreter.cpp:3314) ==131398== by 0x532F692: js::RunScript(JSContext*, js::RunState&) (Interpreter.cpp:389) ==131398== by 0x532FA8E: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (Interpreter.cpp:539) ==131398== ==131398== 352 bytes in 1 blocks are possibly lost in loss record 1,999 of 2,041 ==131398== at 0x4849A83: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==131398== by 0x4012949: calloc (rtld-malloc.h:44) ==131398== by 0x4012949: allocate_dtv (dl-tls.c:375) ==131398== by 0x4012949: _dl_allocate_tls (dl-tls.c:634) ==131398== by 0x5019F99: allocate_stack (allocatestack.c:423) ==131398== by 0x5019F99: pthread_create@@GLIBC_2.34 (pthread_create.c:650) ==131398== by 0x5A97B54: mozilla::TimeStamp::ComputeProcessUptime() (TimeStamp_posix.cpp:275) ==131398== by 0x5A97BE7: mozilla::TimeStamp::ProcessCreation() (TimeStamp.cpp:62) ==131398== by 0x53FD5FC: JS::detail::InitWithFailureDiagnostic(bool) (Initialization.cpp:145) ==131398== by 0x48A3E25: ??? (in /usr/lib/x86_64-linux-gnu/libgjs.so.0.0.0) ==131398== by 0x4004FBD: call_init.part.0 (dl-init.c:70) ==131398== by 0x40050A7: call_init (dl-init.c:33) ==131398== by 0x40050A7: _dl_init (dl-init.c:117) ==131398== by 0x401D8AF: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2) ==131398== by 0x2: ??? ==131398== by 0x1FFEFFF606: ??? ==131398== ==131398== LEAK SUMMARY: ==131398== definitely lost: 64 bytes in 1 blocks ==131398== indirectly lost: 44 bytes in 2 blocks ==131398== possibly lost: 352 bytes in 1 blocks ==131398== still reachable: 75,986 bytes in 985 blocks ==131398== suppressed: 97,525 bytes in 1,306 blocks ==131398== Reachable blocks (those to which a pointer was found) are not shown. ==131398== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==131398== ==131398== For lists of detected and suppressed errors, rerun with: -s ==131398== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 2 from 2