Closed Bug 1238281 Opened 4 years ago Closed 11 days ago

Intermittent testing/xpcshell/example/unit/test_fail.js,test_do_check_null_failing.js,test_check_nsIException_failing.js | application crashed [@ mozalloc_abort(char const * const)]

Categories

(Testing :: XPCShell Harness, defect, critical)

defect
Not set
critical

Tracking

(firefox46 affected)

RESOLVED WORKSFORME
Tracking Status
firefox46 --- affected

People

(Reporter: philor, Assigned: gbrown)

Details

(Keywords: crash, intermittent-failure)

Attachments

(1 file)

Summary: Intermittent testing/xpcshell/example/unit/test_fail.js | application crashed [@ mozalloc_abort(char const * const)] → Intermittent testing/xpcshell/example/unit/test_fail.js,test_do_check_null_failing.js | application crashed [@ mozalloc_abort(char const * const)]
Summary: Intermittent testing/xpcshell/example/unit/test_fail.js,test_do_check_null_failing.js | application crashed [@ mozalloc_abort(char const * const)] → Intermittent testing/xpcshell/example/unit/test_fail.js,test_do_check_null_failing.js,test_check_nsIException_failing.js | application crashed [@ mozalloc_abort(char const * const)]
The log from comment 0 has:
17:43:24     INFO -  Thread 0 (crashed)
17:43:24     INFO -   0  mozglue.dll!mozalloc_abort(char const * const) [mozalloc_abort.cpp:0f363ae95dc9 : 33 + 0x2e]
17:43:24     INFO -      eip = 0x003c36dd   esp = 0x0012f6e0   ebp = 0x0012f6e8   ebx = 0x00000000
17:43:24     INFO -      esi = 0x00000021   edi = 0x004242b5   eax = 0x00000000   ecx = 0x00430ad9
17:43:24     INFO -      edx = 0x004f0ea0   efl = 0x00000212
17:43:24     INFO -      Found by: given as instruction pointer in context
17:43:24     INFO -   1  xul.dll!NS_DebugBreak [nsDebugImpl.cpp:0f363ae95dc9 : 439 + 0xd]
17:43:24     INFO -      eip = 0x1009bb86   esp = 0x0012f6f0   ebp = 0x0012fb20
17:43:24     INFO -      Found by: call frame info
17:43:24     INFO -   2  xul.dll!nsEventQueue::~nsEventQueue() [nsEventQueue.cpp:0f363ae95dc9 : 36 + 0x21]
17:43:24     INFO -      eip = 0x10106948   esp = 0x0012fb28   ebp = 0x0012fb5c
17:43:24     INFO -      Found by: call frame info

Frame 2 is https://hg.mozilla.org/mozilla-central/annotate/0f363ae95dc9/xpcom/threads/nsEventQueue.cpp#l36 , which is `NS_ASSERTION(IsEmpty(), "Non-empty event queue being destroyed; events being leaked.");`

Further up the stack we see:

17:43:24     INFO -   7  xul.dll!mozilla::CycleCollectedJSRuntime::~CycleCollectedJSRuntime() [CycleCollectedJSRuntime.cpp:0f363ae95dc9 : 480 + 0x9]

Which is this NS_RELEASE here:
https://hg.mozilla.org/mozilla-central/annotate/0f363ae95dc9/xpcom/base/CycleCollectedJSRuntime.cpp#l480

So this JSRuntime is releasing its thread, but there are still events in its queue so we assert. I have no idea what to do about this. khuey: any thoughts?
Hmm, it would help to know what's still in the queue at that point.  I suspect the final CC resulted in event dispatch.  I could probably add assertions to make us crash in event dispatch instead.
Assignee: nobody → gbrown
Status: NEW → RESOLVED
Closed: 11 days ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.