Closed Bug 902202 Opened 11 years ago Closed 11 years ago

"System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406 TypeError: can't access dead object" on green debug mochitest-5 runs

Categories

(Toolkit :: Password Manager, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla26
Tracking Status
firefox24 --- fixed
firefox25 --- fixed
firefox26 --- fixed

People

(Reporter: RyanVM, Assigned: Dolske)

References

Details

(Whiteboard: [qa-])

Attachments

(1 file)

Due to some recent TBPL log parsing changes that were landing, we're seeing more errors in the logs than we used to. Bobby, it appears that this is your code. Mind taking a look, please? :)

https://tbpl.mozilla.org/php/getParsedLog.php?id=26230953&tree=Fx-Team#error0

Rev4 MacOSX Lion 10.7 fx-team debug test mochitest-5 on 2013-08-06 14:26:51 PDT for push 0fba8893a866
slave: talos-r4-lion-089

14:40:35     INFO -  174351 INFO TEST-PASS | /tests/toolkit/components/passwordmgr/test/test_prompt_async.html | Access Ci
14:40:35     INFO -  174352 INFO TEST-PASS | /tests/toolkit/components/passwordmgr/test/test_prompt_async.html | Access Cc
14:40:35     INFO -  ++DOCSHELL 0x1522aabd0 == 19 [id = 414]
14:40:35     INFO -  ++DOMWINDOW == 63 (0x13ad38848) [serial = 3764] [outer = 0x0]
14:40:35     INFO -  ++DOCSHELL 0x151dfa040 == 20 [id = 415]
14:40:35     INFO -  ++DOMWINDOW == 64 (0x151cf1db8) [serial = 3765] [outer = 0x0]
14:40:35     INFO -  ++DOCSHELL 0x13a243910 == 21 [id = 416]
14:40:35     INFO -  ++DOMWINDOW == 65 (0x15228e848) [serial = 3766] [outer = 0x0]
14:40:35     INFO -  WARNING: NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && subjPrincipal) failed: file ../../../docshell/base/nsDocShell.cpp, line 8393
14:40:35     INFO -  WARNING: NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && subjPrincipal) failed: file ../../../docshell/base/nsDocShell.cpp, line 8393
14:40:35     INFO -  WARNING: NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && subjPrincipal) failed: file ../../../docshell/base/nsDocShell.cpp, line 8393
14:40:35     INFO -  WARNING: Subdocument container has no frame: file ../../../layout/base/nsDocumentViewer.cpp, line 2380
14:40:35     INFO -  ++DOMWINDOW == 66 (0x139dd7d08) [serial = 3767] [outer = 0x13ad38848]
14:40:35     INFO -  WARNING: Subdocument container has no frame: file ../../../layout/base/nsDocumentViewer.cpp, line 2380
14:40:35     INFO -  ++DOMWINDOW == 67 (0x139d96dc8) [serial = 3768] [outer = 0x151cf1db8]
14:40:35     INFO -  WARNING: Subdocument container has no frame: file ../../../layout/base/nsDocumentViewer.cpp, line 2380
14:40:35     INFO -  ++DOMWINDOW == 68 (0x15223d528) [serial = 3769] [outer = 0x15228e848]
14:40:35     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:35     INFO -                       TypeError: can't access dead object
14:40:35     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:35     INFO -                       TypeError: can't access dead object
14:40:35     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:35     INFO -                       TypeError: can't access dead object
14:40:35     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:35     INFO -                       TypeError: can't access dead object
14:40:35     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:35     INFO -                       TypeError: can't access dead object
14:40:35     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:35     INFO -                       TypeError: can't access dead object
14:40:35     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:35     INFO -                       TypeError: can't access dead object
14:40:35     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:35     INFO -                       TypeError: can't access dead object
14:40:35     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:35     INFO -                       TypeError: can't access dead object
14:40:36     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:36     INFO -                       TypeError: can't access dead object
14:40:36     INFO -  System JS : ERROR chrome://specialpowers/content/specialpowersAPI.js:406
14:40:36     INFO -                       TypeError: can't access dead object
14:40:36     INFO -  174353 INFO TEST-PASS | /tests/toolkit/components/passwordmgr/test/test_prompt_async.html | doTest testNum 1
14:40:36     INFO -  WARNING: 1 sort operation has occurred for the SQL statement '0x13b0d91f0'.  See https://developer.mozilla.org/En/Storage/Warnings details.: file ../../../storage/src/mozStoragePrivateHelpers.cpp, line 110
14:40:36     INFO -  ++DOCSHELL 0x14259a5a0 == 22 [id = 417]
14:40:36     INFO -  ++DOMWINDOW == 69 (0x150e16c48) [serial = 3770] [outer = 0x0]
14:40:36     INFO -  ++DOMWINDOW == 70 (0x150ed3928) [serial = 3771] [outer = 0x150e16c48]
14:40:36     INFO -  174354 INFO TEST-PASS | /tests/toolkit/components/passwordmgr/test/test_prompt_async.html | Didn't open more then one dialog at a time
(In reply to Ryan VanderMeulen [:RyanVM UTC-4] from comment #0)
> Due to some recent TBPL log parsing changes that were landing, we're seeing
> more errors in the logs than we used to. Bobby, it appears that this is your
> code. Mind taking a look, please? :)

