Closed Bug 1016854 Opened 10 years ago Closed 10 years ago

[Contacts] Intermittent MarionetteJS failure on Travis: Contacts > Delete > Edit menu is not visible on search mode: Error: timeout exceeded!

Categories

(Firefox OS Graveyard :: Gaia::Contacts, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: julienw, Unassigned)

Details

(Keywords: intermittent-failure)

Attachments

(1 file, 1 obsolete file)

46 bytes, text/x-github-pull-request
kgrandon
: review+
Details | Review
This happens on master:


 3) Contacts > Delete > Edit menu is not visible on search mode:

Error: timeout exceeded!

at Object.Client.waitForSync (/home/travis/build/mozilla-b2g/gaia/node_modules/marionette-client/lib/marionette/client.js:682:16)

at Object.Client.waitFor (/home/travis/build/mozilla-b2g/gaia/node_modules/marionette-client/lib/marionette/client.js:650:60)

at Object.MarionetteHelper.waitForElement (/home/travis/build/mozilla-b2g/gaia/node_modules/marionette-helper/index.js:142:12)

at Object.onDisplayed (/home/travis/build/mozilla-b2g/gaia/apps/communications/contacts/test/marionette/delete_contacts_test.js:37:36)

at Object.Client._handleCallback (/home/travis/build/mozilla-b2g/gaia/node_modules/marionette-client/lib/marionette/client.js:484:23)

at /home/travis/build/mozilla-b2g/gaia/node_modules/marionette-client/lib/marionette/client.js:510:21

at TcpSync.send (/home/travis/build/mozilla-b2g/gaia/node_modules/marionette-client/lib/marionette/drivers/tcp-sync.js:100:10)

at Object.send (/home/travis/build/mozilla-b2g/gaia/node_modules/marionette-client/lib/marionette/client.js:457:36)

at Object.Client._sendCommand (/home/travis/build/mozilla-b2g/gaia/node_modules/marionette-client/lib/marionette/client.js:503:19)

at Object.Element._sendCommand (/home/travis/build/mozilla-b2g/gaia/node_modules/marionette-client/lib/marionette/element.js:49:21)

at Object.displayed (/home/travis/build/mozilla-b2g/gaia/node_modules/marionette-client/lib/marionette/element.js:287:19)

at Context.<anonymous> (/home/travis/build/mozilla-b2g/gaia/apps/communications/contacts/test/marionette/delete_contacts_test.js:32:14)

at callFn (/home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runnable.js:223:21)

at Test.Runnable.run (/home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runnable.js:216:7)

at Runner.runTest (/home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runner.js:374:10)

at /home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runner.js:452:12

at next (/home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runner.js:299:14)

at /home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runner.js:309:7

at next (/home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runner.js:247:23)

at /home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runner.js:271:7

at done (/home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runnable.js:185:5)

at callFn (/home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runnable.js:228:7)

at Hook.Runnable.run (/home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runnable.js:216:7)

at next (/home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runner.js:259:10)

at /home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runner.js:271:7

at done (/home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runnable.js:185:5)

at /home/travis/build/mozilla-b2g/gaia/node_modules/mocha/lib/runnable.js:199:9

at Object.executeHook (/home/travis/build/mozilla-b2g/gaia/node_modules/marionette-client/lib/marionette/client.js:369:18)

at process._tickCallback (node.js:415:13)


Francisco, are you the right person to look at this?
Flags: needinfo?(francisco)
A bit dissapointing to see how this integration test seems to be failing 21% of the cases:

https://travis-ci.org/arcturus/gaia/builds/26240131
Flags: needinfo?(francisco)
Based on the screenshot, the test is working, we should just update the final wait I think.

client.helper.waitForElement(selectors.editMenu) seems to not be working so well when the keyboard is up.
Attached file Github pull request (obsolete) —
This is a potential patch. It seems like we should actually wait for the buttons to be hidden. We are currently doing the opposite assertion, which may fail because the buttons animate down.
Comment on attachment 8430237 [details] [review]
Github pull request

I have a green on travis, and this logic makes sense to me. Francisco, what do you think?
Attachment #8430237 - Flags: review?(francisco)
Ok folks, 

I think I got it. Problem was related to the keyboard, and how te test was checking that one element was hidden or not.

We were checking the position of the element respect of the body, and that works when the keyboard is closed, but if the keyboard is open, or closing or opening, that changes.

If the machine is not overloaded and the keyboard has enough time to dissapear everything was working right, in cases of high load, we got the intermitents.

Got the test working, and used Kevin's trick to run it against my gaia repo 20 times, working fine all of them:

https://travis-ci.org/arcturus/gaia/builds/26285646

Now I'll do the proper PR (without the travis changes) to fix this issue.

Also I'm creating a small script to run against your own gaia repo to perform this repetitive test agains a single app or single test to check for intermitents.

Thanks folks!
(In reply to Kevin Grandon :kgrandon from comment #4)
> Comment on attachment 8430237 [details] [review]
> Github pull request
> 
> I have a green on travis, and this logic makes sense to me. Francisco, what
> do you think?

Great! Just posted my latest comment without seeing your work. I got to the same solution asking for the editMenu to be not visible, run it 20 times and not intermitent anymore.

So mergin!

Thanks Kevin!
Comment on attachment 8430237 [details] [review]
Github pull request

Thanks again!
Attachment #8430237 - Flags: review?(francisco) → review+
Landed:

https://github.com/KevinGrandon/gaia/commit/8118e2a259da4bc53941ce77b611afd5f0cbc9df
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
This still seems to be a problem, the build for this fix on master merge seemed to fail with the same problem:

https://travis-ci.org/mozilla-b2g/gaia/jobs/26288901

and pull requests still show some failures with this error.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Ah, I think the element is perhaps already gone by the time we call client.helper.waitForElement(). I think we should probably just remove that assertion, I'm not sure there's a lot of value in it.
Attached file Pointer to PR 19830
Unfortunately we need to check that cause that's precisely the test that we added to check that the menu dissappears when you are in edit mode and click on search.

I've run this PR 10 times in travis hopefully this works

Thanks!
Attachment #8430237 - Attachment is obsolete: true
Attachment #8431649 - Flags: review?(kgrandon)
Comment on attachment 8431649 [details] [review]
Pointer to PR 19830

Nice, I didn't realize we had that helper so it's good to know about!
Attachment #8431649 - Flags: review?(kgrandon) → review+
Landed: https://github.com/mozilla-b2g/gaia/commit/c2583e1d02bf0b2840f96adb66c5ea6517db1371
Status: REOPENED → RESOLVED
Closed: 10 years ago10 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: