Hi v8-users,

I recently refactored the way that I integrate with V8's garbage collection
in my application, and after the refactor I am (very rarely) hitting a
fatal error that I don't understand:

#
# Fatal error in , line 0
# Check failed: IsEmpty().
#

stack:
____ base/platform/platform-posix.cc:402 v8::base::OS::Abort()
____ base/logging.cc:171 V8_Fatal(char const*, int, char const*, ...)
____ heap/worklist.h:72
v8::internal::Worklist<std::__1::pair<v8::internal::HeapObject*, int>,
256>::~Worklist()
____ heap/scavenger.cc:288
v8::internal::ScavengerCollector::CollectGarbage()
____ heap/heap.cc:1931 v8::internal::Heap::Scavenge()
____ heap/heap.cc:1649
v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector,
v8::GCCallbackFlags)
____ heap/heap.cc:1292
v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace,
v8::internal::GarbageCollectionReason, v8::GCCallbackFlags)
____ heap/heap.cc:4264 v8::internal::Heap::AllocateRawWithLightRetry(int,
v8::internal::AllocationSpace, v8::internal::AllocationAlignment)
____ heap/heap.cc:4278 v8::internal::Heap::AllocateRawWithRetryOrFail(int,
v8::internal::AllocationSpace, v8::internal::AllocationAlignment)
____ heap/factory.cc:120 AllocateRawWithImmortalMap
____ heap/factory.cc:972  (inlined by) NewRawTwoByteString
____ heap/factory.cc:636
v8::internal::Factory::NewStringFromUtf8(v8::internal::Vector<char const>,
v8::internal::PretenureFlag)
____ api.cc:6459 NewString
____ api.cc:6519  (inlined by) NewFromUtf8
(... application code ...)

It looks like the Worklist being destroyed here is
Scavenger::PromotionList::regular_object_promotion_list_. This Worklist is
being destroyed at the end of ScavengerCollector::CollectGarbage(), but is
non-empty when destroyed.

I don't understand how this code works, so I don't really have any idea
what might lead to that. Any hints on what I should be looking for in my
code that might be causing this?

-Kenton

-- 
-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to