Closed Bug 1768061 Opened 3 years ago Closed 2 years ago

Intermittent raptor-browsertime Critical: VisualMetrics failed to run SyntaxError: Unexpected end of JSON input | raptor-browsertime Error: Browsertime failed to run

Categories

(Testing :: Raptor, defect, P5)

defect

Tracking

(firefox-esr91 unaffected, firefox100 unaffected, firefox101 unaffected, firefox102 wontfix, firefox103 fixed)

RESOLVED FIXED
103 Branch
Tracking Status
firefox-esr91 --- unaffected
firefox100 --- unaffected
firefox101 --- unaffected
firefox102 --- wontfix
firefox103 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: aglavic)

References

(Regression)

Details

(Keywords: intermittent-failure, regression, Whiteboard: [retriggered])

Attachments

(1 file)

Filed by: smolnar [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=377005149&repo=mozilla-central
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/fvgiYioaSKGgxNHaixen_Q/runs/0/artifacts/public/logs/live_backing.log


INFO -  raptor-browsertime Info: Browsertime pageload ended.
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime Info: Thu, 05 May 2022 18:35:53 GMT adb:command Send '001Bhost:transport:HT86B1A00738'
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime Info: Thu, 05 May 2022 18:35:53 GMT adb:command Send '0040shell:dumpsys battery | grep temperature | grep -Eo '[0-9]{1,3}''
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime Info: Get visual metrics from the video
[task 2022-05-05T18:35:59.245Z] 18:35:53    ERROR -  raptor-browsertime Error: Browsertime failed to run
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime Info:     at JSON.parse (<anonymous>)
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime Info:     at Object.run (/builds/task_165177458143528/fetches/browsertime/node_modules/browsertime/lib/video/postprocessing/visualmetrics/visualMetrics.js:149:19)
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime Info:     at async module.exports (/builds/task_165177458143528/fetches/browsertime/node_modules/browsertime/lib/video/postprocessing/visualmetrics/getVideoMetrics.js:34:21)
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime Info:     at async Video.postProcessing (/builds/task_165177458143528/fetches/browsertime/node_modules/browsertime/lib/video/video.js:94:22)
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime Info:     at async Iteration.run (/builds/task_165177458143528/fetches/browsertime/node_modules/browsertime/lib/core/engine/iteration.js:261:34)
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime Info:     at async Engine.runByScript (/builds/task_165177458143528/fetches/browsertime/node_modules/browsertime/lib/core/engine/index.js:266:20)
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime Info:     at async run (/builds/task_165177458143528/fetches/browsertime/node_modules/browsertime/bin/browsertime.js:71:22)
[task 2022-05-05T18:35:59.245Z] 18:35:53    ERROR -  raptor-browsertime Critical: VisualMetrics failed to run SyntaxError: Unexpected end of JSON input
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-browsertime-android Info: removing reverse socket connections
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  adb command_output: adb -s HT86B1A00738 wait-for-device reverse --remove-all, timeout: None, timedout: None, exitcode: 0, output:
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  adb shell_bool: adb -s HT86B1A00738 wait-for-device shell test -d /sdcard/Android/data/org.mozilla.geckoview_example/files/test_root/org.mozilla.geckoview_example-geckodriver-profile/minidumps, timeout: None, timedout: None, exitcode: 1, output:
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-mitmproxy Info: Mitmproxy stop!!
[task 2022-05-05T18:35:59.245Z] 18:35:53     INFO -  raptor-mitmproxy Info: Stopping mitmproxy playback, killing process 1487
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -  raptor-mitmproxy Info: Successfully killed the mitmproxy playback process
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -  raptor-perftest Info: Removing temporary directory: /tmp/tmpk8iawc2z
[task 2022-05-05T18:35:59.245Z] 18:35:54    ERROR -  Traceback (most recent call last):
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -    File "/builds/task_165177458143528/workspace/build/tests/raptor/raptor/raptor.py", line 215, in <module>
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -      main()
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -    File "/builds/task_165177458143528/workspace/build/tests/raptor/raptor/raptor.py", line 161, in main
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -      success = raptor.run_tests(raptor_test_list, raptor_test_names)
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -    File "/builds/task_165177458143528/workspace/build/tests/raptor/raptor/browsertime/android.py", line 242, in run_tests
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -      return super(BrowsertimeAndroid, self).run_tests(tests, test_names)
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -    File "/builds/task_165177458143528/workspace/build/tests/raptor/raptor/perftest.py", line 457, in run_tests
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -      self.run_test(test, timeout=int(test.get("page_timeout")))
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -    File "/builds/task_165177458143528/workspace/build/tests/raptor/raptor/browsertime/base.py", line 596, in run_test
[task 2022-05-05T18:35:59.245Z] 18:35:54     INFO -      raise Exception(self.browsertime_failure)
[task 2022-05-05T18:35:59.245Z] 18:35:54    ERROR -  Exception: VisualMetrics failed to run SyntaxError: Unexpected end of JSON input
[task 2022-05-05T18:35:59.245Z] 18:35:54    ERROR - Return code: 1
[task 2022-05-05T18:35:59.245Z] 18:35:54  WARNING - setting return code to 1

Hi Greg, can this be a regression of bug 1767436?

Flags: needinfo?(gmierz2)
Regressed by: 1767436

Set release status flags based on info from the regressing bug 1767436

(In reply to Andreea Pavel [:apavel] from comment #2)

Hi Greg, can this be a regression of bug 1767436?

Hi, yes it certainly looks like it. Thanks for the backfills!

Flags: needinfo?(gmierz2)
Has Regression Range: --- → yes

Peter, have you seen this kind of error before when processing visual metrics?

Flags: needinfo?(peter)

No, but looking at the code I think that error code happen if Visual Metrics do not produce any JSON. I think I can fix so that we log the output from Visual Metrics if it happens, so its easier to understand what's going on.

Actually it should already log the output from Visual Metrics if it fails, it should be on error level and start with: Log from VisualMetrics but I couldn't see that in https://firefoxci.taskcluster-artifacts.net/fvgiYioaSKGgxNHaixen_Q/0/public/logs/live_backing.log - is that the right place to look?

That's the right place to look, but I'm not sure what's happening to the logs but here is the video it failed on: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/VNKrAclRQ7KPWseEe_Zbrg/runs/0/artifacts/public/test_info/browsertime-results/booking/pages/www_booking_com/data/video/12.mp4.failed.mp4

If you haven't seen it before, then I'll look into it now. Thanks for the prompt response Peter!

Ah so the video is corrupted. This isn't something related to visual metrics processing but rather with video generation. We've seen this elsewhere as well and the best idea we have right now is to replace the MP4 encoding with one that doesn't write important information at the end of the stream.

Flags: needinfo?(peter)

Yeah but I wonder why the video is corrupt. It's on a mobile phone right? I think we need to increase the time between where we stop the video and then transfer it over from the memory card to the computer. That is 5 seconds now but you can configure it with --videoParams.androidVideoWaitTime (in ms sorry). Try to increase it I'm pretty sure it will fix the problem :)

(In reply to Peter Hedenskog from comment #13)

Yeah but I wonder why the video is corrupt. It's on a mobile phone right? I think we need to increase the time between where we stop the video and then transfer it over from the memory card to the computer. That is 5 seconds now but you can configure it with --videoParams.androidVideoWaitTime (in ms sorry). Try to increase it I'm pretty sure it will fix the problem :)

I think it's something in the firefox window recorder that is causing it last time I checked. This isn't the first time we've had issues with it either, see bug 1708940 for an example. We'll try increasing the wait time though just in case, thanks! :andrej, could you look into this further?

Flags: needinfo?(aglavic)

Sure I can take a look into this

Flags: needinfo?(aglavic)
Assignee: nobody → aglavic
Status: NEW → ASSIGNED
Attachment #9279673 - Attachment description: Bug 1768061 - Intermittent raptor-browsertime unexpected end of JSON input. r?#perftest → Bug 1768061 - Increase wait time for obtaining video from android device, to resolve intermittent raptor-browsertime unexpected end of JSON input. r?#perftest
Pushed by aglavic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8c940ab86a87 Increase wait time for obtaining video from android device, to resolve intermittent raptor-browsertime unexpected end of JSON input. r=perftest-reviewers,sparky
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 103 Branch

The patch landed in nightly and beta is affected.
:andrej, is this bug important enough to require an uplift?
If not please set status_beta to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(aglavic)
Flags: needinfo?(aglavic)

(In reply to Pulsebot from comment #19)

Pushed by aglavic@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8c940ab86a87
Increase wait time for obtaining video from android device, to resolve
intermittent raptor-browsertime unexpected end of JSON input.
r=perftest-reviewers,sparky

== Change summary for alert #34356 (as of Wed, 08 Jun 2022 23:39:35 GMT) ==

Improvements:

Ratio Test Platform Options Absolute values (old vs new)
18% facebook fcp android-hw-p2-8-0-android-aarch64-shippable-qr warm webrender 317.96 -> 259.96
16% facebook-cristiano fcp android-hw-p2-8-0-android-aarch64-shippable-qr warm webrender 314.90 -> 263.08
14% facebook FirstVisualChange android-hw-p2-8-0-android-aarch64-shippable-qr warm webrender 334.12 -> 287.42
12% facebook PerceptualSpeedIndex android-hw-p2-8-0-android-aarch64-shippable-qr warm webrender 373.50 -> 330.08

For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=34356

See Also: → 1773868
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: