Closed Bug 1412309 Opened 8 years ago Closed 8 years ago

Crash [@ js::gcstats::Statistics::lookupChildPhase] or Assertion failure: CooperativeThreadMayYield(cx), at shell/js.cpp:3431

Categories

(Core :: JavaScript Engine, defect, P1)

x86
Linux
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox58 --- affected

People

(Reporter: decoder, Unassigned)

Details

(5 keywords, Whiteboard: [jsbugmon:update,bisect])

Crash Data

Attachments

(1 file)

The following testcase crashes on mozilla-central revision d734e6acf777 (build with --enable-posix-nspr-emulation --enable-valgrind --enable-gczeal --disable-tests --enable-stdcxx-compat --disable-profiling --disable-debug --without-intl-api --enable-optimize --target=i686-pc-linux-gnu, run with --fuzzing-safe --disable-oom-functions): See attachment. Backtrace: received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xf4effb40 (LWP 27510)] js::gcstats::Statistics::lookupChildPhase (this=0xf79502fc, phaseKind=js::gcstats::PhaseKind::MINOR_GC) at js/src/gc/Statistics.cpp:177 #0 js::gcstats::Statistics::lookupChildPhase (this=0xf79502fc, phaseKind=js::gcstats::PhaseKind::MINOR_GC) at js/src/gc/Statistics.cpp:177 #1 0x0874dd35 in js::gcstats::Statistics::beginPhase (this=0xf79502fc, phaseKind=js::gcstats::PhaseKind::MINOR_GC) at js/src/gc/Statistics.cpp:1153 #2 0x08450a58 in js::gcstats::AutoPhase::AutoPhase (phaseKind=<optimized out>, stats=..., this=<synthetic pointer>) at js/src/gc/Statistics.h:415 #3 js::gc::GCRuntime::minorGC (this=this@entry=0xf79502d0, reason=reason@entry=JS::gcreason::OUT_OF_NURSERY, phase=<optimized out>) at js/src/jsgc.cpp:7671 #4 0x08450bb5 in js::gc::GCRuntime::minorGC (this=0xf79502d0, reason=JS::gcreason::OUT_OF_NURSERY, phase=js::gcstats::PhaseKind::MINOR_GC) at js/src/jsgc.cpp:7691 #5 0x086b55df in js::gc::GCRuntime::tryNewNurseryObject<(js::AllowGC)1> (this=<optimized out>, clasp=<optimized out>, nDynamicSlots=0, thingSize=48, cx=0xf792f800) at js/src/gc/Allocator.cpp:91 #6 js::Allocate<JSObject, (js::AllowGC)1> (cx=0xf792f800, kind=js::gc::AllocKind::OBJECT4_BACKGROUND, nDynamicSlots=0, heap=js::gc::DefaultHeap, clasp=0x8a9c0e0 <js::ArrayObject::class_>) at js/src/gc/Allocator.cpp:55 #7 0x0812e1a7 in js::ArrayObject::createArrayInternal (group=..., shape=..., heap=js::gc::DefaultHeap, kind=js::gc::AllocKind::OBJECT4_BACKGROUND, cx=0xf792f800) at js/src/vm/ArrayObject-inl.h:55 #8 js::ArrayObject::createArray (cx=0xf792f800, kind=js::gc::AllocKind::OBJECT4_BACKGROUND, heap=js::gc::DefaultHeap, shape=..., group=..., length=1, metadata=...) at js/src/vm/ArrayObject-inl.h:83 #9 0x0812654f in NewArray<4294967295u> (newKind=js::GenericObject, protoArg=..., length=1, cx=0xf792f800) at js/src/jsarray.cpp:3800 #10 js::NewDenseFullyAllocatedArray (cx=cx@entry=0xf792f800, length=1, proto=..., newKind=js::GenericObject) at js/src/jsarray.cpp:3842 #11 0x08143931 in js::NewArrayOperationWithTemplate (cx=0xf792f800, templateObject=...) at js/src/vm/Interpreter.cpp:5046 #12 0x08347be9 in js::jit::DoNewArray (cx=0xf792f800, payload=0xf4efe1f8, stub=0xf52910b0, length=1, res=...) at js/src/jit/SharedIC.cpp:2717 #13 0x336aa1fb in ?? () [...] #20 0x336a78d8 in ?? () #21 0x082a25d5 in EnterJit (cx=0x336b6b1f, state=..., code=0x336b7010 "\351\026") at js/src/jit/Jit.cpp:106 #22 0x0814fa5f in Interpret (cx=0xf792f800, state=...) at js/src/vm/Interpreter.cpp:3096 #23 0x08154721 in js::RunScript (cx=0xf792f800, state=...) at js/src/vm/Interpreter.cpp:423 #24 0x081561cc in js::ExecuteKernel (cx=<optimized out>, script=..., envChainArg=..., newTargetValue=..., evalInFrame=..., result=<optimized out>) at js/src/vm/Interpreter.cpp:706 #25 0x08156313 in js::Execute (cx=0xf792f800, script=..., envChainArg=..., rval=0xf52e8060) at js/src/vm/Interpreter.cpp:739 #26 0x0840d690 in ExecuteScript (cx=cx@entry=0xf792f800, scope=..., scope@entry=..., script=script@entry=..., rval=0xf52e8060) at js/src/jsapi.cpp:4690 #27 0x08421c23 in ExecuteScript (cx=0xf792f800, envChain=..., scriptArg=..., scriptArg@entry=..., rval=0xf52e8060) at js/src/jsapi.cpp:4709 #28 0x08421c89 in JS_ExecuteScript (cx=<optimized out>, envChain=..., scriptArg=..., rval=...) at js/src/jsapi.cpp:4730 #29 0x0809aae5 in Evaluate (cx=0xf792f800, argc=1, vp=0xf52e8060) at js/src/shell/js.cpp:1779 #30 0x08154ab4 in js::CallJSNative (args=..., native=<optimized out>, cx=0xf792f800) at js/src/jscntxtinlines.h:291 #31 js::InternalCallOrConstruct (cx=0xf792f800, args=..., construct=js::NO_CONSTRUCT) at js/src/vm/Interpreter.cpp:473 #32 0x08154e72 in InternalCall (cx=<optimized out>, args=...) at js/src/vm/Interpreter.cpp:522 #33 0x081481d3 in js::CallFromStack (args=..., cx=<optimized out>) at js/src/vm/Interpreter.cpp:528 #34 Interpret (cx=0xf792f800, state=...) at js/src/vm/Interpreter.cpp:3067 #35 0x08154721 in js::RunScript (cx=0xf792f800, state=...) at js/src/vm/Interpreter.cpp:423 #36 0x081561cc in js::ExecuteKernel (cx=<optimized out>, script=..., envChainArg=..., newTargetValue=..., evalInFrame=..., result=<optimized out>) at js/src/vm/Interpreter.cpp:706 #37 0x08156313 in js::Execute (cx=0xf792f800, script=..., envChainArg=..., rval=0xf4eff288) at js/src/vm/Interpreter.cpp:739 #38 0x0840d690 in ExecuteScript (cx=cx@entry=0xf792f800, scope=..., scope@entry=..., script=script@entry=..., rval=0xf4eff288) at js/src/jsapi.cpp:4690 #39 0x08415dac in JS_ExecuteScript (cx=0xf792f800, scriptArg=..., rval=...) at js/src/jsapi.cpp:4716 #40 0x08098214 in WorkerMain (arg=0xf522acd0) at js/src/shell/js.cpp:3612 #41 0x0809d219 in js::detail::ThreadTrampoline<void (&)(void*), WorkerInput*&>::callMain<0u> (this=0xf790b158) at js/src/threading/Thread.h:239 #42 js::detail::ThreadTrampoline<void (&)(void*), WorkerInput*&>::Start (aPack=0xf790b158) at js/src/threading/Thread.h:232 #43 0xf7fb228a in start_thread (arg=0xf4effb40) at pthread_create.c:333 #44 0xf7cd94ce in clone () from /lib32/libc.so.6 eax 0x8acc574 145540468 ebx 0x8ad0860 145557600 ecx 0x8acaff4 145534964 edx 0x87ef828 142538792 esi 0x586c 22636 edi 0x52 82 ebp 0x69 105 esp 0xf4efdebc 4109360828 eip 0x874cafe <js::gcstats::Statistics::lookupChildPhase(js::gcstats::PhaseKind) const+238> => 0x874cafe <js::gcstats::Statistics::lookupChildPhase(js::gcstats::PhaseKind) const+238>: movl $0x0,0x0 0x874cb08 <js::gcstats::Statistics::lookupChildPhase(js::gcstats::PhaseKind) const+248>: ud2
Attached file Testcase
Brian, could you take a look?
Flags: needinfo?(bhackett1024)
Priority: -- → P1
I can't reproduce this on m-i tip, is it still crashing with the recent cooperative threading fixes? A stack for the crash in a debug build would also help.
Flags: needinfo?(bhackett1024) → needinfo?(choller)
Flags: needinfo?(bhackett1024)
Can't seem to reproduce this anymore, closing as WFM. Will reopen when I see this again.
Status: NEW → RESOLVED
Closed: 8 years ago
Flags: needinfo?(choller)
Flags: needinfo?(bhackett1024)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: