Closed Bug 1822171 Opened 1 year ago Closed 4 months ago

Update to Android NDK r26

Categories

(GeckoView :: General, task, P3)

All
Android

Tracking

(firefox125 fixed)

RESOLVED FIXED
125 Branch
Tracking Status
firefox125 --- fixed

People

(Reporter: cpeterson, Assigned: RyanVM)

References

(Blocks 1 open bug, )

Details

(Whiteboard: [geckoview:2023q4] [geckoview:m122?], [wptsync upstream])

Attachments

(4 files)

The next NDK LTS after r25 (bug 1814734) will be r26, which Google plans to release in 2023 Q3:

https://github.com/android/ndk/wiki#ndk-r26-lts

According to r25's release notes, r26 will drop support for API levels < 21 and the minimum OS supported will be API level 21 (Lollipop 5.0), same as Fenix:

https://github.com/android/ndk/wiki/Changelog-r25

See NDK issue 1751 for details.

Depends on: 1814734
Depends on: 1820295
Depends on: 1830530
Whiteboard: [geckoview:2023q4] [geckoview:m121?] → [geckoview:2023q4] [geckoview:m122?]

We have to update webrtc build script when we support NDK r26. I guess that webrtc's BUILD.gn is a copy from Chromium's, but this doesn't support r26c. From r26, andorid_support is removed.

I'm a bit confused about the status on Google's end now, but it looks like Chromium (and by extension, libwebrtc) is using r26b now?

Flags: needinfo?(m_kato)

(In reply to Ryan VanderMeulen [:RyanVM] from comment #3)

I'm a bit confused about the status on Google's end now, but it looks like Chromium (and by extension, libwebrtc) is using r26b now?

Yes, now. Actually, webrtc build fiels (into third_party/libwebrtc/build/config) seems to be from Chromium's build config files. Since NDK r26 removes some shard libraries, we need to modify it. https://searchfox.org/mozilla-central/rev/a030f2013ac6a6b1bd0c95c617899abb7f10f749/third_party/libwebrtc/build/config/android/BUILD.gn#92-98 is removed when upgrading NDK r26 in Chromium.

Flags: needinfo?(m_kato)
Assignee: nobody → ryanvm
Status: NEW → ASSIGNED
Pushed by rvandermeulen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/577745e56c02
Update Android bundletool and commandlinetools to the latest releases. r=geckoview-reviewers,m_kato
https://hg.mozilla.org/integration/autoland/rev/072153b2a9fe
Update NDK to r26c. r=geckoview-reviewers,m_kato
https://hg.mozilla.org/integration/autoland/rev/126552a59648
Remove android_support dependency from libwebrtc. r=webrtc-reviewers,mjf
https://hg.mozilla.org/integration/autoland/rev/ba5550494437
Remove android_support dependency from libwebrtc. - moz.build file updates r=webrtc-reviewers,mjf
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/44653 for changes under testing/web-platform/tests
Whiteboard: [geckoview:2023q4] [geckoview:m122?] → [geckoview:2023q4] [geckoview:m122?], [wptsync upstream]

Backed out for frequent or permanent task failures on Android:
https://hg.mozilla.org/integration/autoland/rev/cedd2977706a535a83082833fbddbd71e0882d2e

Push with failures

Failure log intermittent

[task 2024-02-19T17:11:24.746Z] Setting test_root to /data/local/tmp/test_root
[task 2024-02-19T17:11:25.741Z] 17:11:25     INFO - Running post-action listener: _resource_record_post_action
[task 2024-02-19T17:11:25.741Z] 17:11:25     INFO - [mozharness: 2024-02-19 17:11:25.741088Z] Finished verify-device step (failed)
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL - Uncaught exception: Traceback (most recent call last):
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -   File "/builds/worker/workspace/mozharness/mozharness/base/script.py", line 2384, in run
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -     self.run_action(action)
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -   File "/builds/worker/workspace/mozharness/mozharness/base/script.py", line 2318, in run_action
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -     self._possibly_run_method(method_name, error_if_missing=True)
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -   File "/builds/worker/workspace/mozharness/mozharness/base/script.py", line 2270, in _possibly_run_method
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -     return getattr(self, method_name)()
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -   File "/builds/worker/workspace/mozharness/mozharness/mozilla/testing/android.py", line 682, in verify_device
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -     self.dump_perf_info()
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -   File "/builds/worker/workspace/mozharness/mozharness/mozilla/testing/android.py", line 318, in dump_perf_info
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -     out = self.shell_output(cmd)
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -   File "/builds/worker/workspace/mozharness/mozharness/mozilla/testing/android.py", line 472, in shell_output
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -     return self.device.shell_output(
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -   File "/builds/worker/workspace/build/venv/lib/python3.8/site-packages/mozdevice/adb.py", line 2217, in shell_output
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL -     raise ADBProcessError(adb_process)
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL - mozdevice.adb.ADBProcessError: args: /builds/worker/fetches/android-sdk-linux/platform-tools/adb wait-for-device shell cat /proc/cpuinfo; echo adb_returncode=$?, exitcode: 255, stdout: 
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL - Running post_fatal callback...
[task 2024-02-19T17:11:25.742Z] 17:11:25    FATAL - Exiting -1

Permanent XPCshell failure log

[task 2024-02-19T17:52:50.405Z] 17:52:50     INFO -  TEST-PASS | netwerk/test/unit/test_bug261425.js | took 736ms
[task 2024-02-19T17:52:50.462Z] 17:52:50     INFO -  Cleaning up profile for /builds/worker/workspace/build/tests/xpcshell/tests/netwerk/test/unit/test_bug261425.js folder: /data/local/tmp/test_root/xpc/p/2dec126e-1117-4a77-97e5-eea0d845078e
[task 2024-02-19T17:52:50.618Z] 17:52:50     INFO -  Following exceptions were raised:
[task 2024-02-19T17:52:50.618Z] 17:52:50     INFO -  Traceback (most recent call last):
[task 2024-02-19T17:52:50.618Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/tests/xpcshell/runxpcshelltests.py", line 252, in run
[task 2024-02-19T17:52:50.618Z] 17:52:50     INFO -      self.run_test()
[task 2024-02-19T17:52:50.619Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/tests/xpcshell/runxpcshelltests.py", line 1008, in run_test
[task 2024-02-19T17:52:50.619Z] 17:52:50     INFO -      if self.checkForCrashes(self.tempDir, self.symbolsPath, test_name=name):
[task 2024-02-19T17:52:50.619Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/tests/xpcshell/remotexpcshelltests.py", line 346, in checkForCrashes
[task 2024-02-19T17:52:50.619Z] 17:52:50     INFO -      self.device.pull(self.remoteMinidumpDir, dumpDir)
[task 2024-02-19T17:52:50.619Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/venv/lib/python3.8/site-packages/mozdevice/adb.py", line 3067, in pull
[task 2024-02-19T17:52:50.619Z] 17:52:50     INFO -      self._sync(timeout=timeout)
[task 2024-02-19T17:52:50.619Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/venv/lib/python3.8/site-packages/mozdevice/adb.py", line 1277, in _sync
[task 2024-02-19T17:52:50.619Z] 17:52:50     INFO -      self.shell_output("sync", timeout=timeout)
[task 2024-02-19T17:52:50.619Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/venv/lib/python3.8/site-packages/mozdevice/adb.py", line 2217, in shell_output
[task 2024-02-19T17:52:50.619Z] 17:52:50 CRITICAL -      raise ADBProcessError(adb_process)
[task 2024-02-19T17:52:50.619Z] 17:52:50 CRITICAL -  mozdevice.adb.ADBProcessError: args: adb wait-for-device shell sync; echo adb_returncode=$?, exitcode: 255, stdout:
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -  Traceback (most recent call last):
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/tests/xpcshell/remotexpcshelltests.py", line 790, in <module>
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -      main()
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/tests/xpcshell/remotexpcshelltests.py", line 783, in main
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -      if not xpcsh.runTests(
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/tests/xpcshell/runxpcshelltests.py", line 1995, in runTests
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -      status = self.runTestList(
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/tests/xpcshell/runxpcshelltests.py", line 2236, in runTestList
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -      raise exceptions[0]
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/tests/xpcshell/runxpcshelltests.py", line 252, in run
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -      self.run_test()
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/tests/xpcshell/runxpcshelltests.py", line 1008, in run_test
[task 2024-02-19T17:52:50.620Z] 17:52:50     INFO -      if self.checkForCrashes(self.tempDir, self.symbolsPath, test_name=name):
[task 2024-02-19T17:52:50.621Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/tests/xpcshell/remotexpcshelltests.py", line 346, in checkForCrashes
[task 2024-02-19T17:52:50.621Z] 17:52:50     INFO -      self.device.pull(self.remoteMinidumpDir, dumpDir)
[task 2024-02-19T17:52:50.621Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/venv/lib/python3.8/site-packages/mozdevice/adb.py", line 3067, in pull
[task 2024-02-19T17:52:50.621Z] 17:52:50     INFO -      self._sync(timeout=timeout)
[task 2024-02-19T17:52:50.621Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/venv/lib/python3.8/site-packages/mozdevice/adb.py", line 1277, in _sync
[task 2024-02-19T17:52:50.621Z] 17:52:50     INFO -      self.shell_output("sync", timeout=timeout)
[task 2024-02-19T17:52:50.621Z] 17:52:50     INFO -    File "/builds/worker/workspace/build/venv/lib/python3.8/site-packages/mozdevice/adb.py", line 2217, in shell_output
[task 2024-02-19T17:52:50.621Z] 17:52:50 CRITICAL -      raise ADBProcessError(adb_process)
[task 2024-02-19T17:52:50.621Z] 17:52:50 CRITICAL -  mozdevice.adb.ADBProcessError: args: adb wait-for-device shell sync; echo adb_returncode=$?, exitcode: 255, stdout:
[task 2024-02-19T17:52:50.647Z] 17:52:50     INFO - Return code: 1
[task 2024-02-19T17:52:50.647Z] 17:52:50    ERROR - No tests run or test summary not found
Flags: needinfo?(ryanvm)

Backed out for causing android failures with "Uncaught exception: Traceback (most recent call last):"

Looking at the logs for toolchain-linux64-android-sdk-linux-repack, we appear to be installing the newly-released release of the Android SDK Platform Tools (34.0.5 was the previous official release). These failures would have presumably burned whoever did the next push that triggered this toolchain to rebuild.

platform-tools | 35.0.0 | Android SDK Platform-Tools | platform-tools

https://firefoxci.taskcluster-artifacts.net/QOGkqQPuS7-EJR6KERLLmA/0/public/logs/live_backing.log

Flags: needinfo?(ryanvm)

Geoff, can you help me debug this? We either need to figure out why android.py doesn't like this new adb version or pin ourselves to the last known-good 34.0.5 release for now (hard to say if this is a bug with the new adb that will get fixed down the road or a real behavior change we'll need to deal with eventually).

Flags: needinfo?(gbrown)

I can confirm that it's the new platform-tools 35.0.0 package we're picking up transiently in the toolchain rebuild that's breaking things here. The same patch stack which was green on Try last week and shows version 34.0.5 in the build logs is now hitting the same failures this week with version 35.0.0 in the logs. Also, it looks like we have the same issue with the platform-tools package that we had previously with the emulator where older versions are made unavailable when a newer one is released.

Warning: Failed to find package 'platform-tools;34.0.5'

Depends on: 1880925
Pushed by rvandermeulen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5e5ee04a093c
Update Android bundletool and commandlinetools to the latest releases. r=geckoview-reviewers,m_kato
https://hg.mozilla.org/integration/autoland/rev/b8c26e3455ec
Update NDK to r26c. r=geckoview-reviewers,m_kato
https://hg.mozilla.org/integration/autoland/rev/f5c9cd6cc881
Remove android_support dependency from libwebrtc. r=webrtc-reviewers,mjf
https://hg.mozilla.org/integration/autoland/rev/6c92ce640dc6
Remove android_support dependency from libwebrtc. - moz.build file updates r=webrtc-reviewers,mjf

(In reply to Ryan VanderMeulen [:RyanVM] from comment #15)

Geoff, can you help me debug this? We either need to figure out why android.py doesn't like this new adb version or pin ourselves to the last known-good 34.0.5 release for now (hard to say if this is a bug with the new adb that will get fixed down the road or a real behavior change we'll need to deal with eventually).

Thanks Ryan. I am looking at this in bug 1881158.

Flags: needinfo?(gbrown)
Upstream PR was closed without merging
Upstream PR merged by moz-wptsync-bot
Whiteboard: [geckoview:2023q4] [geckoview:m122?], [wptsync upstream] → [geckoview:2023q4] [geckoview:m122?], [wptsync upstream error]
Whiteboard: [geckoview:2023q4] [geckoview:m122?], [wptsync upstream error] → [geckoview:2023q4] [geckoview:m122?], [wptsync upstream]
Pushed by archaeopteryx@coole-files.de:
https://hg.mozilla.org/mozilla-central/rev/61cb2b6b27f5
remove android_support dependency from libwebrtc v121. a=bustage-fix
Blocks: 1893001
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: