Hi guys,

I'm experiencing severe GC crashes on some rare MIPS devices. The V8 code 
is taken from https://github.com/paul99/v8m-rb, 
commit c2e35dc507b4562ce666a48cb7a26633f9d7fdaf (plus some modifications 
for the specific device).

The crashing command line is 

# /bin/d8 --nocrankshaft --expose-gc --noopt /bin/mjsunit/mjsunit.js 
/bin/mjsunit/regress/regress-84234.js --test

Can someone give some hints to what to look at first?

Here are the gdb callstacks:

Program received signal SIGSEGV, Segmentation fault.
0x2ab4fd5c in v8::internal::Map::instance_size (this=0x166) at 
../src/objects-inl.h:2833
2833      return READ_BYTE_FIELD(this, kInstanceSizeOffset) << 
kPointerSizeLog2;
(gdb) bt
#0  0x2ab4fd5c in v8::internal::Map::instance_size (this=0x166) at 
../src/objects-inl.h:2833
#1  0x2ab5952c in v8::internal::HeapObject::SizeFromMap (this=0x40728b3d, 
map=0x166) at ../src/objects-inl.h:2848
#2  0x2ab597a4 in v8::internal::HeapObject::Size (this=0x40728b3d) at 
../src/objects-inl.h:1181
#3  0x2aeda718 in v8::internal::SemiSpaceIterator::Next (this=0x7fe1bfec) 
at ../src/spaces.h:2006
#4  0x2aecd4e4 in v8::internal::MarkCompactCollector::EvacuateNewSpace 
(this=0x44b470) at ../src/mark-compact.cc:3004
#5  0x2aecd63c in 
v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates 
(this=0x44b470) at ../src/mark-compact.cc:3411
#6  0x2aece720 in v8::internal::MarkCompactCollector::SweepSpaces 
(this=0x44b470) at ../src/mark-compact.cc:4103
#7  0x2aed27d4 in v8::internal::MarkCompactCollector::CollectGarbage 
(this=0x44b470) at ../src/mark-compact.cc:295
#8  0x2ad5b2bc in v8::internal::Heap::MarkCompact (this=0x44a040, 
tracer=0x7fe1c2c0) at ../src/heap.cc:979
#9  0x2ad5b958 in v8::internal::Heap::PerformGarbageCollection 
(this=0x44a040, collector=v8::internal::MARK_COMPACTOR, tracer=0x7fe1c2c0) 
at ../src/heap.cc:862
#10 0x2ad5e0d0 in v8::internal::Heap::CollectGarbage (this=0x44a040, 
space=v8::internal::OLD_POINTER_SPACE, 
collector=v8::internal::MARK_COMPACTOR, gc_reason=0x2b2bde34 "gc 
extension", 
    collector_reason=0x2b2cc244 "GC in old space requested") at 
../src/heap.cc:600
#11 0x2ac1f784 in v8::internal::Heap::CollectGarbage (this=0x44a040, 
space=v8::internal::OLD_POINTER_SPACE, gc_reason=0x2b2bde34 "gc extension") 
at ../src/heap-inl.h:440
#12 0x2ad5e934 in v8::internal::Heap::CollectAllGarbage (this=0x44a040, 
flags=0, gc_reason=0x2b2bde34 "gc extension") at ../src/heap.cc:510
#13 0x2aca7c14 in v8::internal::GCExtension::GC (args=@0x7fe1c4cc) at 
../src/extensions/gc-extension.cc:43
#14 0x2ac047f4 in HandleApiCallHelper<false> 
(args={<v8::internal::Arguments> = {<v8::internal::Embedded> = {<No data 
fields>}, length_ = 2, arguments_ = 0x7fe1c594}, <No data fields>}, 
    isolate=0x44a038) at ../src/builtins.cc:1145
#15 0x2ac049d0 in Builtin_Impl_HandleApiCall 
(args={<v8::internal::Arguments> = {<v8::internal::Embedded> = {<No data 
fields>}, length_ = 2, arguments_ = 0x7fe1c594}, <No data fields>}, 
    isolate=0x44a038) at ../src/builtins.cc:1162
#16 0x2ac04aac in Builtin_HandleApiCall (args={<v8::internal::Arguments> = 
{<v8::internal::Embedded> = {<No data fields>}, length_ = 2, arguments_ = 
0x7fe1c594}, <No data fields>}, 
    isolate=0x44a038) at ../src/builtins.cc:1161
#17 0x3f60a0b4 in ?? ()

(gdb) print this
$1 = (class v8::internal::Map * const) 0x166


Another one, with similar call stack:

#12 0x2ac10918 in V8_Fatal (file=0x2b2a7730 "../src/objects-inl.h", 
line=2875, format=0x2b2a7748 "CHECK(%s) failed") at ../src/checks.cc:55
#13 0x2ab5971c in v8::internal::HeapObject::SizeFromMap (this=0x49728af9, 
map=0x49728b51) at ../src/objects-inl.h:2875
#14 0x2ab597a4 in v8::internal::HeapObject::Size (this=0x49728af9) at 
../src/objects-inl.h:1181
#15 0x2aeda718 in v8::internal::SemiSpaceIterator::Next (this=0x7fdc5a1c) 
at ../src/spaces.h:2006
#16 0x2aecd4e4 in v8::internal::MarkCompactCollector::EvacuateNewSpace 
(this=0x44b470) at ../src/mark-compact.cc:3004
#17 0x2aecd63c in 
v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates 
(this=0x44b470) at ../src/mark-compact.cc:3411
#18 0x2aece720 in v8::internal::MarkCompactCollector::SweepSpaces 
(this=0x44b470) at ../src/mark-compact.cc:4103
#19 0x2aed27d4 in v8::internal::MarkCompactCollector::CollectGarbage 
(this=0x44b470) at ../src/mark-compact.cc:295
#20 0x2ad5b2bc in v8::internal::Heap::MarkCompact (this=0x44a040, 
tracer=0x7fdc5cf0) at ../src/heap.cc:979
#21 0x2ad5b958 in v8::internal::Heap::PerformGarbageCollection 
(this=0x44a040, collector=v8::internal::MARK_COMPACTOR, tracer=0x7fdc5cf0) 
at ../src/heap.cc:862
#22 0x2ad5e0d0 in v8::internal::Heap::CollectGarbage (this=0x44a040, 
space=v8::internal::OLD_POINTER_SPACE, 
collector=v8::internal::MARK_COMPACTOR, gc_reason=0x2b2bde34 "gc 
extension", 
    collector_reason=0x2b2cc244 "GC in old space requested") at 
../src/heap.cc:600
#23 0x2ac1f784 in v8::internal::Heap::CollectGarbage (this=0x44a040, 
space=v8::internal::OLD_POINTER_SPACE, gc_reason=0x2b2bde34 "gc extension") 
at ../src/heap-inl.h:440
#24 0x2ad5e934 in v8::internal::Heap::CollectAllGarbage (this=0x44a040, 
flags=0, gc_reason=0x2b2bde34 "gc extension") at ../src/heap.cc:510
#25 0x2aca7c14 in v8::internal::GCExtension::GC (args=@0x7fdc5efc) at 
../src/extensions/gc-extension.cc:43
#26 0x2ac047f4 in HandleApiCallHelper<false> 
(args={<v8::internal::Arguments> = {<v8::internal::Embedded> = {<No data 
fields>}, length_ = 2, arguments_ = 0x7fdc5fc4}, <No data fields>}, 
    isolate=0x44a038) at ../src/builtins.cc:1145
#27 0x2ac049d0 in Builtin_Impl_HandleApiCall 
(args={<v8::internal::Arguments> = {<v8::internal::Embedded> = {<No data 
fields>}, length_ = 2, arguments_ = 0x7fdc5fc4}, <No data fields>}, 
    isolate=0x44a038) at ../src/builtins.cc:1162
#28 0x2ac04aac in Builtin_HandleApiCall (args={<v8::internal::Arguments> = 
{<v8::internal::Embedded> = {<No data fields>}, length_ = 2, arguments_ = 
0x7fdc5fc4}, <No data fields>}, 
    isolate=0x44a038) at ../src/builtins.cc:1161
#29 0x5370a0b4 in ?? ()

(gdb) up 13
#13 0x2ab5971c in v8::internal::HeapObject::SizeFromMap (this=0x49728af9, 
map=0x49728b51) at ../src/objects-inl.h:2875
2875      ASSERT(instance_type == CODE_TYPE);
Current language:  auto; currently c++

(gdb) print instance_type
$1 = 50

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to