Closed Bug 1033059 Opened 10 years ago Closed 10 years ago

multiple tests time out due to "invalid path component"

Categories

(Firefox Graveyard :: Webapp Runtime, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Firefox 33

People

(Reporter: myk, Assigned: myk)

References

Details

Attachments

(1 file)

On some webapprt-test-chrome runs on the Cedar branch, a bunch of tests are timing out. On Mac, it's due to "invalid path component" at <http://mxr.mozilla.org/mozilla-central/source/toolkit/webapps/WebappOSUtils.jsm?rev=05d9e7977182#232>, which is Mac-only: 00:59:59 INFO - TEST-START | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js 00:59:59 INFO - ************************* 00:59:59 INFO - A coding exception was thrown and uncaught in a Task. 00:59:59 INFO - Full message: TypeError: invalid path component 00:59:59 INFO - Full stack: join@resource://gre/modules/osfile/ospath_unix.jsm:87:1 00:59:59 INFO - this.WebappOSUtils.getPackagePath@resource://gre/modules/WebappOSUtils.jsm:101:19 00:59:59 INFO - this.DOMApplicationRegistry.addInstalledApp<@resource://gre/modules/Webapps.jsm:2278:19 00:59:59 INFO - this.startup/<@resource://app/modules/Startup.jsm:111:1 00:59:59 INFO - TaskImpl_run@resource://gre/modules/Task.jsm:301:39 00:59:59 INFO - Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:863:23 00:59:59 INFO - this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:742:7 00:59:59 INFO - openModalWindow@resource://gre/components/nsPrompter.js:369:5 00:59:59 INFO - ModalPrompter.prototype.openPrompt@resource://gre/components/nsPrompter.js:552:9 00:59:59 INFO - ModalPrompter.prototype.confirmEx@resource://gre/components/nsPrompter.js:696:9 00:59:59 INFO - Prompter.prototype.confirmEx@resource://gre/components/nsPrompter.js:78:16 00:59:59 INFO - this.WebappManager.doInstall@resource://app/modules/WebappManager.jsm:54:18 00:59:59 INFO - this.WebappManager.observe@resource://app/modules/WebappManager.jsm:30:11 00:59:59 INFO - doInstall/installApp<@resource://gre/modules/Webapps.jsm:1956:1 00:59:59 INFO - doInstall/<@resource://gre/modules/Webapps.jsm:1989:11 00:59:59 INFO - ************************* 00:59:59 INFO - ************************* 00:59:59 INFO - A coding exception was thrown and uncaught in a Task. 00:59:59 INFO - Full message: TypeError: invalid path component 00:59:59 INFO - Full stack: join@resource://gre/modules/osfile/ospath_unix.jsm:87:1 00:59:59 INFO - this.WebappOSUtils.getPackagePath@resource://gre/modules/WebappOSUtils.jsm:101:19 00:59:59 INFO - this.DOMApplicationRegistry.addInstalledApp<@resource://gre/modules/Webapps.jsm:2278:19 00:59:59 INFO - this.startup/<@resource://app/modules/Startup.jsm:111:1 00:59:59 INFO - this.startup@resource://app/modules/Startup.jsm:80:1 00:59:59 INFO - observeInstall@chrome://webapprt/content/mochitest-shared.js:71:19 00:59:59 INFO - doInstall/installApp<@resource://gre/modules/Webapps.jsm:1956:1 00:59:59 INFO - doInstall/<@resource://gre/modules/Webapps.jsm:1989:11 00:59:59 INFO - ************************* 01:00:05 INFO - TEST-KNOWN-FAIL | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js | A promise chain failed to handle a rejection 01:00:44 INFO - libpng warning: zero length keyword 01:00:44 INFO - libpng warning: Empty language field in iTXt chunk 01:00:44 INFO - TEST-INFO | screencapture: exit 0 01:00:44 WARNING - TEST-UNEXPECTED-FAIL | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js | Test timed out 01:00:44 WARNING - TEST-UNEXPECTED-FAIL | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js | Cleanup function threw an exception at chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js:35 - TypeError: mutObserverAlarmSet is null - https://tbpl.mozilla.org/php/getParsedLog.php?id=42423278&full=1&branch=cedar The Windows and Linux runs don't provide as much info, unfortunately, saying only that "a promise chain failed to handle a rejection." And they don't have the line in question. But the set of tests that time out is similar, so I suspect there's a common cause. Here's Windows: 23:24:37 INFO - TEST-START | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js 23:24:37 INFO - TEST-KNOWN-FAIL | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js | A promise chain failed to handle a rejection 23:24:42 INFO - TEST-KNOWN-FAIL | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js | A promise chain failed to handle a rejection 23:25:23 INFO - TEST-INFO | screenshot: exit status 0 23:25:23 WARNING - TEST-UNEXPECTED-FAIL | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js | Test timed out 23:25:23 WARNING - TEST-UNEXPECTED-FAIL | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js | Cleanup function threw an exception at chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js:35 - TypeError: mutObserverAlarmSet is null - https://tbpl.mozilla.org/php/getParsedLog.php?id=42419269&full=1&branch=cedar And here's Linux: 20:59:49 INFO - TEST-START | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js 20:59:55 INFO - TEST-KNOWN-FAIL | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js | A promise chain failed to handle a rejection 21:00:34 INFO - Xlib: extension "RANDR" missing on display ":0". 21:00:35 INFO - TEST-INFO | screentopng: exit 0 21:00:35 WARNING - TEST-UNEXPECTED-FAIL | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js | Test timed out 21:00:35 WARNING - TEST-UNEXPECTED-FAIL | chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js | Cleanup function threw an exception at chrome://mochitests/content/webapprtChrome/webapprt/test/chrome/browser_alarm.js:35 - TypeError: mutObserverAlarmSet is null - https://tbpl.mozilla.org/php/getParsedLog.php?id=42411294&tree=Cedar&full=1
I can reproduce the Windows failure locally, although I can't reproduce the Mac one. Perhaps because Mac puts apps in a different place (~/Applications) on the test boxes? I'll try to reproduce on Linux next.
Blocks: 1033643
becomeWebapp calls confirmInstall, but it doesn't wait for it to complete before calling startup, which calls addInstalledApp, which tries to add the app, except that it isn't actually installed, so WebappOSUtils.getPackagePath returns null, which _computeFileHash passes to nsIFile.initWithPath, triggering an exception. There's probably more we can do to make addInstalledApp more robust against failure, but this patch makes the test await confirmInstall before calling startup, so the app is registered in the registry by the time startup calls addInstalledApp. This fixes the bug on Windows and Linux. I can't confirm that it fixes the problem on Mac, since I can't reproduce. That might end up being a different problem. Either way, we should land this fix and then see if that problem continues appearing on Mac.
Assignee: nobody → myk
Status: NEW → ASSIGNED
Attachment #8449720 - Flags: review?(mar.castelluccio)
Attachment #8449720 - Flags: review?(mar.castelluccio) → review+
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 33
Product: Firefox → Firefox Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: