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.