Status: New
Owner: ----
New issue 2345 by
erikco...@google.com: Skip lists for code pages are not
always freed.
http://code.google.com/p/v8/issues/detail?id=2345
Complaint from valgrind
Using local file src/sconsbuild/Debug/content_unittests.
Leak of 1024 bytes in 1 objects allocated from:
@ 27dc5da v8::internal::SkipList::Update
@ 27e7956 v8::internal::PagedSpace::AllocateRaw
@ 27c2123 v8::internal::Heap::ReserveSpace
@ 2a0f795 v8::internal::Deserializer::Deserialize
@ 285b040 v8::internal::Isolate::Init
@ 2a54254 v8::internal::V8::Initialize
@ 2a1863a v8::internal::Snapshot::Initialize
@ 26a714d v8::InitializeHelper
@ 26be0ef v8::V8::Initialize
@ 14d9772 WebKit::initialize
@ e7af70 content::UnitTestTestSuite::UnitTestTestSuite
This may be a 64 bit-only issue. On 32 bit it looks OK. The skip list is
deleted in MemoryAllocator::Free(MemoryChunk*), which is called from
PagedSpace::TearDown when execution ends. If a code page is freed during
execution of the VM it is queued for freeing in PagedSpace::ReleasePage.
It is picked up from the queue in FreeQueuedChunk, which correctly calls
MemoryAllocator::Free(MemoryChunk*). Some aspects of this may be different
on 64 bit with a reserved 2Gbyte code area.