Closed Bug 1026816 Opened 10 years ago Closed 10 years ago

Privileged WebaPI Verifier crashes on B2G 1.4

Categories

(Firefox OS Graveyard :: Certification Suite, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jgriffin, Assigned: dminor)

References

Details

The cert suite die when run on my 1.4 hamachi because a crash occurs while running the Privileged WebAPI Verifier (the Web WebAPI Verifier works OK).

The logcat shows:

I/Gecko   (  137): 1403049306723	Marionette	DEBUG	Got request: execute, data: {"to":"0","sessionId":{"rotatable":true,"browserVersion":"32.0a2","takesScreenshot":true,"appBuildId":"20140616000203","XULappId":"{3c2e2abc-06d4-11e1-ac3b-374f68613e61}","secureSsl":false,"platform":"ANDROID","browserName":"B2G","version":"32.0a2","device":"msm7627a","b2g":true,"nativeEvents":false,"platformVersion":"32.0a2","takesElementScreenshot":true,"platformName":"ANDROID","handlesAlerts":false},"name":"executeScript","parameters":{"scriptTimeout":null,"specialPowers":false,"script":"\n    var launchWithName = function(name) {\n        let apps = window.wrappedJSObject.applications || window.wrappedJSObject.Applications;\n        let installedApps = apps.installedApps;\n        for (let manifestURL in installedApps) {\n          let app = installedApps[manifestURL];\n          let origin = null;\n          let entryPoints = app.manifest.entry_points;\n          if (entryPoints) {\n            for (let ep in entryPoints) {\n              let cu
I/Gecko   (  137): 1403049306834	Marionette	INFO	sendToClient: {"from":"0","value":true}, {f8febf9c-3e4d-4123-b1b3-4ad94e2b7b97}, {f8febf9c-3e4d-4123-b1b3-4ad94e2b7b97}
I/Gecko   (  137): 1403049307146	Marionette	INFO	sendToClient: {"from":"0","ok":true}, {84d344fc-d878-4943-a863-255d575ad442}, {84d344fc-d878-4943-a863-255d575ad442}
E/GeckoConsole( 1154): [JavaScript Warning: "No meta-viewport tag found. Please explicitly specify one to prevent unexpected behavioural changes in future versions. For more help https://developer.mozilla.org/en/docs/Mozilla/Mobile/Viewport_meta_tag" {file: "app://privileged-webapi-verifier/index.html" line: 0}]
E/GeckoConsole( 1154): [JavaScript Warning: "Ignoring get or set of property that has [LenientThis] because the "this" object is incorrect." {file: "app://privileged-webapi-verifier/idlharness.js" line: 1405}]
E/GeckoConsole( 1154): [JavaScript Error: "this._multiplexStream is null" {file: "jar:file:///system/b2g/omni.ja!/components/TCPSocket.js" line: 197}]
I/Gecko   (  137): 
I/Gecko   (  137): ###!!! [Parent][MessageChannel] Error: Channel error: cannot send/recv
I/Gecko   (  137): 
I/Gecko   (  137): [Parent 137] WARNING: pipe error (148): Connection reset by peer: file ../../../gecko/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 450
I/GeckoDump(  137): Crash reporter : Can't fetch app.reportCrashes. Exception: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getBoolPref]"  nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)"  location: "JS frame :: chrome://b2g/content/shell.js :: shell_reportCrash :: line 149"  data: no]
This works ok on my Flame running 1.4, so this is likely something device specific, hopefully just on the Hamachi.

These tests are auto-generated based upon IDL files. The test harness allows some files to be present but untested. The untested files are controlled by certsuite/webidl/manifest.json, so sadly the way ahead is to add files to the untested section of that file until the crash goes away.

I'll see if I can reproduce this on one of my other phones, otherwise I might need a Hamachi to resolve this.
Assignee: nobody → dminor
That's "good" that it's device-specific.  In that case, I'm more interested in what we can do to detect and report the failure, since we won't ever be able to identify a magic set of files that works on all arbitrary devices.

Currently, after that test app crashes, the cert suite times out and aborts any further webapi tests, continuing directly to web-platform-tests.  The results.json file that is produced after the tests are run is completely empty, even though the omni-analyzer and some other tests ran successfully.

It would be better to timeout specific webidl tests, note that in the log, and then continue to the next.

It would be even better if we could report which test was running when the crash occurred.  I know that's considerably more complicated; we can discuss it at Monday's cert suite meeting.
I have a pull request open here [1] to let the tests continue after a timeout in the harness.

There is an add_start_callback in the webidl testharness that we might be able to use to log or POST back to the harness each time a test starts so we'll have the name of the last test started before a crash. I'll take a look next week.

[1] https://github.com/mozilla-b2g/fxos-certsuite/pull/122
Filed Bug 1029093 to handle logging of last test started.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.