Closed Bug 1125798 Opened 9 years ago Closed 6 years ago

Investigate camera switch source failure on automation

Categories

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

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: RobertC, Assigned: RobertC)

References

Details

Attachments

(2 files, 1 obsolete file)

test_camera_capture_video.TestCamera and test_camera_delete_captured_video.TestPreviewDelete are failign when trying to switch from photo to video.

http://jenkins1.qa.scl3.mozilla.com/view/UI/job/flame-kk-319.mozilla-central.ui.functional.smoke/297/HTML_Report/

Flame v3.0 319MB:
Device firmware (base) 	L1TC10011880
Device firmware (date) 	25 Jan 2015 12:13:41
Device firmware (incremental) 	eng.cltbld.20150125.151330
Device firmware (release) 	4.4.2
Device identifier 	flame
Gaia date 	24 Jan 2015 16:48:56
Gaia revision 	0f662dffef27
Gecko build 	20150125114434
Gecko revision 	fa91879c8428
Gecko version 	38.0a1

The issue can also be reproduce locally with automation 5 out of 5. The issue cannot be reproduced manually.
QA Whiteboard: [fxosqa-auto-s9]
As mentioned in Bug 1127702 this issue is reproduced on v2.2

passing build:
Gaia-Rev        46b590648007d51a0406b21b1d6f98eba8e3898e
Gecko-Rev       https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/b03afde7e699
Build-ID        20150128162504
Version         37.0a2
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20150128.201416
FW-Date         Wed Jan 28 20:14:27 EST 2015
Bootloader      L1TC000118D0

failing build:
Gaia-Rev        6e494f1d2676d231abba7dcc2e2822d1170d2d02
Gecko-Rev        https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/5e6fac01a72f
Build-ID        20150129003432
Version         37.0a2
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20150129.042943
FW-Date         Thu-Jan-29-04:29:53-EST-2015
Bootloader      L1TC000118D0


I was still able to reproduce this issue on latest b2g-inbound:
Unlike comment 0, the issue is now reproduced intermittently: 5 out of 10
Gaia-Rev        d926374e025158ed333f466f747a916052210f6a
Gecko-Rev       https://hg.mozilla.org/integration/b2g-inbound/rev/874f1d12f767
Build-ID        20150130003837
Version         38.0a1
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20150130.035913
FW-Date         Fri Jan 30 03:59:24 EST 2015
Bootloader      L1TC100118D0
regression range mozilla-inbound:
Last working:
Gaia-Rev        cba2f0bf49b882e0044c3cc583de8fcf83d2ffa4
Gecko-Rev       https://hg.mozilla.org/integration/mozilla-inbound/rev/892355089c65
Build-ID        20150123023435
Version         38.0a1
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20150123.055239
FW-Date         Fri Jan 23 05:52:49 EST 2015
Bootloader      L1TC100118D0

First broken:
Gaia-Rev        cba2f0bf49b882e0044c3cc583de8fcf83d2ffa4
Gecko-Rev       https://hg.mozilla.org/integration/mozilla-inbound/rev/dce617c41de7
Build-ID        20150123025533
Version         38.0a1
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20150123.042610
FW-Date         Fri Jan 23 04:26:20 EST 2015
Bootloader      L1TC100118D0
What the test script does, is to tap the video switch once it appears on the viewfinder, as below:

self.wait_for_element_not_displayed(*self._loading_screen_locator) # loading screen with camera icon gone
Wait(self.marionette).until(expected.element_displayed(switch)) # switch is displayed
Actions(self.marionette).press(switch).move_by_offset(0, 0).release().perform()# then immediately, tap it

The test is failing currently because now the switch is not responsive immediately once it appears on the screen.  It takes about a second of time for it to process the touch input.  (This is reproducible manually)
In other words, the startup time for the camera app takes longer than before.

Mike, is this a temporary thing or is such delay in UI response normal?
Flags: needinfo?(mhabicher)
I think there was a recent change to prevent a race condition. Wilson?
Flags: needinfo?(mhabicher) → needinfo?(wilsonpage)
It also looks like the camera app does not properly recognize the ui input right after the app is started.  once repeated inputs are given and UI starts to respond, then the app seems to be responsive from that point on.  Which might or might not be related to the findings in comment 4.
The switch requires that we take some measurements from the DOM in order to setup the dragging interactions. We defer this until the app is fully loaded to prevent forcing reflows and thus increasing overall app-visually-complete startup time.

If you're not already, I suggest you wait until window.onload until trying to interact with any of the UI. 

FWIW I have updated the dragging library that we use so that dimensions can be passed in, negating the need for internal DOM read operations. Is we update the Drag library in Camera we could potentially setup the switch before window.onload.

I am unfortunately really slammed with V3 work for the next 3 weeks, so unlikey to have free cycles.
Flags: needinfo?(wilsonpage)
Attachment #8559835 - Flags: review?(viorela.ioia)
Attachment #8559835 - Flags: review?(dave.hunt)
Comment on attachment 8559835 [details] [review]
[PullReq] bebef1987:camera to mozilla-b2g:master

Merged in: https://github.com/mozilla-b2g/gaia/commit/ded85e94a325d1546d5c46fbe68153ddd7671181
Attachment #8559835 - Flags: review?(viorela.ioia)
Attachment #8559835 - Flags: review?(dave.hunt)
Attachment #8559835 - Flags: review+
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
I tested this patch on V2.2 and it works fine and resolve the camera issue, could you help to merge this to v2.2, thank you.
Also see bug 1127702
Attachment #8561163 - Flags: review?(viorela.ioia)
Attachment #8561163 - Attachment is obsolete: true
Attachment #8561163 - Flags: review?(viorela.ioia)
Attachment #8561159 - Flags: review?(viorela.ioia)
Comment on attachment 8561159 [details] [review]
[PullReq] echangmoz:1125798 to mozilla-b2g:v2.2

Merged in v2.2: https://github.com/mozilla-b2g/gaia/commit/aea36ed23273a6c508edfb32c0181b58ba90944b
Attachment #8561159 - Flags: review?(viorela.ioia) → review+
Verified fixed, thank you.
http://mtbf-2.corp.tpe1.mozilla.com:8080/view/FxOS_v2.2/job/B2G.v2.2.pvt.flame.gaiatest.non-smoketest/341/HTML_Report/

Device firmware (base) 	L1TC000118D0
Device firmware (date) 	09 Feb 2015 17:00:51
Device firmware (incremental) 	eng.cltbld.20150209.040038
Device firmware (release) 	4.4.2
Device identifier 	flame
Gaia date 	07 Feb 2015 04:54:14
Gaia revision 	e827781324cb
Gecko build 	20150209002504
Gecko revision 	0552759956d3
Gecko version 	37.0a2 	

Serial: e47cd843 (State: device)
Build ID               20150209002504
Gaia Revision          e827781324cbde91d2434b388f5dead3303a85ee
Gaia Date              2015-02-06 20:54:14
Gecko Revision         https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/0552759956d3
Gecko Version          37.0a2
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150209.040038
Firmware Date          Mon Feb  9 04:00:51 EST 2015
Bootloader             L1TC000118D0
A comment here.

Can we run the adhoc test before merge next time?
As Viorela did on bug 1120941#c2.
- https://bugzilla.mozilla.org/show_bug.cgi?id=1120941#c2

Because it is easy to cause compatibility problem when you pull patch from the other branches.
This issue is reappearing in today's build for 3.0 nightly engineering on flame devices as observed on the Jenkins report and locally:

Jenkins:
Traceback (most recent call last):
  File "/var/jenkins/2/workspace/flame-kk-319.mozilla-central.nightly.ui.functional.smoke/.env/local/lib/python2.7/site-packages/marionette_client-0.8.7-py2.7.egg/marionette/marionette_test.py", line 283, in run
    testMethod()
  File "/var/jenkins/2/workspace/flame-kk-319.mozilla-central.nightly.ui.functional.smoke/tests/python/gaia-ui-tests/gaiatest/tests/functional/camera/test_camera_capture_video.py", line 27, in test_capture_a_video
    self.camera.tap_switch_source()
  File "/var/jenkins/2/workspace/flame-kk-319.mozilla-central.nightly.ui.functional.smoke/tests/python/gaia-ui-tests/gaiatest/apps/camera/app.py", line 130, in tap_switch_source
    Wait(self.marionette).until(lambda m: not current_camera_mode == self.camera_mode)
  File "/var/jenkins/2/workspace/flame-kk-319.mozilla-central.nightly.ui.functional.smoke/.env/local/lib/python2.7/site-packages/marionette_client-0.8.7-py2.7.egg/marionette/wait.py", line 143, in until
    cause=last_exc)

Device firmware (base) 	L1TC100118D0
Device firmware (date) 	17 Feb 2015 01:58:53
Device firmware (incremental) 	eng.cltbld.20150217.045842
Device firmware (release) 	4.4.2
Device identifier 	flame
Gaia date 	16 Feb 2015 02:17:13
Gaia revision 	ae02fbdeae77
Gecko build 	20150217010232
Gecko revision 	09f4968d5f42
Gecko version 	38.0a1
---------------------------------------

Local:
Traceback (most recent call last):
  File "/home/flash/Desktop/oliverthor/git/gaia/tests/python/gaia-ui-tests/.env/local/lib/python2.7/site-packages/marionette_client-0.8.7-py2.7.egg/marionette/marionette_test.py", line 283, in run
    testMethod()
  File "/home/flash/Desktop/oliverthor/git/gaia/tests/python/gaia-ui-tests/gaiatest/tests/functional/camera/test_camera_capture_video.py", line 27, in test_capture_a_video
    self.camera.tap_switch_source()
  File "/home/flash/Desktop/oliverthor/git/gaia/tests/python/gaia-ui-tests/gaiatest/apps/camera/app.py", line 130, in tap_switch_source
    Wait(self.marionette).until(lambda m: not current_camera_mode == self.camera_mode)
  File "/home/flash/Desktop/oliverthor/git/gaia/tests/python/gaia-ui-tests/.env/local/lib/python2.7/site-packages/marionette_client-0.8.7-py2.7.egg/marionette/wait.py", line 143, in until
    cause=last_exc)
TEST-INFO took 107303ms

Environmental Variables:
Device: Flame 3.0
BuildID: 20150217010232
Gaia: ae02fbdeae77b2002cebe33c61aedeee4b9439fd
Gecko: 09f4968d5f42
Gonk: e7c90613521145db090dd24147afd5ceb5703190
Version: 38.0a1 (3.0) 
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:38.0) Gecko/38.0 Firefox/38.0
--------------------------------------------------
Repro 10/10

This issue is not observed manually.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Firefox OS is not being worked on
Status: REOPENED → RESOLVED
Closed: 9 years ago6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: