Comment #1 on issue 3197 by [email protected]: Handle to elements backing-store while being left-trimmed
http://code.google.com/p/v8/issues/detail?id=3197

I'm running into a similar issue with debug builds of 3.27.25 (release builds work fine) when calling Array#join() on an array with a handful of long strings. When I randomly remove one or two strings first, Array#join() succeeds.

Each string is 10-100 kB, created with String::NewFromUtf8() and it's not empty (i.e. string.IsEmpty() == false.)

I tried to put together a simple test case but reproducing it standalone has proven elusive so far. I'll be happy to help debug it, though.

The stack trace follows (or rather, *a* stack trace. Tweaking the JS code changes the stack trace but the actual assertion is always the same.)

#
# Fatal error in ../deps/v8/src/heap.cc, line 2034
# CHECK(heap->AllowedToBeMigrated(object, NEW_SPACE)) failed
#

==== C stack trace ===============================

 1: V8_Fatal
2: void v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::LoggingAndProfiling)1>::EvacuateObject<(v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::LoggingAndProfiling)1>::ObjectContents)0, 8>(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*, int) 3: v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::LoggingAndProfiling)1>::ObjectEvacuationStrategy<(v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::LoggingAndProfiling)1>::ObjectContents)0>::Visit(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*) 4: v8::internal::Heap::DoScavengeObject(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*) 5: v8::internal::Heap::ScavengeObjectSlow(v8::internal::HeapObject**, v8::internal::HeapObject*) 6: v8::internal::Heap::ScavengeObject(v8::internal::HeapObject**, v8::internal::HeapObject*)
 7: v8::internal::ScavengeVisitor::ScavengePointer(v8::internal::Object**)
8: v8::internal::ScavengeVisitor::VisitPointers(v8::internal::Object**, v8::internal::Object**) 9: v8::internal::HandleScopeImplementer::IterateThis(v8::internal::ObjectVisitor*) 10: v8::internal::HandleScopeImplementer::Iterate(v8::internal::ObjectVisitor*) 11: v8::internal::Heap::IterateStrongRoots(v8::internal::ObjectVisitor*, v8::internal::VisitMode) 12: v8::internal::Heap::IterateRoots(v8::internal::ObjectVisitor*, v8::internal::VisitMode)
13: v8::internal::Heap::Scavenge()
14: v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GCTracer*, v8::GCCallbackFlags) 15: v8::internal::Heap::CollectGarbage(v8::internal::GarbageCollector, char const*, char const*, v8::GCCallbackFlags) 16: v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, char const*, v8::GCCallbackFlags) 17: v8::internal::Factory::NewRawOneByteString(int, v8::internal::PretenureFlag)
18: ??
19: v8::internal::Runtime_StringBuilderConcat(int, v8::internal::Object**, v8::internal::Isolate*)
20: ??


--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

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

Reply via email to