Closed Bug 934009 Opened 11 years ago Closed 6 years ago

mochitest chunk 4 shutdown crash on debug B2G

Categories

(Firefox OS Graveyard :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: jgriffin, Assigned: vicamo)

References

Details

Attachments

(1 file)

On debug B2G emulators, gecko crashes during shutdown after mochitest chunk 4 is run:

16:11:57     INFO -  11-01 23:10:07.852   867   867 I GeckoDump: 15126 INFO TEST-START | Shutdown
16:11:57     INFO -  11-01 23:10:07.862   867   867 I GeckoDump: 15127 INFO Passed:  22818
16:11:57     INFO -  11-01 23:10:07.872   867   867 I GeckoDump: 15128 INFO Failed:  1
16:11:57     INFO -  11-01 23:10:07.892   867   867 I GeckoDump: 15129 INFO Todo:    482
16:11:57     INFO -  11-01 23:10:07.892   867   867 I GeckoDump: 15130 INFO Slowest: 286139ms - /tests/dom/tests/mochitest/ajax/prototype/test_Prototype.html
16:11:57     INFO -  11-01 23:10:07.913   867   867 I GeckoDump: 15131 INFO SimpleTest FINISHED
16:11:57     INFO -  11-01 23:10:07.943   867   867 I GeckoDump: 15132 INFO TEST-INFO | Ran 1 Loops
16:11:57     INFO -  11-01 23:10:07.973   867   867 I GeckoDump: 15133 INFO SimpleTest FINISHED
16:11:57     INFO -  11-01 23:10:08.213   785   785 I Gecko   : [Parent 785] WARNING: NS_ENSURE_TRUE(mCallback) failed: file ../../../../gecko/content/base/src/nsFrameMessageManager.cpp, line 601
16:11:57     INFO -  11-01 23:10:08.273   785   785 I Gecko   : [Parent 785] WARNING: NS_ENSURE_TRUE(mCallback) failed: file ../../../../gecko/content/base/src/nsFrameMessageManager.cpp, line 601
16:11:57     INFO -  11-01 23:10:10.163   867   867 I Gecko   : [Child 867] WARNING: NS_ENSURE_TRUE(mDocShell) failed: file ../../../../gecko/embedding/browser/webBrowser/nsWebBrowser.cpp, line 366
16:11:57     INFO -  11-01 23:10:10.173   867   867 I Gecko   : [Child 867] WARNING: NS_ENSURE_TRUE(domWindow) failed: file ../../../../gecko/embedding/browser/webBrowser/nsDocShellTreeOwner.cpp, line 86
16:11:57     INFO -  11-01 23:10:11.513  2633  2633 I log     : OOM Message Logger Started
16:11:57     INFO -  11-01 23:10:11.973   785   785 I Gecko   : [Parent 785] WARNING: RemoveObserver() called for unregistered observer: file ../../gecko/hal/Hal.cpp, line 205
16:11:57     INFO -  11-01 23:10:11.973   785   785 I Gecko   : [Parent 785] WARNING: RemoveObserver() called for unregistered observer: file ../../gecko/hal/Hal.cpp, line 205
16:11:57     INFO -  11-01 23:10:11.973   785   785 I Gecko   : [Parent 785] WARNING: RemoveObserver() called for unregistered observer: file ../../gecko/hal/Hal.cpp, line 205
16:11:57     INFO -  11-01 23:10:11.973   785   785 I Gecko   : [Parent 785] WARNING: RemoveObserver() called for unregistered observer: file ../../gecko/hal/Hal.cpp, line 205
16:11:57     INFO -  11-01 23:10:11.993   785   785 I Gecko   : [Parent 785] WARNING: NS_ENSURE_TRUE(mRegistered) failed: file ../../../gecko/dom/telephony/ipc/TelephonyParent.cpp, line 84
16:11:57  WARNING -  11-01 23:10:12.223   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.253   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.293   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.323   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.373   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.383   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.423   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.453   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.483   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.503   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.553   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.583   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.622   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57     INFO -  11-01 23:10:12.662   785   785 I Gecko   : [Parent 785] WARNING: An event was posted to a thread that will never run it (rejected): file ../../../gecko/xpcom/threads/nsThread.cpp, line 353
16:11:57     INFO -  11-01 23:10:12.662   785   785 I Gecko   : [Parent 785] WARNING: unable to post continuation event: file ../../../gecko/xpcom/io/nsStreamUtils.cpp, line 441
16:11:57  WARNING -  11-01 23:10:12.672   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.722   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.733   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.772   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.812   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.832   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.882   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.913   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.942   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.983   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:12.993   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:13.043   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:13.063   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:13.093   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:13.143   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:13.153   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57  WARNING -  11-01 23:10:13.183   867   867 E GeckoConsole: [JavaScript Error: "NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIContentFrameMessageManager.content]" {file: "chrome://global/content/BrowserElementChildPreload.js" line: 277}]
16:11:57     INFO -  11-01 23:10:15.083   867   867 I GonkMemoryPressure: Observed XPCOM shutdown.
16:11:57     INFO -  11-01 23:10:15.772   867   867 I Gecko   : [Child 867] ###!!! ABORT: corrupted actor state: file PTelephony.cpp, line 35
16:11:57     INFO -  11-01 23:10:15.812   867   867 E Gecko   : mozalloc_abort: [Child 867] ###!!! ABORT: corrupted actor state: file PTelephony.cpp, line 35
16:11:57     INFO -  11-01 23:10:15.822   867   867 F MOZ_CRASH: Hit MOZ_CRASH() at ../../../gecko/memory/mozalloc/mozalloc_abort.cpp:30

