Closed Bug 1395526 Opened 8 years ago Closed 8 years ago

Intermittent browser/components/places/tests/browser/browser_copy_query_without_tree.js | Uncaught exception - at PlacesTransactions.jsm:1632 - TypeError: creationInfo is null

Categories

(Firefox :: Bookmarks & History, defect, P2)

defect

Tracking

()

RESOLVED FIXED
Firefox 58
Tracking Status
firefox57 --- disabled
firefox58 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: standard8)

Details

(Keywords: intermittent-failure, Whiteboard: [stockwell fixed:race])

Attachments

(1 file)

Filed by: archaeopteryx [at] coole-files.de https://treeherder.mozilla.org/logviewer.html#?job_id=127317069&repo=mozilla-inbound https://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-inbound-win64/mozilla-inbound_win8_64_test-mochitest-clipboard-e10s-bm109-tests1-windows-build458.txt.gz 01:02:02 INFO - *** Start BrowserChrome Test Results *** 01:02:02 INFO - checking window state 01:02:02 INFO - TEST-START | browser/components/places/tests/browser/browser_copy_query_without_tree.js 01:02:02 INFO - GECKO(3088) | console.error: 01:02:02 INFO - GECKO(3088) | Message: TypeError: creationInfo is null 01:02:02 INFO - GECKO(3088) | Stack: 01:02:02 INFO - GECKO(3088) | execute@resource://gre/modules/PlacesTransactions.jsm:1632:5 01:02:02 INFO - GECKO(3088) | Async*transact/promise<@resource://gre/modules/PlacesTransactions.jsm:546:26 01:02:02 INFO - GECKO(3088) | async*enqueue/promise<@resource://gre/modules/PlacesTransactions.jsm:472:58 01:02:02 INFO - GECKO(3088) | promise callback*enqueue@resource://gre/modules/PlacesTransactions.jsm:472:19 01:02:02 INFO - GECKO(3088) | transact@resource://gre/modules/PlacesTransactions.jsm:543:19 01:02:02 INFO - GECKO(3088) | transact@resource://gre/modules/PlacesTransactions.jsm:231:16 01:02:02 INFO - GECKO(3088) | paste/<@chrome://browser/content/places/controller.js:1294:30 01:02:02 INFO - GECKO(3088) | async*batch/<@resource://gre/modules/PlacesTransactions.jsm:566:20 01:02:02 INFO - GECKO(3088) | async*enqueue/promise<@resource://gre/modules/PlacesTransactions.jsm:472:58 01:02:02 INFO - GECKO(3088) | promise callback*enqueue@resource://gre/modules/PlacesTransactions.jsm:472:19 01:02:02 INFO - GECKO(3088) | batch@resource://gre/modules/PlacesTransactions.jsm:561:12 01:02:02 INFO - GECKO(3088) | batch@resource://gre/modules/PlacesTransactions.jsm:340:14 01:02:02 INFO - GECKO(3088) | paste@chrome://browser/content/places/controller.js:1279:15 01:02:02 INFO - GECKO(3088) | async*copy_toolbar_shortcut@chrome://mochitests/content/browser/browser/components/places/tests/browser/browser_copy_query_without_tree.js:24:9 01:02:02 INFO - GECKO(3088) | Async*Tester_execTest/<@chrome://mochikit/content/browser-test.js:803:21 01:02:02 INFO - GECKO(3088) | TaskImpl_run@resource://gre/modules/Task.jsm:331:42 01:02:02 INFO - GECKO(3088) | TaskImpl@resource://gre/modules/Task.jsm:280:3 01:02:02 INFO - GECKO(3088) | asyncFunction@resource://gre/modules/Task.jsm:252:14 01:02:02 INFO - GECKO(3088) | Task_spawn@resource://gre/modules/Task.jsm:166:12 01:02:02 INFO - GECKO(3088) | Tester_execTest@chrome://mochikit/content/browser-test.js:794:9 01:02:02 INFO - GECKO(3088) | Tester.prototype.nextTest</<@chrome://mochikit/content/browser-test.js:694:7 01:02:02 INFO - GECKO(3088) | SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:795:59 01:02:02 INFO - GECKO(3088) | console.error: 01:02:02 INFO - GECKO(3088) | Message: TypeError: creationInfo is null 01:02:02 INFO - GECKO(3088) | Stack: 01:02:02 INFO - GECKO(3088) | execute@resource://gre/modules/PlacesTransactions.jsm:1632:5 01:02:02 INFO - GECKO(3088) | Async*transact/promise<@resource://gre/modules/PlacesTransactions.jsm:546:26 01:02:02 INFO - GECKO(3088) | async*enqueue/promise<@resource://gre/modules/PlacesTransactions.jsm:472:58 01:02:02 INFO - GECKO(3088) | promise callback*enqueue@resource://gre/modules/PlacesTransactions.jsm:472:19 01:02:02 INFO - GECKO(3088) | transact@resource://gre/modules/PlacesTransactions.jsm:543:19 01:02:02 INFO - GECKO(3088) | transact@resource://gre/modules/PlacesTransactions.jsm:231:16 01:02:02 INFO - GECKO(3088) | paste/<@chrome://browser/content/places/controller.js:1294:30 01:02:02 INFO - GECKO(3088) | async*batch/<@resource://gre/modules/PlacesTransactions.jsm:566:20 01:02:02 INFO - GECKO(3088) | async*enqueue/promise<@resource://gre/modules/PlacesTransactions.jsm:472:58 01:02:02 INFO - GECKO(3088) | promise callback*enqueue@resource://gre/modules/PlacesTransactions.jsm:472:19 01:02:02 INFO - GECKO(3088) | batch@resource://gre/modules/PlacesTransactions.jsm:561:12 01:02:02 INFO - GECKO(3088) | batch@resource://gre/modules/PlacesTransactions.jsm:340:14 01:02:02 INFO - GECKO(3088) | paste@chrome://browser/content/places/controller.js:1279:15 01:02:02 INFO - GECKO(3088) | async*copy_toolbar_shortcut@chrome://mochitests/content/browser/browser/components/places/tests/browser/browser_copy_query_without_tree.js:24:9 01:02:02 INFO - GECKO(3088) | Async*Tester_execTest/<@chrome://mochikit/content/browser-test.js:803:21 01:02:02 INFO - GECKO(3088) | TaskImpl_run@resource://gre/modules/Task.jsm:331:42 01:02:02 INFO - GECKO(3088) | TaskImpl@resource://gre/modules/Task.jsm:280:3 01:02:02 INFO - GECKO(3088) | asyncFunction@resource://gre/modules/Task.jsm:252:14 01:02:02 INFO - GECKO(3088) | Task_spawn@resource://gre/modules/Task.jsm:166:12 01:02:02 INFO - GECKO(3088) | Tester_execTest@chrome://mochikit/content/browser-test.js:794:9 01:02:02 INFO - GECKO(3088) | Tester.prototype.nextTest</<@chrome://mochikit/content/browser-test.js:694:7 01:02:02 INFO - GECKO(3088) | SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:795:59 01:02:02 INFO - GECKO(3088) | console.error: 01:02:02 INFO - GECKO(3088) | Message: TypeError: creationInfo is null 01:02:02 INFO - GECKO(3088) | Stack: 01:02:02 INFO - GECKO(3088) | execute@resource://gre/modules/PlacesTransactions.jsm:1632:5 01:02:02 INFO - GECKO(3088) | Async*transact/promise<@resource://gre/modules/PlacesTransactions.jsm:546:26 01:02:02 INFO - GECKO(3088) | async*enqueue/promise<@resource://gre/modules/PlacesTransactions.jsm:472:58 01:02:02 INFO - GECKO(3088) | promise callback*enqueue@resource://gre/modules/PlacesTransactions.jsm:472:19 01:02:02 INFO - GECKO(3088) | transact@resource://gre/modules/PlacesTransactions.jsm:543:19 01:02:02 INFO - GECKO(3088) | transact@resource://gre/modules/PlacesTransactions.jsm:231:16 01:02:02 INFO - GECKO(3088) | paste/<@chrome://browser/content/places/controller.js:1294:30 01:02:02 INFO - GECKO(3088) | async*batch/<@resource://gre/modules/PlacesTransactions.jsm:566:20 01:02:02 INFO - GECKO(3088) | async*enqueue/promise<@resource://gre/modules/PlacesTransactions.jsm:472:58 01:02:02 INFO - GECKO(3088) | promise callback*enqueue@resource://gre/modules/PlacesTransactions.jsm:472:19 01:02:02 INFO - GECKO(3088) | batch@resource://gre/modules/PlacesTransactions.jsm:561:12 01:02:02 INFO - GECKO(3088) | batch@resource://gre/modules/PlacesTransactions.jsm:340:14 01:02:02 INFO - GECKO(3088) | paste@chrome://browser/content/places/controller.js:1279:15 01:02:02 INFO - GECKO(3088) | async*copy_toolbar_shortcut@chrome://mochitests/content/browser/browser/components/places/tests/browser/browser_copy_query_without_tree.js:24:9 01:02:02 INFO - GECKO(3088) | Async*Tester_execTest/<@chrome://mochikit/content/browser-test.js:803:21 01:02:02 INFO - GECKO(3088) | TaskImpl_run@resource://gre/modules/Task.jsm:331:42 01:02:02 INFO - GECKO(3088) | TaskImpl@resource://gre/modules/Task.jsm:280:3 01:02:02 INFO - GECKO(3088) | asyncFunction@resource://gre/modules/Task.jsm:252:14 01:02:02 INFO - GECKO(3088) | Task_spawn@resource://gre/modules/Task.jsm:166:12 01:02:02 INFO - GECKO(3088) | Tester_execTest@chrome://mochikit/content/browser-test.js:794:9 01:02:02 INFO - GECKO(3088) | Tester.prototype.nextTest</<@chrome://mochikit/content/browser-test.js:694:7 01:02:02 INFO - GECKO(3088) | SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:795:59 01:02:02 INFO - TEST-INFO | started process screenshot 01:02:02 INFO - TEST-INFO | screenshot: exit 0 01:02:02 INFO - Buffered messages logged at 01:02:02 01:02:02 INFO - Entering test bound copy_toolbar_shortcut 01:02:02 INFO - must wait for load 01:02:02 INFO - must wait for focus 01:02:02 INFO - TEST-PASS | browser/components/places/tests/browser/browser_copy_query_without_tree.js | Clipboard has the given value - 01:02:02 INFO - Buffered messages finished 01:02:02 INFO - TEST-UNEXPECTED-FAIL | browser/components/places/tests/browser/browser_copy_query_without_tree.js | Uncaught exception - at resource://gre/modules/PlacesTransactions.jsm:1632 - TypeError: creationInfo is null 01:02:02 INFO - Stack trace: 01:02:02 INFO - execute@resource://gre/modules/PlacesTransactions.jsm:1632:5 01:02:02 INFO - Async*transact/promise<@resource://gre/modules/PlacesTransactions.jsm:546:26 01:02:02 INFO - async*enqueue/promise<@resource://gre/modules/PlacesTransactions.jsm:472:58 01:02:02 INFO - promise callback*enqueue@resource://gre/modules/PlacesTransactions.jsm:472:19 01:02:02 INFO - transact@resource://gre/modules/PlacesTransactions.jsm:543:19 01:02:02 INFO - transact@resource://gre/modules/PlacesTransactions.jsm:231:16 01:02:02 INFO - paste/<@chrome://browser/content/places/controller.js:1294:30 01:02:02 INFO - async*batch/<@resource://gre/modules/PlacesTransactions.jsm:566:20 01:02:02 INFO - async*enqueue/promise<@resource://gre/modules/PlacesTransactions.jsm:472:58 01:02:02 INFO - promise callback*enqueue@resource://gre/modules/PlacesTransactions.jsm:472:19 01:02:02 INFO - batch@resource://gre/modules/PlacesTransactions.jsm:561:12 01:02:02 INFO - batch@resource://gre/modules/PlacesTransactions.jsm:340:14 01:02:02 INFO - paste@chrome://browser/content/places/controller.js:1279:15 01:02:02 INFO - async*copy_toolbar_shortcut@chrome://mochitests/content/browser/browser/components/places/tests/browser/browser_copy_query_without_tree.js:24:9 01:02:02 INFO - Async*Tester_execTest/<@chrome://mochikit/content/browser-test.js:803:21 01:02:02 INFO - Tester_execTest@chrome://mochikit/content/browser-test.js:794:9 01:02:02 INFO - Tester.prototype.nextTest</<@chrome://mochikit/content/browser-test.js:694:7 01:02:02 INFO - SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:795:59 01:02:02 INFO - Leaving test bound copy_toolbar_shortcut
Summary: Intermittent browser/components/places/tests/browser/browser_copy_query_without_tree.js | Uncaught exception - at resource://gre/modules/PlacesTransactions.jsm:1632 - TypeError: creationInfo is null → Intermittent browser/components/places/tests/browser/browser_copy_query_without_tree.js | Uncaught exception - at PlacesTransactions.jsm:1632 - TypeError: creationInfo is null
this failure has increased recently with 31 instances in the last 7 days: https://brasstacks.mozilla.com/orangefactor/index.html?display=Bug&bugid=1395526 these are primarily on opt/pgo builds, not really on debug. ::mak, is this something you can help set a priority on and work on it or find someone to work on it when appropriate?
Flags: needinfo?(mak77)
Whiteboard: [stockwell needswork]
I'll take it.
Assignee: nobody → standard8
Flags: needinfo?(mak77)
Priority: P5 → P2
FTR, I tried a push to try server with added debug, unfortunately I couldn't get it to fail on a simple opt build with 500 retriggers... Next steps are to try and simplify the debug & land it, or see if I can get a pgo build running.
New try build with some lower-impact debug and hopefully with pgo builds: https://treeherder.mozilla.org/#/jobs?repo=try&revision=5b106fcf6227476ca14306eb4d05a5de6dfec844
Comment on attachment 8913726 [details] Bug 1395526 - Avoid potential race with places initialisation when clipboard tests are starting to avoid intermittents. https://reviewboard.mozilla.org/r/185122/#review190146 This has had 82 green runs on try with an expanded debug version. I've just triggered some more with this landable version. ::: browser/components/places/tests/browser/head.js:79 (Diff revision 1) > * @param aFlavor > * Data flavor to expect. > */ > function promiseClipboard(aPopulateClipboardFn, aFlavor) { > - return new Promise(resolve => { > - waitForClipboard(data => !!data, aPopulateClipboardFn, resolve, aFlavor); > + return new Promise((resolve, reject) => { > + waitForClipboard(data => !!data, aPopulateClipboardFn, resolve, reject, aFlavor); Note: this is a separate bug fix - the fourth argument to waitForClipboard was missing, that meant we could wait on any flavor rather than the one we wanted.
Comment on attachment 8913726 [details] Bug 1395526 - Avoid potential race with places initialisation when clipboard tests are starting to avoid intermittents. https://reviewboard.mozilla.org/r/185122/#review190524 ::: browser/components/nsBrowserGlue.js:1633 (Diff revision 1) > Cu.reportError(ex); > }).then(() => { > // NB: deliberately after the catch so that we always do this, even if > // we threw halfway through initializing in the Task above. > Services.obs.notifyObservers(null, "places-browser-init-complete"); > + this._placesBrowserInitComplete = true; nit: in one case you set the var before notifying, in the other case you set it after notifying, you should probably set it always before, just for consistency. ::: browser/components/places/tests/browser/browser_copy_query_without_tree.js:31 (Diff revision 1) > + > + try { > - await library.ContentTree.view.controller.paste(); > + await library.ContentTree.view.controller.paste(); > + } catch (ex) { > + Assert.ok(false, `paste threw error: ${ex}`); > + } I was actually expecting add_task to already fail and print out the exception if an await throws... is it not the case? ::: browser/components/places/tests/browser/head.js:478 (Diff revision 1) > }; > + > +function promisePlacesInitComplete() { > + return new Promise(resolve => { > + const gBrowserGlue = Cc["@mozilla.org/browser/browserglue;1"] > + .getService(Ci.nsIObserver); nit: align dot on [ ::: browser/components/places/tests/browser/head.js:484 (Diff revision 1) > + > + let observer = (aSubject, aTopic2, aData) => { > + Services.obs.removeObserver(observer, aTopic2); > + resolve({subject: aSubject, data: aData}); > + }; > + Services.obs.addObserver(observer, "places-browser-init-complete"); TestUtils.topicObserved (there is potential for a follow up mentored bug to use that in Places instead of promiseTopicObserved) ::: browser/components/places/tests/browser/head.js:486 (Diff revision 1) > + Services.obs.removeObserver(observer, aTopic2); > + resolve({subject: aSubject, data: aData}); > + }; > + Services.obs.addObserver(observer, "places-browser-init-complete"); > + > + gBrowserGlue.observe({wrappedJSObject: fxAccounts}, "browser-glue-test", maybe not fxAccounts :)
Attachment #8913726 - Flags: review?(mak77) → review+
Comment on attachment 8913726 [details] Bug 1395526 - Avoid potential race with places initialisation when clipboard tests are starting to avoid intermittents. https://reviewboard.mozilla.org/r/185122/#review190524 > I was actually expecting add_task to already fail and print out the exception if an await throws... is it not the case? I think I did that as part of debugging or something, and forgot to take out the try/catch. In any case, I think you're right, so I'll take it out.
Pushed by mbanner@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/15ae046e02c5 Avoid potential race with places initialisation when clipboard tests are starting to avoid intermittents. r=mak
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 58
I don't see these failures on Beta. I assume this is tied to async Places transactions.
Whiteboard: [stockwell needswork] → [stockwell fixed:race]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: