The header comment for v8::internal::*SlotSet::Iterate* says:
  // Iterate over all slots in the set and for each slot invoke the 
callback.
  // If the callback returns REMOVE_SLOT then the slot is removed from the 
set.
  // Returns the new number of slots.
  // This method should only be called on the main thread.

However, we are seeing dumps from crashes in GC with the following 
callstacks on background threads:

0:*013*> kc00 v8::internal::MemoryChunk::InYoungGeneration01 
v8::internal::Heap::InYoungGeneration02 
v8::internal::Scavenger::ScavengeObject<v8::internal::FullHeapObjectSlot>03 
v8::internal::Scavenger::CheckAndScavengeObject04 
v8::internal::Scavenger::ScavengePage::<unnamed-tag>::operator()05 
v8::internal::*SlotSet::Iterate*06 
v8::internal::RememberedSet<v8::internal::OLD_TO_NEW>::Iterate07 
v8::internal::Scavenger::ScavengePage08 
v8::internal::PageScavengingItem::Process09 
v8::internal::ScavengingTask::RunInParallel

V8 crashes because the slots, retrieved by SlotSet::Iterate, point into ranges 
that have been already marked as FREE_SPACE_TYPE.

Could someone please confirm whether the comment is accurate and could explain 
the crashes?


Thanks!

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/22d08655-e425-448d-967f-de20762ad713%40googlegroups.com.

Reply via email to