Closed Bug 1052272 Opened 10 years ago Closed 10 years ago

TEST-UNEXPECTED-FAIL | /builds/slave/test/gaia/apps/keyboard/test/marionette/uninstallation_test.js | Show Keyboard App after uninstallation "before each" hook

Categories

(Firefox OS Graveyard :: Gaia::System::Input Mgmt, defect)

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
2.1 S2 (15aug)

People

(Reporter: rudyl, Assigned: mnjul)

References

Details

(Keywords: intermittent-failure, Whiteboard: [p=1])

Attachments

(1 file)

example failure, 
https://tbpl.mozilla.org/php/getParsedLog.php?id=45723138&tree=Gaia-Try

--
2:08:18     INFO -    JavaScriptError: (17) TypeError: this.runningLayouts[layout.manifestURL] is undefined
22:08:18     INFO -    Remote Stack:
22:08:18     INFO -    @app://system.gaiamobile.org/js/input_frame_manager.js, line 57
22:08:18     INFO -        at Error.MarionetteError (/builds/slave/test/gaia/node_modules/marionette-client/lib/marionette/error.js:67:13)
22:08:18     INFO -        at Object.Client._handleCallback (/builds/slave/test/gaia/node_modules/marionette-client/lib/marionette/client.js:476:19)
22:08:18     INFO -        at /builds/slave/test/gaia/node_modules/marionette-client/lib/marionette/client.js:510:21
22:08:18     INFO -        at TcpSync.send (/builds/slave/test/gaia/node_modules/marionette-client/lib/marionette/drivers/tcp-sync.js:153:10)
22:08:18     INFO -        at Object.send (/builds/slave/test/gaia/node_modules/marionette-client/lib/marionette/client.js:457:36)
22:08:18     INFO -        at Object.Client._sendCommand (/builds/slave/test/gaia/node_modules/marionette-client/lib/marionette/client.js:503:19)
22:08:18     INFO -        at Object._executeScript (/builds/slave/test/gaia/node_modules/marionette-client/lib/marionette/client.js:1468:19)
22:08:18     INFO -        at Object.executeAsyncScript (/builds/slave/test/gaia/node_modules/marionette-client/lib/marionette/client.js:1249:19)
22:08:18     INFO -        at Object.Mgmt.getAll (/builds/slave/test/gaia/node_modules/marionette-apps/lib/mgmt.js:37:19)
22:08:18     INFO -        at list (/builds/slave/test/gaia/node_modules/marionette-apps/lib/list.js:14:20)
22:08:18     INFO -        at getApp (/builds/slave/test/gaia/node_modules/marionette-apps/lib/getapp.js:45:10)
22:08:18     INFO -        at switchToApp (/builds/slave/test/gaia/node_modules/marionette-apps/lib/switchtoapp.js:20:10)
22:08:18     INFO -        at Context.<anonymous> (/builds/slave/test/gaia/apps/keyboard/test/marionette/uninstallation_test.js:90:17)
22:08:18     INFO -        at callFn (/builds/slave/test/gaia/node_modules/mocha/lib/runnable.js:223:21)
22:08:18     INFO -        at Hook.Runnable.run (/builds/slave/test/gaia/node_modules/mocha/lib/runnable.js:216:7)
22:08:18     INFO -        at next (/builds/slave/test/gaia/node_modules/mocha/lib/runner.js:258:10)
22:08:18     INFO -        at /builds/slave/test/gaia/node_modules/mocha/lib/runner.js:270:7
22:08:18     INFO -        at done (/builds/slave/test/gaia/node_modules/mocha/lib/runnable.js:185:5)
22:08:18     INFO -        at /builds/slave/test/gaia/node_modules/mocha/lib/runnable.js:199:9
22:08:18     INFO -        at Object.executeHook (/builds/slave/test/gaia/node_modules/marionette-client/lib/marionette/client.js:369:18)
22:08:18     INFO -        at process._tickCallback (node.js:415:13)
Hi John,

This test was pretty stable before.
Do you think this intermittent failure has anything to do with the refactoring in Bug 1044744?

Thanks.
Flags: needinfo?(jlu)
I'll look into this. Keeping the NI flag to remind myself.
It's pretty reproducible on my side. Taking this.
Assignee: nobody → jlu
Blocks: 1044744
Flags: needinfo?(jlu)
Whiteboard: [p=1]
Target Milestone: --- → 2.1 S2 (15aug)
Cause: |KeyboardManager.removeKeyboard()| did not invalidate the information stored in |KeyboardManager.showingLayoutInfo|. Thus, when |KeyboardManager.resetShowingKeyboard| calls |InputFrameManager.resetFrame|, an invalid layout information may be passed into it, resulting in the javascript error.

Added a |resetShowingLayout| in removeKeybaord to mitigate this.

The non-invalidation had actually existed before bug 1044744. In previous versions, if you dump |frame.dataset.frameManifestURL| in |KeyboardManager.resetKeyboardFrame|, you can see that the operations are actually being acted on a defunct frame and those operations seem to only fail silently.

What's really strange is that this failing test seemed to always fail on my local machine, and, judging from the cause of the failure, should not be intermittent at all. Dunno why my original bug 1044744 patch at TBPL didn't go wrong.

Anyway, let's have the patch tested.
Comment on attachment 8471417 [details] [review]
Proposed Patch (PR @ GitHub)

TBPL seems happy with this patch. Tim, could you review this? Thanks.
Attachment #8471417 - Flags: review?(timdream)
Attachment #8471417 - Flags: review?(timdream) → review+
Master: https://github.com/mozilla-b2g/gaia/commit/409833a50b449339599d4071a637ef8f099fe2ab
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.

Attachment

General

Created:
Updated:
Size: