Issue 11909 in v8: Isolate memory leak

82 views
Skip to first unread message

riedl… via monorail

unread,
Jun 20, 2021, 10:20:41 PM6/20/21
to v8-re...@googlegroups.com
Status: Untriaged
Owner: ----
Type: Bug

New issue 11909 by riedl...@gmail.com: Isolate memory leak
https://bugs.chromium.org/p/v8/issues/detail?id=11909

Version: 9.3.188
OS: Linux (WSL 1, Debian 10 Buster)
Architecture: x64

What steps will reproduce the problem?

// Create allocator.
v8::ArrayBuffer::Allocator *allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator();

// Create params.
v8::Isolate::CreateParams create_params;
create_params.array_buffer_allocator = allocator;
create_params.only_terminate_in_safe_scope = true;

// Create isolate and enter.
v8::Isolate *isolate = v8::Isolate::New(create_params);

// Capture uncaught exceptions.
isolate->SetCaptureStackTraceForUncaughtExceptions(true);

// Create a sub stack to enter isolate.
{
// Create a stack-allocated isolate scope.
v8::Isolate::Scope isolate_scope(isolate);

// Create a stack-allocated handle scope.
v8::HandleScope handle_scope(isolate);

// Create a new context.
v8::Local<v8::Context> context = v8::Context::New(isolate);

// Enter the context for compiling and running the hello world script.
v8::Context::Scope context_scope(context);

// Call init callback.
// start_cb(data);
}

// Dispose isolate and delete allocator.
isolate->Dispose();
delete allocator;


What is the expected output?

==26056== LEAK SUMMARY:
==26056== definitely lost: 0 bytes in 0 blocks
==26056== indirectly lost: 0 bytes in 0 blocks
==26056== possibly lost: 0 bytes in 0 blocks
==26056== still reachable: 0 bytes in 0 blocks
==26056== suppressed: 0 bytes in 0 blocks

What do you see instead?


==26056== Memcheck, a memory error detector
==26056== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==26056== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
==26056== Command: ./a.out
==26056==
==26056== Warning: set address range perms: large range [0x35c600000000, 0x35c800000000) (noaccess)
==26056== Warning: set address range perms: large range [0x35c600000000, 0x35c800000000) (noaccess)
==26056== Warning: set address range perms: large range [0x35c600000000, 0x35c700000000) (noaccess)
==26056==
==26056== HEAP SUMMARY:
==26056== in use at exit: 928 bytes in 12 blocks
==26056== total heap usage: 1,193 allocs, 1,181 frees, 1,065,342 bytes allocated
==26056==
==26056== 24 bytes in 1 blocks are still reachable in loss record 1 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x4DF392C: v8::base::RegionAllocator::RegionAllocator(unsigned long, unsigned long, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DE80AB: v8::base::BoundedPageAllocator::BoundedPageAllocator(v8::PageAllocator*, unsigned long, unsigned long, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x5367145: v8::internal::VirtualMemoryCage::InitReservation(v8::internal::VirtualMemoryCage::ReservationParams const&) (in /v8-test/libv8c.so)
==26056== by 0x50745A7: v8::internal::IsolateAllocator::InitializeOncePerProcess() (in /v8-test/libv8c.so)
==26056== by 0x5074A0F: v8::internal::V8::InitializeOncePerProcessImpl() (in /v8-test/libv8c.so)
==26056== by 0x4DF1E4C: v8::base::CallOnceImpl(std::atomic<unsigned char>*, std::function<void ()>) (in /v8-test/libv8c.so)
==26056== by 0x50751A9: v8::internal::V8::InitializeOncePerProcess() (in /v8-test/libv8c.so)
==26056== by 0x50751D8: v8::internal::V8::Initialize() (in /v8-test/libv8c.so)
==26056== by 0x4E18F49: v8::V8::Initialize(int) (in /v8-test/libv8c.so)
==26056== by 0x4DE638D: Initialize (v8.h:9817)
==26056== by 0x4DE638D: v8_initialize (v8.cc:57)
==26056== by 0x109158: main (main.c:110)
==26056==
==26056== 24 bytes in 1 blocks are still reachable in loss record 2 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x4DF3A3B: v8::base::RegionAllocator::Split(v8::base::RegionAllocator::Region*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DF3B1D: v8::base::RegionAllocator::AllocateRegion(unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DE7CEF: v8::base::BoundedPageAllocator::AllocatePages(void*, unsigned long, unsigned long, v8::PageAllocator::Permission) (in /v8-test/libv8c.so)
==26056== by 0x5366B1C: v8::internal::AllocatePages(v8::PageAllocator*, void*, unsigned long, unsigned long, v8::PageAllocator::Permission) (in /v8-test/libv8c.so)
==26056== by 0x5366BE2: v8::internal::VirtualMemory::VirtualMemory(v8::PageAllocator*, unsigned long, void*, unsigned long, v8::internal::VirtualMemory::JitPermission) (in /v8-test/libv8c.so)
==26056== by 0x53671E6: v8::internal::VirtualMemoryCage::InitReservation(v8::internal::VirtualMemoryCage::ReservationParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4F74E91: v8::internal::CodeRange::InitReservation(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4F75267: v8::internal::CodeRange::InitializeProcessWideCodeRangeOnce(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DF1E4C: v8::base::CallOnceImpl(std::atomic<unsigned char>*, std::function<void ()>) (in /v8-test/libv8c.so)
==26056== by 0x4FC821D: v8::internal::Heap::SetUp() (in /v8-test/libv8c.so)
==26056== by 0x4F54871: v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) (in /v8-test/libv8c.so)
==26056==
==26056== 24 bytes in 1 blocks are still reachable in loss record 3 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x4DF392C: v8::base::RegionAllocator::RegionAllocator(unsigned long, unsigned long, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DE80AB: v8::base::BoundedPageAllocator::BoundedPageAllocator(v8::PageAllocator*, unsigned long, unsigned long, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x5367145: v8::internal::VirtualMemoryCage::InitReservation(v8::internal::VirtualMemoryCage::ReservationParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4F74E91: v8::internal::CodeRange::InitReservation(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4F75267: v8::internal::CodeRange::InitializeProcessWideCodeRangeOnce(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DF1E4C: v8::base::CallOnceImpl(std::atomic<unsigned char>*, std::function<void ()>) (in /v8-test/libv8c.so)
==26056== by 0x4FC821D: v8::internal::Heap::SetUp() (in /v8-test/libv8c.so)
==26056== by 0x4F54871: v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) (in /v8-test/libv8c.so)
==26056== by 0x5357711: v8::internal::Snapshot::Initialize(v8::internal::Isolate*) (in /v8-test/libv8c.so)
==26056== by 0x4E36BED: v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4E36D3C: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /v8-test/libv8c.so)
==26056==
==26056== 40 bytes in 1 blocks are still reachable in loss record 4 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x4DF373D: std::pair<std::_Rb_tree_iterator<v8::base::RegionAllocator::Region*>, bool> std::_Rb_tree<v8::base::RegionAllocator::Region*, v8::base::RegionAllocator::Region*, std::_Identity<v8::base::RegionAllocator::Region*>, v8::base::RegionAllocator::AddressEndOrder, std::allocator<v8::base::RegionAllocator::Region*> >::_M_insert_unique<v8::base::RegionAllocator::Region* const&>(v8::base::RegionAllocator::Region* const&) (in /v8-test/libv8c.so)
==26056== by 0x4DF394C: v8::base::RegionAllocator::RegionAllocator(unsigned long, unsigned long, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DE80AB: v8::base::BoundedPageAllocator::BoundedPageAllocator(v8::PageAllocator*, unsigned long, unsigned long, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x5367145: v8::internal::VirtualMemoryCage::InitReservation(v8::internal::VirtualMemoryCage::ReservationParams const&) (in /v8-test/libv8c.so)
==26056== by 0x50745A7: v8::internal::IsolateAllocator::InitializeOncePerProcess() (in /v8-test/libv8c.so)
==26056== by 0x5074A0F: v8::internal::V8::InitializeOncePerProcessImpl() (in /v8-test/libv8c.so)
==26056== by 0x4DF1E4C: v8::base::CallOnceImpl(std::atomic<unsigned char>*, std::function<void ()>) (in /v8-test/libv8c.so)
==26056== by 0x50751A9: v8::internal::V8::InitializeOncePerProcess() (in /v8-test/libv8c.so)
==26056== by 0x50751D8: v8::internal::V8::Initialize() (in /v8-test/libv8c.so)
==26056== by 0x4E18F49: v8::V8::Initialize(int) (in /v8-test/libv8c.so)
==26056== by 0x4DE638D: Initialize (v8.h:9817)
==26056== by 0x4DE638D: v8_initialize (v8.cc:57)
==26056==
==26056== 40 bytes in 1 blocks are still reachable in loss record 5 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x4DF373D: std::pair<std::_Rb_tree_iterator<v8::base::RegionAllocator::Region*>, bool> std::_Rb_tree<v8::base::RegionAllocator::Region*, v8::base::RegionAllocator::Region*, std::_Identity<v8::base::RegionAllocator::Region*>, v8::base::RegionAllocator::AddressEndOrder, std::allocator<v8::base::RegionAllocator::Region*> >::_M_insert_unique<v8::base::RegionAllocator::Region* const&>(v8::base::RegionAllocator::Region* const&) (in /v8-test/libv8c.so)
==26056== by 0x4DF3A9A: v8::base::RegionAllocator::Split(v8::base::RegionAllocator::Region*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DF3B1D: v8::base::RegionAllocator::AllocateRegion(unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DE7CEF: v8::base::BoundedPageAllocator::AllocatePages(void*, unsigned long, unsigned long, v8::PageAllocator::Permission) (in /v8-test/libv8c.so)
==26056== by 0x5366B1C: v8::internal::AllocatePages(v8::PageAllocator*, void*, unsigned long, unsigned long, v8::PageAllocator::Permission) (in /v8-test/libv8c.so)
==26056== by 0x5366BE2: v8::internal::VirtualMemory::VirtualMemory(v8::PageAllocator*, unsigned long, void*, unsigned long, v8::internal::VirtualMemory::JitPermission) (in /v8-test/libv8c.so)
==26056== by 0x53671E6: v8::internal::VirtualMemoryCage::InitReservation(v8::internal::VirtualMemoryCage::ReservationParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4F74E91: v8::internal::CodeRange::InitReservation(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4F75267: v8::internal::CodeRange::InitializeProcessWideCodeRangeOnce(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DF1E4C: v8::base::CallOnceImpl(std::atomic<unsigned char>*, std::function<void ()>) (in /v8-test/libv8c.so)
==26056== by 0x4FC821D: v8::internal::Heap::SetUp() (in /v8-test/libv8c.so)
==26056==
==26056== 40 bytes in 1 blocks are still reachable in loss record 6 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x4DF373D: std::pair<std::_Rb_tree_iterator<v8::base::RegionAllocator::Region*>, bool> std::_Rb_tree<v8::base::RegionAllocator::Region*, v8::base::RegionAllocator::Region*, std::_Identity<v8::base::RegionAllocator::Region*>, v8::base::RegionAllocator::AddressEndOrder, std::allocator<v8::base::RegionAllocator::Region*> >::_M_insert_unique<v8::base::RegionAllocator::Region* const&>(v8::base::RegionAllocator::Region* const&) (in /v8-test/libv8c.so)
==26056== by 0x4DF394C: v8::base::RegionAllocator::RegionAllocator(unsigned long, unsigned long, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DE80AB: v8::base::BoundedPageAllocator::BoundedPageAllocator(v8::PageAllocator*, unsigned long, unsigned long, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x5367145: v8::internal::VirtualMemoryCage::InitReservation(v8::internal::VirtualMemoryCage::ReservationParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4F74E91: v8::internal::CodeRange::InitReservation(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4F75267: v8::internal::CodeRange::InitializeProcessWideCodeRangeOnce(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DF1E4C: v8::base::CallOnceImpl(std::atomic<unsigned char>*, std::function<void ()>) (in /v8-test/libv8c.so)
==26056== by 0x4FC821D: v8::internal::Heap::SetUp() (in /v8-test/libv8c.so)
==26056== by 0x4F54871: v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) (in /v8-test/libv8c.so)
==26056== by 0x5357711: v8::internal::Snapshot::Initialize(v8::internal::Isolate*) (in /v8-test/libv8c.so)
==26056== by 0x4E36BED: v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) (in /v8-test/libv8c.so)
==26056==
==26056== 40 bytes in 1 blocks are still reachable in loss record 7 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x4DF2F50: v8::base::RegionAllocator::FreeListAddRegion(v8::base::RegionAllocator::Region*) (in /v8-test/libv8c.so)
==26056== by 0x4DF3D9E: v8::base::RegionAllocator::TrimRegion(unsigned long, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DE7E1D: v8::base::BoundedPageAllocator::FreePages(void*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x5366D0B: v8::internal::VirtualMemory::Free() (in /v8-test/libv8c.so)
==26056== by 0x5024E1A: v8::internal::PagedSpace::TearDown() (in /v8-test/libv8c.so)
==26056== by 0x4FAAA9C: v8::internal::CodeSpace::~CodeSpace() (in /v8-test/libv8c.so)
==26056== by 0x4FCD0C5: v8::internal::Heap::TearDown() (in /v8-test/libv8c.so)
==26056== by 0x4F53DA9: v8::internal::Isolate::Deinit() (in /v8-test/libv8c.so)
==26056== by 0x4F55D6C: v8::internal::Isolate::Delete(v8::internal::Isolate*) (in /v8-test/libv8c.so)
==26056== by 0x4DE6D96: v8_isolate_start (v8.cc:268)
==26056== by 0x109169: main (main.c:113)
==26056==
==26056== 40 bytes in 1 blocks are still reachable in loss record 8 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x4DF2F50: v8::base::RegionAllocator::FreeListAddRegion(v8::base::RegionAllocator::Region*) (in /v8-test/libv8c.so)
==26056== by 0x4DF3D9E: v8::base::RegionAllocator::TrimRegion(unsigned long, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DE7E1D: v8::base::BoundedPageAllocator::FreePages(void*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x502A420: v8::internal::SingleCopyReadOnlyArtifacts::~SingleCopyReadOnlyArtifacts() (in /v8-test/libv8c.so)
==26056== by 0x4E366E6: std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (in /v8-test/libv8c.so)
==26056== by 0x4F55BEC: v8::internal::Isolate::~Isolate() (in /v8-test/libv8c.so)
==26056== by 0x4F55D86: v8::internal::Isolate::Delete(v8::internal::Isolate*) (in /v8-test/libv8c.so)
==26056== by 0x4DE6D96: v8_isolate_start (v8.cc:268)
==26056== by 0x109169: main (main.c:113)
==26056==
==26056== 96 bytes in 1 blocks are still reachable in loss record 9 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x50276BF: v8::internal::(anonymous namespace)::InitializeSharedReadOnlyArtifacts() (in /v8-test/libv8c.so)
==26056== by 0x50280FB: v8::internal::ReadOnlyHeap::SetUp(v8::internal::Isolate*, v8::internal::SnapshotData*, bool) (in /v8-test/libv8c.so)
==26056== by 0x4F54887: v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) (in /v8-test/libv8c.so)
==26056== by 0x5357711: v8::internal::Snapshot::Initialize(v8::internal::Isolate*) (in /v8-test/libv8c.so)
==26056== by 0x4E36BED: v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4E36D3C: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4DE6C73: v8_isolate_start (v8.cc:244)
==26056== by 0x109169: main (main.c:113)
==26056==
==26056== 112 bytes in 1 blocks are still reachable in loss record 10 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x4F751A0: v8::internal::CodeRange::InitializeProcessWideCodeRangeOnce(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DF1E4C: v8::base::CallOnceImpl(std::atomic<unsigned char>*, std::function<void ()>) (in /v8-test/libv8c.so)
==26056== by 0x4FC821D: v8::internal::Heap::SetUp() (in /v8-test/libv8c.so)
==26056== by 0x4F54871: v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) (in /v8-test/libv8c.so)
==26056== by 0x5357711: v8::internal::Snapshot::Initialize(v8::internal::Isolate*) (in /v8-test/libv8c.so)
==26056== by 0x4E36BED: v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4E36D3C: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4DE6C73: v8_isolate_start (v8.cc:244)
==26056== by 0x109169: main (main.c:113)
==26056==
==26056== 224 bytes in 1 blocks are still reachable in loss record 11 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x5367124: v8::internal::VirtualMemoryCage::InitReservation(v8::internal::VirtualMemoryCage::ReservationParams const&) (in /v8-test/libv8c.so)
==26056== by 0x50745A7: v8::internal::IsolateAllocator::InitializeOncePerProcess() (in /v8-test/libv8c.so)
==26056== by 0x5074A0F: v8::internal::V8::InitializeOncePerProcessImpl() (in /v8-test/libv8c.so)
==26056== by 0x4DF1E4C: v8::base::CallOnceImpl(std::atomic<unsigned char>*, std::function<void ()>) (in /v8-test/libv8c.so)
==26056== by 0x50751A9: v8::internal::V8::InitializeOncePerProcess() (in /v8-test/libv8c.so)
==26056== by 0x50751D8: v8::internal::V8::Initialize() (in /v8-test/libv8c.so)
==26056== by 0x4E18F49: v8::V8::Initialize(int) (in /v8-test/libv8c.so)
==26056== by 0x4DE638D: Initialize (v8.h:9817)
==26056== by 0x4DE638D: v8_initialize (v8.cc:57)
==26056== by 0x109158: main (main.c:110)
==26056==
==26056== 224 bytes in 1 blocks are still reachable in loss record 12 of 12
==26056== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==26056== by 0x5367124: v8::internal::VirtualMemoryCage::InitReservation(v8::internal::VirtualMemoryCage::ReservationParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4F74E91: v8::internal::CodeRange::InitReservation(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4F75267: v8::internal::CodeRange::InitializeProcessWideCodeRangeOnce(v8::PageAllocator*, unsigned long) (in /v8-test/libv8c.so)
==26056== by 0x4DF1E4C: v8::base::CallOnceImpl(std::atomic<unsigned char>*, std::function<void ()>) (in /v8-test/libv8c.so)
==26056== by 0x4FC821D: v8::internal::Heap::SetUp() (in /v8-test/libv8c.so)
==26056== by 0x4F54871: v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) (in /v8-test/libv8c.so)
==26056== by 0x5357711: v8::internal::Snapshot::Initialize(v8::internal::Isolate*) (in /v8-test/libv8c.so)
==26056== by 0x4E36BED: v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4E36D3C: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /v8-test/libv8c.so)
==26056== by 0x4DE6C73: v8_isolate_start (v8.cc:244)
==26056== by 0x109169: main (main.c:113)
==26056==
==26056== LEAK SUMMARY:
==26056== definitely lost: 0 bytes in 0 blocks
==26056== indirectly lost: 0 bytes in 0 blocks
==26056== possibly lost: 0 bytes in 0 blocks
==26056== still reachable: 928 bytes in 12 blocks
==26056== suppressed: 0 bytes in 0 blocks
==26056==
==26056== For counts of detected and suppressed errors, rerun with: -v
==26056== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

--
You received this message because:
1. The project was configured to send all issue notifications to this address

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

osval… via monorail

unread,
Jun 22, 2021, 8:51:50 AM6/22/21
to v8-re...@googlegroups.com

Comment #1 on issue 11909 by osval...@gmail.com: Isolate memory leak
https://bugs.chromium.org/p/v8/issues/detail?id=11909#c1

aceptar

ecmzi… via monorail

unread,
Jun 25, 2021, 4:46:25 AM6/25/21
to v8-re...@googlegroups.com
Updates:
Components: API Runtime
Labels: Priority-2
Owner: s...@chromium.org
Status: Assigned

Comment #2 on issue 11909 by ecmzi...@google.com: Isolate memory leak
https://bugs.chromium.org/p/v8/issues/detail?id=11909#c2

@syg: This seems to be related to recent additions you made. Please unassign yourself if you think that's not the case.

s… via monorail

unread,
Jun 25, 2021, 3:01:23 PM6/25/21
to v8-re...@googlegroups.com

Comment #3 on issue 11909 by s...@chromium.org: Isolate memory leak
https://bugs.chromium.org/p/v8/issues/detail?id=11909#c3

These leaks are expected. When there is a shared, process-wide pointer cage, that pointer cage's virtual memory reservation is initialized once at process start and leaks until process shutdown.

Is it possible to add suppressions to Valgrind? The process-wide pointer cage, CodeRange, as well as the SingleCopyReadOnlyArtifacts all live as long as the process.

s… via monorail

unread,
Jun 25, 2021, 3:05:45 PM6/25/21
to v8-re...@googlegroups.com

Comment #4 on issue 11909 by s...@chromium.org: Isolate memory leak
https://bugs.chromium.org/p/v8/issues/detail?id=11909#c4

Small correction: SingleCopyReadOnlyArtifacts itself lives as long as there is an Isolate remaining, but the weak_ptr that holds it lives as long as the process.
Reply all
Reply to author
Forward
0 new messages