Closed Bug 1597906 Opened 6 years ago Closed 6 years ago

TEST-UNEXPECTED-FAIL | devtools/server/tests/unit/test_extension_storage_actor.js when run in the Thunderbird environment

Categories

(Thunderbird :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 72.0

People

(Reporter: jorgk-bmo, Assigned: darktrojan)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

TEST-UNEXPECTED-FAIL | devtools/server/tests/unit/test_extension_storage_actor.js | xpcshell return code: 0
PID 2505 | DBG-TEST: resource://gre/modules/ConduitsChild.jsm:102: error: sendRemoveListener on closed conduit 86029c60ab0af5691a497be5f5a0710695e23242@temporary-addon.2
PID 2505 | DBG-TEST: resource://gre/modules/ConduitsChild.jsm:102: error: sendRemoveListener on closed conduit 86029c60ab0af5691a497be5f5a0710695e23242@temporary-addon.6
PID 2505 | DBG-TEST: resource://gre/modules/ConduitsChild.jsm:102: error: sendRemoveListener on closed conduit 86029c60ab0af5691a497be5f5a0710695e23242@temporary-addon.10
TEST-UNEXPECTED-FAIL | devtools/server/tests/unit/test_extension_storage_actor.js | test_panel_data_matches_extension_with_no_pages_open - [test_panel_data_matches_extension_with_no_pages_open : 265] A promise chain failed to handle a rejection: [Exception... "Unexpected error" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: /Users/cltbld/tasks/task_1574227217/build/tests/xpcshell/head.js :: _do_main :: line 246" data: n
TEST-UNEXPECTED-FAIL | devtools/server/tests/unit/test_extension_storage_actor.js | test_panel_data_matches_extension_with_no_pages_open - [test_panel_data_matches_extension_with_no_pages_open : 265] A promise chain failed to handle a rejection: [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: /Users/cltbld/tasks/task_1574227217/build/tests/xpcshell/head.js :: _do_main :: line

Quite clearly from bug 1577498.

Flags: needinfo?(geoff)

You're right that it's bug 1577498. I don't know enough about actors to see how that would affect Thunderbird differently though. Tomislav?

Flags: needinfo?(geoff) → needinfo?(tomica)

I don't know enough about Thunderbird to see why it would be affected differently, except from the other comments in that file that seem to disable tests without OOP extensions

https://searchfox.org/mozilla-central/rev/652014ca/devtools/server/tests/unit/test_extension_storage_actor.js#249,855

Is there a TC log or something I can look at for more details?

Flags: needinfo?(tomica)

Here's a failure log from a recent run: https://firefoxci.taskcluster-artifacts.net/KEln6plhS5eVKIUaoZspIA/0/public/logs/live_backing.log

I think you're right and it's the same reason that caused us to switch off some tests before, so I'm going to do the same here unless you have any better ideas.

Assignee: nobody → geoff
Status: NEW → ASSIGNED

In the logs linked from comment 4 I see that right before the failure there are the following errors logged:

JavaScript error: resource://gre/modules/ConduitsChild.jsm, line 152: Error: RunListener for closed conduit b360087f42466ad81eed9884a4f2e6f8f046f40a@temporary-addon.10: ({childId:"b360087f42466ad81eed9884a4f2e6f8f046f40a@temporary-addon.10", handlingUserInput:false, listenerId:11, path:"storage.onChanged", args:{}})
...
JavaScript Error: "sendRemoveListener on closed conduit b360087f42466ad81eed9884a4f2e6f8f046f40a@temporary-addon.10" {file: "resource://gre/modules/ConduitsChild.jsm" line: 102}
  _send@resource://gre/modules/ConduitsChild.jsm:102:13
  removeListener@resource://gre/modules/ExtensionChild.jsm:1095:34
  removeListener@resource://gre/modules/ExtensionChild.jsm:1320:40
  getAPI/register/<.storage.onChanged@chrome://extensions/content/child/ext-storage.js:333:22
  removeListener@resource://gre/modules/ExtensionCommon.jsm:2515:7
  revoke@resource://gre/modules/ExtensionCommon.jsm:2537:12
  close@resource://gre/modules/ExtensionCommon.jsm:2542:10
  unload@resource://gre/modules/ExtensionCommon.jsm:896:11
  unload@resource://gre/modules/ExtensionPageChild.jsm:261:11
  unload@resource://gre/modules/ExtensionPageChild.jsm:310:11
  destroyExtensionContext@resource://gre/modules/ExtensionPageChild.jsm:494:15
  observe@resource://gre/modules/ExtensionPageChild.jsm:407:12
  _do_main@/builds/worker/workspace/build/tests/xpcshell/head.js:246:6
 ...

Which suggests me that the failure is very likely triggered because the test case is creating a content page (using ExtensionTestUtils.loadContentPage) which has subscribed a storage.onChanged event listener and then the test task is destroying the content page before the storage.onChanged has been able to reach that extension context:

I think that a reasonable way to keep the test running when e10s is disabled (which currently happens for Thunderbird and GeckoView, but this xpcshell test isn't executed on GeckoView and so it triggers a failure on for Thunderbird) is to make the test case to wait for storage.onChanged to have been fired before proceeding to destroy the content page.

I'll comment on phabricator about the actual change that I had in mind, so that Geoff can give it a try and see if it also prevent the failure as I think.

Attachment #9110400 - Attachment description: Bug 1597906 - Skip two more subtests of test_extension_storage_actor.js when run in non-oop extension mode. r?rpl → Bug 1597906 - Fix test_extension_storage_actor.js to work with e10s disabled. r?rpl
Pushed by geoff@darktrojan.net: https://hg.mozilla.org/integration/autoland/rev/521cf01eb613 Fix test_extension_storage_actor.js to work with e10s disabled. r=rpl
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 72.0
Keywords: regression
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: