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