full log:  https://tbpl.mozilla.org/php/getParsedLog.php?id=29997193&full=1&branch=cedar#error4
This also appears in the log:
16:11:43     INFO -  [Child 867] ###!!! ABORT: corrupted actor state: file PTelephony.cpp, line 35
16:11:43     INFO -  UNKNOWN [libxul.so +0x00f435d6]
16:11:43     INFO -  UNKNOWN [libxul.so +0x00f479e2]
16:11:43     INFO -  UNKNOWN [libxul.so +0x00a1d12e]
16:11:43     INFO -  UNKNOWN [libxul.so +0x00a1d14c]
16:11:43     INFO -  UNKNOWN [libxul.so +0x00a1ce30]
16:11:43     INFO -  UNKNOWN [libxul.so +0x002c3640]
16:11:43     INFO -  UNKNOWN [libxul.so +0x002c4da0]
16:11:43     INFO -  UNKNOWN [libxul.so +0x011e8ae4]
16:11:43     INFO -  UNKNOWN [libxul.so +0x011e7590]
16:11:43     INFO -  UNKNOWN [libxul.so +0x011bcaac]
16:11:43     INFO -  UNKNOWN [libxul.so +0x011e859a]
16:11:43     INFO -  UNKNOWN [libxul.so +0x011e85f0]
16:11:43     INFO -  UNKNOWN [libxul.so +0x011bf03c]
16:11:43     INFO -  NS_ShutdownXPCOM+0x00000005 [libxul.so +0x011bf34a]
16:11:43     INFO -  XRE_TermEmbedding+0x0000003f [libxul.so +0x002cbe20]
16:11:43     INFO -  UNKNOWN [libxul.so +0x00e7e8dc]
16:11:43     INFO -  UNKNOWN [libxul.so +0x00e54c42]
16:11:43     INFO -  XRE_InitChildProcess+0x0000053d [libxul.so +0x002cbd22]
16:11:43     INFO -  UNKNOWN [/system/b2g/plugin-container +0x0000878a]
16:11:43     INFO -  __libc_init+0x00000029 [libc.so +0x00016742]
16:11:43     INFO -  Segmentation fault
Vicamo, we're getting a crash and "ABORT: corrupted actor state: file PTelephony.cpp, line 35" is in the log.

Is this specific to PTelephony.ipdl or do you think it's a more general IPC issue?  Or is the PTelephony bit a red herring?

Thanks!
Assignee: nobody → vyang
Flags: needinfo?(vyang)
There's a problem here: TelephonyIPCProvider creates a TelephonyChild in its constructor, and this child holds a strong reference to its creator. It doesn't call Send__delete__ until ~TelephonyIPCProvider, but that won't happen as long as TelephonyChild's mListener is non-null. It's cleared during ActorDestroy (ie. IPDL has decided to tear down everything), so calling Send__delete__ at this point is bad news.
(In reply to Josh Matthews [:jdm] from comment #3)

Thank you! Working on it.
Flags: needinfo?(vyang)
Attached patch patch : WIPSplinter Review
1) Don't call Send__delete__ in ~TelephonyIPCProvider.

2) Remove the mPTelephonyChild pointer and let TelephonyChild manage it.  When |ActorDestroy()| is called, nullize sSingleton and set sActorDestroyed to true.  Further calls to |GetSingleton()| will then always return nullptr.  Have TelephonyIPCProvider check its validity in every IPC call.

Jonathan, do you have a line of command to run mochitest-4 locally?  Don't know how/what to do to specify the crashing test case.
Attachment #830117 - Flags: feedback?(josh)
Attachment #830117 - Flags: feedback?(jgriffin)
Attachment #830117 - Flags: feedback?(josh) → feedback+
You can use the mach command, see https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Mochitests#Running_mochitests_on_B2G_device_and_emulator_builds

The additional options you need are --total-chunks 9 --this-chunk 4.

Alternately, you could land your patch directly on cedar and see if it clears up the crash; cedar is not merged to m-c so landing a bad patch on it isn't dangerous as long as it gets backed out eventually.
Comment on attachment 830117 [details] [diff] [review]
patch : WIP

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

I'm not really qualified to review this; let's land on cedar and see if the crash goes away!
Attachment #830117 - Flags: feedback?(jgriffin)
(In reply to Jonathan Griffin (:jgriffin) from comment #6)
> You can use the mach command, see
> https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/
> Automated_testing/
> Mochitests#Running_mochitests_on_B2G_device_and_emulator_builds
> 
> The additional options you need are --total-chunks 9 --this-chunk 4.

Thank you.  So I just had:

  $ ./mach mochitest-remote --total-chunks 9 --this-chunk 4

Am I right?  But I can neither find "test_location.html" nor "Shutdown" in logcat output.

> Alternately, you could land your patch directly on cedar and see if it
> clears up the crash; cedar is not merged to m-c so landing a bad patch on it
> isn't dangerous as long as it gets backed out eventually.

Sorry, haven't had a chance to land any patch to Cedar before.  Does that mean I can land any patch to Cedar, and have another revert patch right after?  Had a short examine on Cedar commit log, can't really find such thing.  It's tip commit has "Merge b2g-inbound to m-c".  Doesn't look like a disposable branch.
(In reply to Vicamo Yang [:vicamo][:vyang] from comment #8)
> (In reply to Jonathan Griffin (:jgriffin) from comment #6)
> > You can use the mach command, see
> > https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/
> > Automated_testing/
> > Mochitests#Running_mochitests_on_B2G_device_and_emulator_builds
> > 
> > The additional options you need are --total-chunks 9 --this-chunk 4.
> 
> Thank you.  So I just had:
> 
>   $ ./mach mochitest-remote --total-chunks 9 --this-chunk 4
> 
> Am I right?  But I can neither find "test_location.html" nor "Shutdown" in
> logcat output.

That's odd.  If you attach a logcat, I can try to figure out what happened.

> 
> > Alternately, you could land your patch directly on cedar and see if it
> > clears up the crash; cedar is not merged to m-c so landing a bad patch on it
> > isn't dangerous as long as it gets backed out eventually.
> 
> Sorry, haven't had a chance to land any patch to Cedar before.  Does that
> mean I can land any patch to Cedar, and have another revert patch right
> after?  Had a short examine on Cedar commit log, can't really find such
> thing.  It's tip commit has "Merge b2g-inbound to m-c".  Doesn't look like a
> disposable branch.

Yes, you can commit and revert later.  We merge m-c to cedar, but cedar is never merged elsewhere.  Cedar is a disposable branch, but we try to keep it cleaner than you might otherwise expect since we use it verify a number of different things.
I just landed this on cedar; we'll see what happens.
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: