Whoops, correction: It's actually copied_list that has work left, not 
promotion_list.

On Wednesday, December 5, 2018 at 3:37:20 PM UTC-8, Kenton Varda wrote:
>
> 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