Define "this"? I've recently been coalescing and simplifying error reports to prevent errors from being swallowed, sure. But you probably want somebody on fx-team to figure out why the password manager tests are touching dead objects.
For what it's worth, the last time I debugged a bug with this symptom, the problem was a content observer that wasn't unregistered at the end of the test.
(In reply to Bobby Holley (:bholley) from comment #1)
> Define "this"?

Hg blame for that code had your name on it :)

Honza, is this something you might be able to help with?
Flags: needinfo?(honzab.moz)
(In reply to Ryan VanderMeulen [:RyanVM UTC-4] from comment #3)
> (In reply to Bobby Holley (:bholley) from comment #1)
> > Define "this"?
> 
> Hg blame for that code had your name on it :)

What is 'that code'? the specialPowersAPI code? That's just testing infrastructure.
 
> Honza, is this something you might be able to help with?

If I understand correctly, you probably want someone on the firefox team.
Component: XPConnect → Password Manager
Product: Core → Toolkit
Flags: needinfo?(honzab.moz)
Any ideas, dolske?
Flags: needinfo?(dolske)
Comment 2 + test_prompt_async.html immediately makes me think of:

https://mxr.mozilla.org/mozilla-central/source/toolkit/components/passwordmgr/test/prompt_common.js

Is there any way to get more info about what code is triggering this ERROR? Can I break on the warning and get a js stack or something like that?
Flags: needinfo?(bobbyholley+bmo)
(In reply to Justin Dolske [:Dolske] from comment #6)
> Comment 2 + test_prompt_async.html immediately makes me think of:
> 
> https://mxr.mozilla.org/mozilla-central/source/toolkit/components/
> passwordmgr/test/prompt_common.js
> 
> Is there any way to get more info about what code is triggering this ERROR?
> Can I break on the warning and get a js stack or something like that?

There are a couple ways. You can break in xpc::SystemErrorReporter (when the exception is reported), or you can break when the error is thrown (JS_ReportErrorNumber with a condition on the error number being JSMSG_DEAD_OBJECT).

Once you're there, you should be able to dump a stack in the normal way, I'd think.
Flags: needinfo?(bobbyholley+bmo)
Attached patch Patch v.1Splinter Review
Gave this a quick shot before jumping into the debugger, and got lucky. Without it a local mochitest-plain log run generated 45 lines mentioning "dead", with it I get 0.
Assignee: nobody → dolske
Attachment #788392 - Flags: review?(mnoorenberghe+bmo)
Flags: needinfo?(dolske)
Comment on attachment 788392 [details] [diff] [review]
Patch v.1

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

::: toolkit/components/passwordmgr/test/test_prompt.html
@@ +99,5 @@
>  
>  function finishTest() {
>    try {
>      ok(true, "finishTest removing testing logins...");
> +    observerService.removeObserver(storageObserver, "passwordmgr-storage-changed", false);

removeObserver only takes two args so remove the third. r=me with that fix.
Attachment #788392 - Flags: review?(mnoorenberghe+bmo) → review+
Fixed cut'n'paste laziness and pushed.

https://hg.mozilla.org/integration/fx-team/rev/ae46de5551b3
https://hg.mozilla.org/mozilla-central/rev/ae46de5551b3
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
No longer blocks: 892958
Blocks: log-SnR
Assuming no QA needed here. Please remove [qa-] from the whiteboard and add the verifyme keyword if this needs QA.
Whiteboard: [qa-]
Blocks: 920191
No longer blocks: log-SnR
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: