Thanks for the report. This may be a bogus report (in that the memory isn't actually leaked) because we use mmap to allocate our memory for MemoryChunks, which means LeakSanitiser doesn't see that there is a connection to the memory pointed to by the MemoryChunk. Alternatively I've created a real leak and this needs addressing.
I'm actively working on this code right now and will take a look at it. It looks like it's related to read-only space sharing which is disabled by pointer compression (which you in turn have disabled), which is probably why our bots missed it. Thanks, Dan On Wed, 17 Jun 2020 at 13:46, Immanuel Haffner <haffner.imman...@gmail.com> wrote: > I create an instance with > > v8::Isolate::CreateParams create_params; > create_params.array_buffer_allocator = allocator_ = > v8::ArrayBuffer::Allocator::NewDefaultAllocator(); > isolate_ = v8::Isolate::New(create_params); > > and dispose of it with > > isolate_->Dispose(); > delete allocator_; > > > Immanuel Haffner schrieb am Mittwoch, 17. Juni 2020 um 14:44:33 UTC+2: > >> Build args are >> >> is_clang=true is_component_build=false v8_monolithic=true >> v8_enable_pointer_compression=false treat_warnings_as_errors=false >> v8_use_external_startup_data=false use_sysroot=false >> use_custom_libcxx=false clang_use_chrome_plugins=false >> target_cpu="x64" is_debug=true use_debug_fission=true >> >> Immanuel Haffner schrieb am Mittwoch, 17. Juni 2020 um 14:43:51 UTC+2: >> >>> Hi all, >>> >>> after upgrading to v8.5.183 the LeakSanitizer of clang detects a memory >>> leak in embedded V8: >>> >>> ==145652==ERROR: LeakSanitizer: detected memory leaks >>> >>> Direct leak of 12300 byte(s) in 3 object(s) allocated from: >>> #0 0x562b902d2ff1 in calloc >>> (/home/immanuel/Documents/Work/PhD/mutable/mutable/build/debug/bin/shell+0x11b2ff1) >>> #1 0x562b91eb83fe in >>> v8::internal::BasicMemoryChunk::Initialize(v8::internal::Heap*, unsigned >>> long, unsigned long, unsigned long, unsigned long, v8::internal::Space*, >>> v8::internal::VirtualMemory) >>> ../../../../../third-party/v8/v8/src/heap/basic-memory-chunk.cc:31:42 >>> #2 0x562b90fe3740 in >>> v8::internal::MemoryChunk::Initialize(v8::internal::Heap*, unsigned long, >>> unsigned long, unsigned long, unsigned long, v8::internal::Executability, >>> v8::internal::Space*, v8::internal::VirtualMemory) >>> ../../../../../third-party/v8/v8/src/heap/memory-chunk.cc:176:3 >>> #3 0x562b90fddaa6 in >>> v8::internal::MemoryAllocator::AllocateChunk(unsigned long, unsigned long, >>> v8::internal::Executability, v8::internal::Space*) >>> ../../../../../third-party/v8/v8/src/heap/memory-allocator.cc:491:7 >>> #4 0x562b90fdd5a3 in v8::internal::Page* >>> v8::internal::MemoryAllocator::AllocatePage<(v8::internal::MemoryAllocator::AllocationMode)0, >>> v8::internal::PagedSpace>(unsigned long, v8::internal::PagedSpace*, >>> v8::internal::Executability) >>> ../../../../../third-party/v8/v8/src/heap/memory-allocator.cc:617:13 >>> #5 0x562b91002712 in v8::internal::PagedSpace::Expand() >>> ../../../../../third-party/v8/v8/src/heap/paged-spaces.cc:336:38 >>> #6 0x562b91005bcf in >>> v8::internal::PagedSpace::RawSlowRefillLinearAllocationArea(int, >>> v8::internal::AllocationOrigin) >>> ../../../../../third-party/v8/v8/src/heap/paged-spaces.cc:974:18 >>> #7 0x562b910058ba in >>> v8::internal::PagedSpace::SlowRefillLinearAllocationArea(int, >>> v8::internal::AllocationOrigin) >>> ../../../../../third-party/v8/v8/src/heap/paged-spaces.cc:902:10 >>> #8 0x562b90f2ffea in >>> v8::internal::PagedSpace::AllocateRawUnaligned(int, >>> v8::internal::AllocationOrigin) >>> ../../../../../third-party/v8/v8/src/heap/paged-spaces-inl.h:98:10 >>> #9 0x562b90f4e53d in >>> v8::internal::Heap::ReserveSpace(std::vector<v8::internal::Heap::Chunk, >>> std::allocator<v8::internal::Heap::Chunk> >*, std::vector<unsigned long, >>> std::allocator<unsigned long> >*) >>> ../../../../../third-party/v8/v8/src/heap/heap.cc:1982:46 >>> #10 0x562b9204daa6 in >>> v8::internal::DeserializerAllocator::ReserveSpace() >>> ../../../../../third-party/v8/v8/src/snapshot/deserializer-allocator.cc:179:31 >>> #11 0x562b913d5e31 in >>> v8::internal::ReadOnlyDeserializer::DeserializeInto(v8::internal::Isolate*) >>> ../../../../../third-party/v8/v8/src/snapshot/read-only-deserializer.cc:20:21 >>> #12 0x562b91007f9e in >>> v8::internal::ReadOnlyHeap::SetUp(v8::internal::Isolate*, >>> v8::internal::ReadOnlyDeserializer*) >>> ../../../../../third-party/v8/v8/src/heap/read-only-heap.cc:119:8 >>> #13 0x562b90ec89ee in >>> v8::internal::Isolate::Init(v8::internal::ReadOnlyDeserializer*, >>> v8::internal::StartupDeserializer*) >>> ../../../../../third-party/v8/v8/src/execution/isolate.cc:3378:3 >>> #14 0x562b90ec98ca in >>> v8::internal::Isolate::InitWithSnapshot(v8::internal::ReadOnlyDeserializer*, >>> v8::internal::StartupDeserializer*) >>> ../../../../../third-party/v8/v8/src/execution/isolate.cc:3277:10 >>> #15 0x562b913f4765 in >>> v8::internal::Snapshot::Initialize(v8::internal::Isolate*) >>> ../../../../../third-party/v8/v8/src/snapshot/snapshot.cc:163:16 >>> #16 0x562b90d8aaff in v8::Isolate::Initialize(v8::Isolate*, >>> v8::Isolate::CreateParams const&) >>> ../../../../../third-party/v8/v8/src/api/api.cc:8242:8 >>> #17 0x562b90d8b1ae in v8::Isolate::New(v8::Isolate::CreateParams >>> const&) ../../../../../third-party/v8/v8/src/api/api.cc:8276:3 >>> #18 0x562b90513208 in db::V8Platform::V8Platform() >>> /home/immanuel/Documents/Work/PhD/mutable/mutable/build/debug/../../src/backend/V8Platform.cpp:198:16 >>> #19 0x562b9051e429 in >>> std::_MakeUniq<db::V8Platform>::__single_object >>> std::make_unique<db::V8Platform>() >>> /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/10.1.0/../../../../include/c++/10.1.0/bits/unique_ptr.h:961:34 >>> #20 0x562b9051a26b in db::Backend::CreateWasmV8() >>> /home/immanuel/Documents/Work/PhD/mutable/mutable/build/debug/../../src/backend/V8Platform.cpp:384:42 >>> #21 0x562b90436e24 in db::Backend::Create(db::Backend::kind_t) >>> /home/immanuel/Documents/Work/PhD/mutable/mutable/build/debug/../../src/tables/Backend.tbl:10:1 >>> #22 0x562b9032fe6f in db::Backend::Create(char const*) >>> /home/immanuel/Documents/Work/PhD/mutable/mutable/build/debug/../../src/backend/Backend.hpp:27:71 >>> #23 0x562b9030f065 in process_stream(std::istream&, char const*, >>> db::Diagnostic) >>> /home/immanuel/Documents/Work/PhD/mutable/mutable/build/debug/../../src/shell.cpp:148:32 >>> #24 0x562b90322319 in main >>> /home/immanuel/Documents/Work/PhD/mutable/mutable/build/debug/../../src/shell.cpp:668:13 >>> #25 0x7f90097ed001 in __libc_start_main (/usr/lib/libc.so.6+0x27001) >>> >>> SUMMARY: AddressSanitizer: 12300 byte(s) leaked in 3 allocation(s). >>> >>> What can I do to help solve this? >>> >>> Regards, >>> Immanuel >>> >> -- > -- > v8-users mailing list > v8-users@googlegroups.com > http://groups.google.com/group/v8-users > --- > You received this message because you are subscribed to the Google Groups > "v8-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to v8-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/v8-users/cb7db6f0-7aa9-4303-9e6c-82eed0605e4an%40googlegroups.com > <https://groups.google.com/d/msgid/v8-users/cb7db6f0-7aa9-4303-9e6c-82eed0605e4an%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/CALH_77u%3Dvxda4XLBxeDuLDXkjBF%2BLTZ-J-mv8T-zUYLj3nznMg%40mail.gmail.com.