Closed Bug 764369 Opened 12 years ago Closed 11 years ago

Intermittent crash during test_fileReadSlice.xul [@ xul.dll@0x177f0b3] [@ xul.dll@0x2214737], or | Assertion count 1 is greater than expected range 0-0 assertions (ASSERTION: QueryInterface needed: 'query_result.get() == mRawPtr')

Categories

(Core :: XPCOM, defect)

x86
Windows 7
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: emorley, Unassigned)

References

Details

(Keywords: crash, intermittent-failure)

Crash Data

Rev3 WINNT 6.1 mozilla-inbound debug test mochitest-other on 2012-06-12 11:34:58 PDT for push 22796d93c42e

slave: talos-r3-w7-060

https://tbpl.mozilla.org/php/getParsedLog.php?id=12597280&tree=Mozilla-Inbound

{
10293 INFO TEST-START | chrome://mochitests/content/chrome/dom/workers/test/test_fileReadSlice.xul
++DOMWINDOW == 73 (1156AE08) [serial = 881] [outer = 0D128ED8]
JavaScript warning: chrome://mochitests/content/chrome/dom/workers/test/test_fileReadSlice.xul, line 43: octal literals and octal escape sequences are deprecated
JavaScript warning: chrome://mochitests/content/chrome/dom/workers/test/test_fileReadSlice.xul, line 43: octal literals and octal escape sequences are deprecated
JavaScript warning: chrome://mochitests/content/chrome/dom/workers/test/test_fileReadSlice.xul, line 43: octal literals and octal escape sequences are deprecated
Couldn't convert chrome URL: chrome://mochitests/tests/SimpleTest/test.css
[Parent 1548] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file e:/builds/moz2_slave/m-in-w32-dbg/build/netwerk/base/src/nsIOService.cpp, line 658
[Parent 1548] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file e:/builds/moz2_slave/m-in-w32-dbg/build/layout/style/Loader.cpp, line 1928
[Parent 1548] WARNING: No outer window available!: file e:/builds/moz2_slave/m-in-w32-dbg/build/dom/base/nsGlobalWindow.cpp, line 8576
[Parent 1548] WARNING: No outer window available!: file e:/builds/moz2_slave/m-in-w32-dbg/build/dom/base/nsGlobalWindow.cpp, line 8576
[Parent 1548] WARNING: No outer window available!: file e:/builds/moz2_slave/m-in-w32-dbg/build/dom/base/nsGlobalWindow.cpp, line 8576
[Parent 1548] WARNING: No outer window available!: file e:/builds/moz2_slave/m-in-w32-dbg/build/dom/base/nsGlobalWindow.cpp, line 8576
[Parent 1548] WARNING: No outer window available!: file e:/builds/moz2_slave/m-in-w32-dbg/build/dom/base/nsGlobalWindow.cpp, line 8576
[Parent 1548] WARNING: No outer window available!: file e:/builds/moz2_slave/m-in-w32-dbg/build/dom/base/nsGlobalWindow.cpp, line 8576
[Parent 1548] WARNING: No outer window available!: file e:/builds/moz2_slave/m-in-w32-dbg/build/dom/base/nsGlobalWindow.cpp, line 8576
[Parent 1548] WARNING: No outer window available!: file e:/builds/moz2_slave/m-in-w32-dbg/build/dom/base/nsGlobalWindow.cpp, line 8576
[Parent 1548] ###!!! ASSERTION: QueryInterface needed: 'query_result.get() == mRawPtr', file e:\builds\moz2_slave\m-in-w32-dbg\build\obj-firefox\dist\include\nsCOMPtr.h, line 498
xul!NS_GetTraceRefcnt_P+0x0000000001110858
xul!NS_GetTraceRefcnt_P+0x000000000111154C
xul!NS_GetTraceRefcnt_P+0x00000000010C63B6
xul!NS_GetTraceRefcnt_P+0x00000000010C64B3
xul!NS_GetTraceRefcnt_P+0x0000000000486389
xul!NS_GetTraceRefcnt_P+0x0000000000487B5D
xul!NS_GetTraceRefcnt_P+0x0000000000487FBF
xul!NS_GetTraceRefcnt_P+0x00000000007F6527
xul!NS_GetTraceRefcnt_P+0x00000000007F5190
mozjs!JS_ResumeRequest+0x00000000000EACD1
mozjs!JS_ResumeRequest+0x00000000000EECB5
mozjs!JS_ResumeRequest+0x00000000000F43BB
mozjs!JS_ResumeRequest+0x00000000000EEA7A
mozjs!JS_ResumeRequest+0x00000000000EED22
mozjs!JS_ResumeRequest+0x00000000000EEF43
mozjs!JS_ResumeRequest+0x0000000000043B75
xul!NS_GetTraceRefcnt_P+0x00000000007F2F13
xul!NS_GetTraceRefcnt_P+0x00000000010A454F
xul!NS_GetTraceRefcnt_P+0x00000000010A54B4
mozjs!JS_ResumeRequest+0x00000000000EACD1
mozjs!JS_ResumeRequest+0x00000000000EECB5
mozjs!JS_ResumeRequest+0x00000000000EEF43
mozjs!JS_ResumeRequest+0x00000000000439B0
xul!NS_GetTraceRefcnt_P+0x00000000007F1427
xul!NS_GetTraceRefcnt_P+0x000000000080A2BB
xul!NS_GetTraceRefcnt_P+0x00000000008066CE
xul!NS_GetTraceRefcnt_P+0x000000000080CE10
xul!NS_GetTraceRefcnt_P+0x00000000007F8848
xul!NS_GetTraceRefcnt_P+0x0000000001118472
xul!NS_GetTraceRefcnt_P+0x00000000010CA9D1
xul!NS_GetTraceRefcnt_P+0x0000000001117B2C
nspr4!PRP_TryLock+0x000000000000062B
MSVCR100D!beginthreadex+0x00000000000001D4
kernel32!BaseThreadInitThunk+0x0000000000000012
ntdll!RtlInitializeExceptionChain+0x0000000000000063
ntdll!RtlInitializeExceptionChain+0x0000000000000036
[Parent 1548] WARNING: NS_ENSURE_SUCCESS(rv, false) failed with result 0x8000FFFF: file e:/builds/moz2_slave/m-in-w32-dbg/build/content/base/src/nsContentUtils.cpp, line 2901
[Parent 1548] WARNING: NS_ENSURE_TRUE(pusher.Push(aBoundElement)) failed: file e:/builds/moz2_slave/m-in-w32-dbg/build/content/xbl/src/nsXBLProtoImplMethod.cpp, line 324
WARNING: shutting down early because of crash!: file e:/builds/moz2_slave/m-in-w32-dbg/build/dom/plugins/ipc/PluginModuleChild.cpp, line 699
WARNING: plugin process _exit()ing: file e:/builds/moz2_slave/m-in-w32-dbg/build/dom/plugins/ipc/PluginModuleChild.cpp, line 664
NPP_Destroy
NPP_Destroy
NPP_Destroy
NPP_Destroy
NPP_Destroy
nsStringStats
 => mAllocCount:            121
 => mReallocCount:            1
 => mFreeCount:              54  --  LEAKED 67 !!!
 => mShareCount:            131
 => mAdoptCount:              0
 => mAdoptFreeCount:          0
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/chrome/dom/workers/test/test_fileReadSlice.xul | Exited with code -1073741819 during test run
INFO | automation.py | Application ran for: 0:04:15.445000
INFO | automation.py | Reading PID log: c:\users\cltbld\appdata\local\temp\tmpviwz6npidlog
==> process 1548 launched child process 3616
==> process 1548 launched child process 1968
==> process 1548 launched child process 256
==> process 1548 launched child process 332
==> process 1548 launched child process 2064
INFO | automation.py | Checking for orphan process with PID: 3616
INFO | automation.py | Checking for orphan process with PID: 1968
INFO | automation.py | Checking for orphan process with PID: 256
INFO | automation.py | Checking for orphan process with PID: 332
INFO | automation.py | Checking for orphan process with PID: 2064
Downloading symbols from: http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-inbound-win32-debug/1339521083/firefox-16.0a1.en-US.win32.crashreporter-symbols.zip
PROCESS-CRASH | chrome://mochitests/content/chrome/dom/workers/test/test_fileReadSlice.xul | application crashed (minidump found)
Crash dump filename: c:\users\cltbld\appdata\local\temp\tmpkeacdu\minidumps\e96fc76f-6649-48c9-8a0b-6a924df465af.dmp
Operating system: Windows NT
                  6.1.7600 
CPU: x86
     GenuineIntel family 6 model 23 stepping 10
     2 CPUs

Crash reason:  EXCEPTION_ACCESS_VIOLATION_READ
Crash address: 0x65

Thread 47 (crashed)
 0  xul.dll + 0x177f0b3
    eip = 0x6caff0b3   esp = 0x1c8ff0a9   ebp = 0x1c8ff0c8   ebx = 0x00000000
    esi = 0x1a740ee9   edi = 0x00000000   eax = 0x05a1af58   ecx = 0x1a740ee8
    edx = 0x6aeae4d8   efl = 0x00010202
    Found by: given as instruction pointer in context
 1  xul.dll!nsFactoryEntry::GetFactory() [nsComponentManager.cpp:22796d93c42e : 1713 + 0x2d]
    eip = 0x6c5831d0   esp = 0x1c8ff0d0   ebp = 0x1c8ff0e0
    Found by: previous frame's frame pointer
 2  xul.dll!nsComponentManagerImpl::CreateInstanceByContractID(char const *,nsISupports *,nsID const &,void * *) [nsComponentManager.cpp:22796d93c42e : 1027 + 0xa]
    eip = 0x6c583ec4   esp = 0x1c8ff0e8   ebp = 0x1c8ff0fc
    Found by: call frame info
 3  xul.dll!CallCreateInstance(char const *,nsISupports *,nsID const &,void * *) [nsComponentManagerUtils.cpp:22796d93c42e : 138 + 0x11]
    eip = 0x6c538d2e   esp = 0x1c8ff104   ebp = 0x1c8ff118
    Found by: call frame info
 4  xul.dll!nsCreateInstanceByContractID::operator()(nsID const &,void * *) [nsComponentManagerUtils.cpp:22796d93c42e : 178 + 0x11]
    eip = 0x6c538e2b   esp = 0x1c8ff120   ebp = 0x1c8ff138
    Found by: call frame info
 5  xul.dll!nsCOMPtr<nsIPartialFileInputStream>::assign_from_helper(nsCOMPtr_helper const &,nsID const &) [nsCOMPtr.h:22796d93c42e : 1198 + 0xd]
    eip = 0x6b8f8d01   esp = 0x1c8ff140   ebp = 0x1c8ff148
    Found by: call frame info
 6  xul.dll!NS_NewPartialLocalFileInputStream(nsIInputStream * *,nsIFile *,unsigned __int64,unsigned __int64,int,int,int) [nsNetUtil.h:22796d93c42e : 938 + 0x2d]
    eip = 0x6b8fa4d5   esp = 0x1c8ff150   ebp = 0x1c8ff174
    Found by: call frame info
 7  xul.dll!nsDOMFileFile::GetInternalStream(nsIInputStream * *) [nsDOMFile.cpp:22796d93c42e : 554 + 0x37]
    eip = 0x6b8fa937   esp = 0x1c8ff17c   ebp = 0x1c8ff1a0
    Found by: call frame info
 8  xul.dll!mozilla::dom::workers::FileReaderSyncPrivate::ReadAsText(nsIDOMBlob *,nsAString_internal const &,nsAString_internal &) [FileReaderSyncPrivate.cpp:22796d93c42e : 87 + 0x23]
    eip = 0x6bc68e9f   esp = 0x1c8ff1a8   ebp = 0x1c8ff1e0
    Found by: call frame info
 9  xul.dll!`anonymous namespace'::FileReaderSync::ReadAsText(JSContext *,unsigned int,JS::Value *) [FileReaderSync.cpp:22796d93c42e : 292 + 0x13]
    eip = 0x6bc67b08   esp = 0x1c8ff1e8   ebp = 0x1c8ff224
    Found by: call frame info
10  mozjs.dll!js::CallJSNative(JSContext *,int (*)(JSContext *,unsigned int,JS::Value *),js::CallArgs const &) [jscntxtinlines.h:22796d93c42e : 395 + 0xe]
    eip = 0x6afd09a6   esp = 0x1c8ff22c   ebp = 0x1c8ff254
    Found by: call frame info
}
Summary: Intermittent crashing during test_fileReadSlice.xul [@ xul.dll@0x177f0b3] → Intermittent crash during test_fileReadSlice.xul [@ xul.dll@0x177f0b3]
We're crashing in nsFactoryEntry::GetFactory.  This seems like an XPCOM problem.
Component: DOM: Workers → XPCOM
Whiteboard: [orange]
Crash Signature: [@ xul.dll@0x177f0b3] → [@ xul.dll@0x177f0b3] [@ xul.dll@0x2214737]
Summary: Intermittent crash during test_fileReadSlice.xul [@ xul.dll@0x177f0b3] → Intermittent crash during test_fileReadSlice.xul [@ xul.dll@0x177f0b3] [@ xul.dll@0x2214737] (ASSERTION: QueryInterface needed: 'query_result.get() == mRawPtr')
bsmedberg, any idea what would have made this so much more frequent in February or so?
Flags: needinfo?(benjamin)
I suspect this is running into the root problem in bug 684887, a threading/lock issue in the component manager. I'd really love help making a fatal assertion in that bug so it can land with confidence. Basically all we need is a way to have the following stack crash before it deadlocks:

Mozilla::Mutex lock
  -> Call something on the same thread
    -> same mutex lock again
Flags: needinfo?(benjamin)
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #150)
> I suspect this is running into the root problem in bug 684887, a
> threading/lock issue in the component manager. I'd really love help making a
> fatal assertion in that bug so it can land with confidence. Basically all we
> need is a way to have the following stack crash before it deadlocks:
> 
> Mozilla::Mutex lock
>   -> Call something on the same thread
>     -> same mutex lock again

So just store the owning thread pointer in mozilla::Mutex and check it before attempting to lock?  Doesn't sound hard.  Am I missing something?
Summary: Intermittent crash during test_fileReadSlice.xul [@ xul.dll@0x177f0b3] [@ xul.dll@0x2214737] (ASSERTION: QueryInterface needed: 'query_result.get() == mRawPtr') → Intermittent crash during test_fileReadSlice.xul [@ xul.dll@0x177f0b3] [@ xul.dll@0x2214737], or | Assertion count 1 is greater than expected range 0-0 assertions (ASSERTION: QueryInterface needed: 'query_result.get() == mRawPtr')
(In reply to Kyle Huey [:khuey] (khuey@mozilla.com) from comment #151)
> (In reply to Benjamin Smedberg  [:bsmedberg] from comment #150)
> > I suspect this is running into the root problem in bug 684887, a
> > threading/lock issue in the component manager. I'd really love help making a
> > fatal assertion in that bug so it can land with confidence. Basically all we
> > need is a way to have the following stack crash before it deadlocks:
> > 
> > Mozilla::Mutex lock
> >   -> Call something on the same thread
> >     -> same mutex lock again
> 
> So just store the owning thread pointer in mozilla::Mutex and check it
> before attempting to lock?  Doesn't sound hard.  Am I missing something?
Flags: needinfo?(benjamin)
Wrong bug? That one is now fixed.
Flags: needinfo?(benjamin)
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #233)
> Wrong bug? That one is now fixed.
Flags: needinfo?(khuey)
I'm confused.
Flags: needinfo?(khuey) → needinfo?(emorley)
(In reply to Kyle Huey [:khuey] (khuey@mozilla.com) from comment #235)
> I'm confused.

* You asked bsmedberg a question, which he didn't see (presumably due to tbplbot spam).
* I needinfo'd him with your question
* He's now replied, so back to you :-)

(This is a top orange)
Flags: needinfo?(emorley)
(In reply to Ed Morley [:edmorley UTC+0] from comment #236)
> (In reply to Kyle Huey [:khuey] (khuey@mozilla.com) from comment #235)
> > I'm confused.
> 
> * You asked bsmedberg a question, which he didn't see (presumably due to
> tbplbot spam).
> * I needinfo'd him with your question

Ah, he answered the question by fixing Bug 684887 ;-)

> * He's now replied, so back to you :-)
> 
> (This is a top orange)

Well we're at 18 hours without it happening now ... so it's not a top orange anymore!
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
I'm loving bug 684887 more and more every day!
You need to log in before you can comment on or make changes to this bug.