Closed Bug 1005272 Opened 10 years ago Closed 10 years ago

Intermittent test_settings_change_keyboard_language.py test_settings_change_keyboard_language.TestChangeKeyboardLanguage.test_change_keyboard_language_settings | TimeoutException: Timed out after 10.1 seconds

Categories

(Firefox OS Graveyard :: Gaia::UI Tests, defect, P1)

x86_64
Linux
defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: RyanVM, Assigned: zcampbell)

References

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

46 bytes, text/x-github-pull-request
viorela
: review+
Details | Review
https://tbpl.mozilla.org/php/getParsedLog.php?id=38941165&tree=Fx-Team

b2g_ubuntu64_vm fx-team opt test gaia-ui-test on 2014-05-02 08:11:32 PDT for push 35c124cab3a8
slave: tst-linux64-spot-506

08:52:46     INFO -  TEST-START test_settings_change_keyboard_language.py
08:53:11     INFO -  test_change_keyboard_language_settings (test_settings_change_keyboard_language.TestChangeKeyboardLanguage) ... ERROR
08:53:11     INFO -  ======================================================================
08:53:11     INFO -  ERROR: None
08:53:11     INFO -  ----------------------------------------------------------------------
08:53:11     INFO -  Traceback (most recent call last):
08:53:11     INFO -    File "/builds/slave/test/build/venv/local/lib/python2.7/site-packages/marionette/marionette_test.py", line 170, in run
08:53:11     INFO -      testMethod()
08:53:11     INFO -    File "/builds/slave/test/gaia/tests/python/gaia-ui-tests/gaiatest/tests/functional/settings/test_settings_change_keyboard_language.py", line 32, in test_change_keyboard_language_settings
08:53:11     INFO -      select_keyboard.wait_for_built_in_keyboard(u'Espa\u00F1ol')
08:53:11     INFO -    File "/builds/slave/test/gaia/tests/python/gaia-ui-tests/gaiatest/apps/settings/regions/keyboard.py", line 40, in wait_for_built_in_keyboard
08:53:11     INFO -      self.wait_for_condition(lambda m: self.is_built_in_keyboard_present(language))
08:53:11     INFO -    File "/builds/slave/test/gaia/tests/python/gaia-ui-tests/gaiatest/apps/base.py", line 54, in wait_for_condition
08:53:11     INFO -      Wait(self.marionette, timeout).until(method, message=message)
08:53:11     INFO -    File "/builds/slave/test/build/venv/local/lib/python2.7/site-packages/marionette/wait.py", line 143, in until
08:53:11     INFO -      cause=last_exc)
08:53:11    ERROR -  TimeoutException: TimeoutException: Timed out after 10.1 seconds
08:53:11     INFO -  TEST-UNEXPECTED-FAIL | test_settings_change_keyboard_language.py test_settings_change_keyboard_language.TestChangeKeyboardLanguage.test_change_keyboard_language_settings |
08:53:11     INFO -  ----------------------------------------------------------------------
08:53:11     INFO -  Ran 1 test in 24.960s
08:53:11  WARNING -  FAILED (errors=1)
Started to see this a few times a day, disabling for now: https://github.com/mozilla-b2g/gaia/commit/71ceb66909345ce4423daf2174dfa98d86676ce9

Zac - Any chance you could get someone looking into this? Thanks!
Flags: needinfo?(zcampbell)
Will look at this.
Assignee: nobody → zcampbell
Flags: needinfo?(zcampbell)
Rudy, I've experimented with adding a 2 second sleep in there, along the lines of us suspecting the observers were not on the checkbox, however it did not resolve the problem.

How might I wait for requirejs (that you mentioned yesterday) to be ready?

I'll try with an even longer wait but failing that I'll have to suspect that this is a real bug.
Flags: needinfo?(rlu)
A 5 second wait after opening the "add more keyboards" panel did not fix it. I'll have to get a console trace tomorrow if I can.

The console log from the TBPL builds is for a different test than the one that failed.
My previous reply is based on a rough understanding on the ongoing progress of the settings app refactoring.

Please allow me to redirect the ni to settings app peer, Author, since as I know, he also owns the keyboard panel of settings app.

Arthur, could you help us here?
We could talk about this face-to-face if you want to get the context soon. :)
Flags: needinfo?(rlu) → needinfo?(arthur.chen)
Or Ej might be able to help on this.
Flags: needinfo?(ejchen)
Even though we waited for requirejs to be loaded, we still can't fix the problem because we still have to wait for animations (like transitioned).

The safer way to handle this problem might be doing some tricks under settings_service.js to make sure we can send `specific` event out to tell observers (no matter marionette-js or pythong-ui-test) that our animations are done and we can manipulate elements from the dom tree.

it's just a rough thoughts, any ideas !?
Flags: needinfo?(ejchen)
@Zac, 

based on our offline discussions, can you postpone works related to this bug ? As you can see, in bug 973456, we are going to AMDize keyboard panel and in this way, we can make sure all `NEEDED` files (keyboard_helper, manifest_helper .. blah) would be loaded before this panel is shown.

This way, we can try do reduce any possible variable making the intermittent failure happened.

@Arthur, any feedback !?
(In reply to EJ Chen [:eragonj][:小龍哥] from comment #17)
> @Zac, 
> 
> based on our offline discussions, can you postpone works related to this bug
> ? As you can see, in bug 973456, we are going to AMDize keyboard panel and
> in this way, we can make sure all `NEEDED` files (keyboard_helper,
> manifest_helper .. blah) would be loaded before this panel is shown.
> 
> This way, we can try do reduce any possible variable making the intermittent
> failure happened.
> 
> @Arthur, any feedback !?

EJ, that's OK by me! That sounds like a perfect solution to this bug.

Let me know when you are working on this and we can try and re-enable the test at the same time.

Rudy, thanks also!
Depends on: 973456
Priority: -- → P1
As EJ commented, after 973456 lands, KeyboardHelper is guaranteed to be loaded before users are able to enbale/disable layouts.
Flags: needinfo?(arthur.chen)
250x on Travis, all green.
https://travis-ci.org/mozilla-b2g/gaia/builds/25069184
Attached file github pr
Attachment #8421752 - Flags: review?(viorela.ioia)
Comment on attachment 8421752 [details] [review]
github pr

r+ for pull: https://github.com/mozilla-b2g/gaia/pull/19200
Attachment #8421752 - Flags: review?(viorela.ioia) → review+
Thanks Viorela.
Merged:
https://github.com/mozilla-b2g/gaia/commit/60493960466497f7885d343edd8640bad3d18dfa
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
this is failing again Let's take a new look
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
I'll look at this again
The error message is different from the message before. The message shows that the panel is not opened as expected. We suspect that there is a race condition between the loading of the code for navigating panels and the tap action. We may need to wait for a while before tapping to see if it helps.
(In reply to Arthur Chen [:arthurcc] from comment #148)
> The error message is different from the message before. The message shows
> that the panel is not opened as expected. We suspect that there is a race
> condition between the loading of the code for navigating panels and the tap
> action. We may need to wait for a while before tapping to see if it helps.

I'm experimenting with waiting for the select box to close properly.
One thing worth mentioning is that after bug 973453 lands, body.dataset.ready will be set to true when the root panel is navigated to the viewport (all the scripts related to panel navigation is also loaded after that). Checking "body[data-ready="true"]" before tapping menu items of the root panel would make the tests more robust.
This has not failed for some time now

Please reopen if it fails again
Status: REOPENED → RESOLVED
Closed: 10 years ago10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: