Thank you guys for the information.

--Evgeny


On Friday, July 27, 2012 4:02:08 PM UTC+7, Jakob Kummerow wrote:
>
> In addition to what Yang said, here are a few more points:
>
>    - When the GC hits an ASSERT, 99% of the time it's not a bug in the 
>    GC, but rather the GC stumbling over a broken object while it's inspecting 
>    the heap's content. Are you messing with maps or objects in any way? 
>    - I don't know what state the MIPS port is in currently; it tends to 
>    lag behind the other architectures by a few hours to a few days and is 
>    sometimes broken when changes have not been ported yet. You should try to 
>    repro the failure with the unmodified MIPS branch. If that doesn't run on 
>    your device, try running it in the built-in simulator (just "make mips" on 
>    a Linux workstation with your regular (non-cross-) compiler). Trying to 
>    repro in the simulator is probably a good idea even with your local 
>    modifications. 
>    - You can also try to find another revision that works (especially if 
>    you know that it worked before). Once you have a good and a bad revision, 
>    you can "git bisect" the range in between to find out what broke it. 
>    - If you can reproduce the problem on either of ia32, x64, or arm, 
>    please file a bug and we'll look into it.
>
> Good luck!
>
>
> On Fri, Jul 27, 2012 at 10:44 AM, Yang Guo <[email protected]> wrote:
>
>> While the V8 team accepts upstream patches from the team that develops 
>> the MIPS port for V8, we do not maintain it ourselves. Please file an issue 
>> to https://github.com/paul99/v8m-**rb <https://github.com/paul99/v8m-rb>
>>
>> Yang
>>
>>
>> On Friday, July 27, 2012 6:05:26 AM UTC+2, Evgeny Baskakov wrote:
>>>
>>> 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<https://github.com/paul99/v8m-rb>, 
>>> commit **c2e35dc507b4562ce666a48cb7a266**33f9d7fdaf (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
>>
>
>
>  

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

Reply via email to