Closed Bug 1168221 Opened 7 years ago Closed 7 years ago

Assertion failure: !mDataStarted

Categories

(Core :: Networking: WebSockets, defect)

defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla41
Tracking Status
firefox41 + verified

People

(Reporter: jdm, Assigned: michal)

References

Details

(Keywords: topcrash)

Crash Data

Attachments

(2 files)

STR:
1. Visit https://reviewable.io/reviews/servo/servo/6168 in a debug build
2. See a ton of the following assertion:

Assertion failure: !mDataStarted, at /Users/jdm/src/mozilla-central/netwerk/protocol/websocket/WebSocketChannel.cpp:2232
#01: mozilla::net::WebSocketChannel::StopSession(nsresult)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x63dcf8]
#02: mozilla::net::WebSocketChannel::Close(unsigned short, nsACString_internal const&)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x644b3c]
#03: mozilla::net::WebSocketChannelParent::RecvClose(unsigned short const&, nsCString const&)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x64b8df]
#04: mozilla::net::PWebSocketParent::OnMessageReceived(IPC::Message const&)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0xc94bd5]
#05: mozilla::dom::PContentParent::OnMessageReceived(IPC::Message const&)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0xe2c32a]
#06: mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x847256]
#07: mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message const&)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x8464c9]
#08: mozilla::ipc::MessageChannel::OnMaybeDequeueOne()[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x842584]
#09: void DispatchToMethod<mozilla::ipc::MessageChannel, bool (mozilla::ipc::MessageChannel::*)()>(mozilla::ipc::MessageChannel*, bool (mozilla::ipc::MessageChannel::*)(), Tuple0 const&)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x863113]
#10: RunnableMethod<mozilla::ipc::MessageChannel, bool (mozilla::ipc::MessageChannel::*)(), Tuple0>::Run()[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x86300e]
#11: mozilla::ipc::MessageChannel::RefCountedTask::Run()[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x866538]
#12: mozilla::ipc::MessageChannel::DequeueTask::Run()[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x866504]
#13: MessageLoop::RunTask(Task*)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x7bd480]
#14: MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x7bd9ff]
#15: MessageLoop::DoWork()[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x7bdc24]
#16: mozilla::ipc::DoWorkRunnable::Run()[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x84a422]
#17: nsThread::ProcessNextEvent(bool, bool*)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x19d4b8]
#18: NS_ProcessPendingEvents(nsIThread*, unsigned int)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1fa06a]
#19: nsBaseAppShell::NativeEventCallback()[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3ab9ed9]
#20: nsAppShell::ProcessGeckoEvents(void*)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3b3abed]
#21: __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x7f5b1]
#22: __CFRunLoopDoSources0[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x70c62]
#23: __CFRunLoopRun[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x703ef]
#24: CFRunLoopRunSpecific[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x6fe75]
#25: RunCurrentEventLoopInMode[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x2ea0d]
#26: ReceiveNextEventCommon[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x2e7b7]
#27: _BlockUntilNextEventMatchingListInModeWithFilter[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x2e5bc]
#28: _DPSNextEvent[/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x2424e]
#29: -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:][/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x2389b]
#30: -[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:][/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3b39707]
#31: -[NSApplication run][/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x1799c]
#32: nsAppShell::Run()[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3b3b5bc]
#33: nsAppStartup::Run()[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4aa3ea1]
#34: XREMain::XRE_mainRun()[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4b59be5]
#35: XREMain::XRE_main(int, char**, nsXREAppData const*)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4b5a572]
#36: XRE_main[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4b5aa32]
#37: do_main(int, char**, nsIFile*)[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/firefox +0x2b7a]
#38: main[/Users/jdm/src/mozilla-central/obj-x86_64-apple-darwin13.4.0/dist/NightlyDebug.app/Contents/MacOS/firefox +0x1f03]
* thread #1: tid = 0xb2ce, 0x0000000101bcbd02 XUL`mozilla::net::WebSocketChannel::StopSession(this=0x0000000125718800, reason=2152398860) + 210 at WebSocketChannel.cpp:2232, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x0000000101bcbd02 XUL`mozilla::net::WebSocketChannel::StopSession(this=0x0000000125718800, reason=2152398860) + 210 at WebSocketChannel.cpp:2232
   2229	  // normally this should be called on socket thread, but it is ok to call it
   2230	  // from OnStartRequest before the socket thread machine has gotten underway
   2231	  if (NS_IsMainThread()) {
-> 2232	    MOZ_DIAGNOSTIC_ASSERT(!mDataStarted);
   2233	  } else {
   2234	    MOZ_DIAGNOSTIC_ASSERT(PR_GetCurrentThread() == gSocketThread,
   2235	                          "Called on unexpected thread!");
Attached file some gdb debugging
I just hit this loading https://github.com/w3ctag/meetings/blob/gh-pages/2015/telcons/05-27-fingerprinting-redux-agenda.md
on somewhat restrictive wifi (United wifi).  Here's what I saw in gdb, in case it's of interest.
Blocks: 1159280
Flags: needinfo?(michal.novotny)
The comment above the assertions is obviously wrong. I need to re-investigate thread safety of these methods. For now, let's partially back out patch from bug 1159280.
Flags: needinfo?(michal.novotny)
Attachment #8611509 - Flags: review?(mcmanus)
Duplicate of this bug: 1168240
mcmanus' name text indicates that he is on PTO. Is there someone else who can review this in the meantime?
Attachment #8611509 - Flags: review?(mcmanus) → review?(jduell.mcbugs)
Crash Signature: [@ mozilla::net::WebSocketChannel::StopSession(nsresult) ]
Duplicate of this bug: 1168464
This signature first appeared in the build of 2015052503.

It is by far the #1 topcrasher at 38% of all crashes on Nightly in the last three days.
Comment on attachment 8611509 [details] [diff] [review]
partial backout of 1159280

Review of attachment 8611509 [details] [diff] [review]:
-----------------------------------------------------------------

Stealing review per dmajor's request in #developers
Attachment #8611509 - Flags: review?(jduell.mcbugs) → review+
Assignee: nobody → michal.novotny
Keywords: topcrash
https://hg.mozilla.org/mozilla-central/rev/ef0ba11f5057
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
Nightly respun to pick this up, since has caused me a lot of crashes.
This is still happening a lot to me, even with the latest Nightly (2015-06-02). It just happened 3 times in 30 minutes or so.
Duplicate of this bug: 1169482
Adding a FF41 tracking flag. Also requesting QE team to verify this fix.
Flags: qe-verify+
Flags: needinfo?(otilia.anica)
Reproduced with Nightly 2015-05-26, under Windows 7 64-bit:
bp-56b8a5c6-f93a-4638-8ccb-8e4d62150708
bp-4f6a8951-ce8a-412f-bb58-75d162150708

Verified fixed with latest 41.0a2 and 42.0a1 (both builds from 2015-07-07), across platforms [1], by using various provided URLs [2] - no crash or assertion encountered.
Also, in Socorro there are no new reports after 2015-05-31 [3].

Dirkjan Ochtman, could please provide some steps on how this issue is still reproducible for you? Thanks in advance!

[1] Windows 7 64-bit, Mac OS X 10.10.4 and Ubuntu 14.04 32-bit
[2] https://reviewable.io/reviews/servo/servo/6168; https://casetext.com/case/stafford-v-multnomah-county-assessor; https://angularjs.org/; http://www.codecademy.com/; https://fiery-fire-5650.firebaseio.com/
[3] https://crash-stats.mozilla.com/report/list?range_unit=days&range_value=14&signature=mozilla%3A%3Anet%3A%3AWebSocketChannel%3A%3AStopSession%28nsresult%29#tab-reports
Status: RESOLVED → VERIFIED
Flags: qe-verify+
Flags: needinfo?(otilia.anica)
Flags: needinfo?(dirkjan)
I don't see this anymore.
Flags: needinfo?(dirkjan)
You need to log in before you can comment on or make changes to this bug.