TBA 60.8.0, installed from F-Droid on my Android 7.1.2 device (arm64-v8a), is consistently crashing on launch since the latest update. Logcat is always showing the same Fatal:
libc Fatal signal 11 (SIGSEGV), code 1, fault addr 0x2aae in tid 10153 (Gecko)
The bad address is always the same. The preceding lines aren't, so I didn't include them. As a workaround, I downgraded to the 32-bit version, which works.
Trac: Username: j3tracey
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items 0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items 0
Link issues together to show that they're related.
Learn more.
Trac: Cc: N/Ato sisbell Priority: Medium to High Keywords: N/Adeleted, tbb-crash added Summary: Tor Browser for Android 60.8.0 crash to Tor Browser for Android 60.8.0 crash on aarch64
I have a Pixel3a (Android 10) that I'm testing with. Its armv8 and does not crash.
As gk mentioned, the same 32 bit binary is in both 32 bit and 64 bit directories (this is something we do need to solve). However, the device should be able to fallback to 32 bit if 64 bit doesn't load but it sounds like its not doing that. This is likely going to be a Android version and/or device issue.
Which device is this failing on? That may give us a better starting point to see if there is a workaround.
TBA ships in the Guardian Project repo that comes with F-Droid, not the default repo (you can enable it in the settings). I'll note that the 64-bit build is only listed in the Alpha version of TBA, though both alpha and non-alpha list the current version as 60.8.0. I think these are Guardian Project builds, but armv8 isn't listed on the Guardian Project listings nor the Tor Project listings, so I don't know where else to find it.
sisbell: does the info in comment:8 help you to track the problem down?
The Galaxy A5 uses Snapdragron 410, which is 64 bit with 32 bit support so the specs on the device are good. I'll do some more research to see if any issues have been found with support. If that turns up negative, next step is to get some more logs to isolate the specific library that is failing.
These are the logs from Fennec 60.0. If they are any indication of where Tor Browser is crashing, then nsScreenManagerAndroid could be one place we should look. We disabled all of the Push functionality, so that should not be the problem (because it's all written in Java, so we shouldn't see a libc SEGV from that code if it is crashy (and it shouldn't be aarch64 specific)).
07-30 17:52:03.171 20839 20860 I Gecko : console.log: "browser.js: loading Firefox Accounts WebChannel" 07-30 17:52:03.417 20839 20860 D GeckoFxAccounts: FxAccountsWebChannel registered: account_updates with origin https://accounts.firefox.com 07-30 17:52:03.518 20839 20839 D MediaControlService: initialize 07-30 17:52:03.606 20839 20839 D MediaControlService: HandleIntent, action = action_init, mediaState = STOPPED 07-30 17:52:03.637 20839 20860 I nsScreenManagerAndroid: nsWindow[0x7324b83400]::Show 1 07-30 17:52:03.710 20839 21142 D GeckoPushService: Registered Gecko event listener. 07-30 17:52:03.736 20839 21142 I GeckoPushService: Starting up.07-30 17:52:03.737 20839 21142 I GeckoPushManager: Startup: requesting GCM token.07-30 17:52:03.772 20839 21142 I GeckoPushGCM: Cached GCM token exists.07-30 17:52:03.772 20839 21142 I GeckoPushManager: Startup: advancing all registrations.07-30 17:52:03.772 20839 21142 I GeckoPushManager: Startup: no subscriptions for profileName; not advancing registration: default07-30 17:52:05.359 20839 21142 I GeckoPushService: Handling event: PushServiceAndroidGCM:Configure07-30 17:52:05.360 20839 21142 I GeckoPushManager: Updating configuration.07-30 17:52:06.985 20839 20839 I GeckoTabs: zerdatime 88076624 - page load start07-30 17:52:06.986 20839 20839 D GeckoToolbar: onTabChanged: START
Excitingly, the debug build does crash, but it crashes at a different (later) location with an assert. I suspect this is a different bug, and it's fixed upstream. I'll test it anyway (because "crashing later" may simply be a result of the debug build being slower).
08-12 12:57:52.640 12092 12125 I Gecko : Destroying context 0x7cfd98a980 surface 0x7ce5cb5e00 on display 0x108-12 12:57:53.703 12092 12125 I nsScreenManagerAndroid: nsScreenManagerAndroid: add PRIMARY screen08-12 12:58:03.645 12092 12125 I nsScreenManagerAndroid: nsWindow[0x7ced782c00]::Create 0x0 [0 0 100 100]08-12 12:58:03.647 12092 12125 I Gecko : ++DOCSHELL 0x7cf13a9800 == 1 [pid = 12092] [id = {46a6ea06-6df3-4c4f-b59e-75a2624084cd}]08-12 12:58:03.684 12092 12125 I Gecko : ++DOMWINDOW == 1 (0x7cef287800) [pid = 12092] [serial = 1] [outer = 0x0]08-12 12:58:04.065 12092 12125 I Gecko : ++DOMWINDOW == 2 (0x7cef288400) [pid = 12092] [serial = 2] [outer = 0x7cef287800]08-12 12:58:18.425 12092 12125 I nsScreenManagerAndroid: nsWindow[0x7cef28fc00]::Create 0x0 [0 0 1 1]08-12 12:58:18.426 12092 12125 I Gecko : ++DOCSHELL 0x7ceeba0800 == 2 [pid = 12092] [id = {5821e818-d8b1-4cdd-99cc-4d1ac4d56b2b}]08-12 12:58:18.427 12092 12125 I Gecko : ++DOMWINDOW == 3 (0x7cef290000) [pid = 12092] [serial = 3] [outer = 0x0]08-12 12:58:18.517 12092 12125 I Gecko : ++DOMWINDOW == 4 (0x7cef290800) [pid = 12092] [serial = 4] [outer = 0x7cef290000]08-12 12:58:22.385 12092 12125 I Gecko : ++DOMWINDOW == 5 (0x7cee85d000) [pid = 12092] [serial = 5] [outer = 0x7cef287800]08-12 12:58:24.172 12092 12125 I Gecko : [12092, Main Thread] WARNING: Attempting to get a displayport from a content with no primary frame!: file /home/android/tor-browser/layout/base/nsLayoutUtils.cpp, line 92708-12 12:58:24.237 12092 12125 I nsScreenManagerAndroid: nsWindow[0x7cef28fc00]::Resize [0.000000 63.000000 1080.000000 1731.000000] (repaint 0)08-12 12:58:24.237 12092 12125 I nsScreenManagerAndroid: nsWindow: 0x7cef28fc00 OnSizeChanged [1080 1731]08-12 12:58:25.315 12092 12125 I nsScreenManagerAndroid: nsWindow[0x7cef28fc00]::Resize [0.000000 63.000000 1080.000000 1731.000000] (repaint 0)08-12 12:58:26.563 12092 12125 W ResourceType: Too many attribute references, stopped at: 0x0101009908-12 12:59:01.886 12092 12125 D GeckoThread: State changed to RUNNING08-12 12:59:02.036 12092 12125 I GeckoSession: zerdatime 66406478 - chrome startup finished08-12 12:59:13.836 12092 12125 I Gecko : console.log: "browser.js: loading Firefox Accounts WebChannel"08-12 12:59:16.341 12092 12125 D GeckoFxAccounts: FxAccountsWebChannel registered: account_updates with origin https://accounts.firefox.com08-12 12:59:18.813 12092 12092 D MediaControlService: initialize08-12 12:59:19.488 12092 12092 D MediaControlService: HandleIntent, action = action_init, mediaState = STOPPED08-12 12:59:21.996 12092 12125 I nsScreenManagerAndroid: nsWindow[0x7cef28fc00]::Show 108-12 12:59:22.146 12092 12125 I Gecko : AndroidBridge::GetScreenOrientation08-12 12:59:24.341 12092 12125 I Gecko : console.log: "Locale:OS: en-US"08-12 12:59:24.465 12092 12125 I Gecko : console.log: "New OS locale."08-12 12:59:24.723 12092 12125 I Gecko : console.log: "Default intl.accept_languages = en-US, en"08-12 12:59:25.396 12092 12125 I Gecko : console.log: "Setting intl.accept_languages to en-us,en"08-12 12:59:33.072 12092 12125 D GeckoDistribution: Custom distribution directory not found.08-12 12:59:34.774 12092 12125 I Gecko : ++DOCSHELL 0x7c9de85000 == 3 [pid = 12092] [id = {bd496ae9-7ec6-45ce-b90f-ae93c79cfbd3}]08-12 12:59:34.777 12092 12125 I Gecko : ++DOMWINDOW == 6 (0x7c9df07c00) [pid = 12092] [serial = 6] [outer = 0x0]08-12 12:59:43.536 12092 12125 I Gecko : ++DOMWINDOW == 7 (0x7c9df11800) [pid = 12092] [serial = 7] [outer = 0x7c9df07c00]08-12 12:59:49.389 12092 12125 D GeckoScreenOrientation: unlocking08-12 13:00:02.086 12092 12125 I Gecko : ++DOMWINDOW == 8 (0x7cee85ac00) [pid = 12092] [serial = 8] [outer = 0x7c9df07c00]08-12 13:01:12.375 12092 12125 I Gecko : int mozilla::AndroidBridge::GetScreenDepth()08-12 13:01:15.861 12092 12125 F MOZ_Assert: Assertion failure: bytes_ >= bytesAtStartOfGC_, at /home/android/tor-browser/js/src/gc/GC.cpp:178608-12 13:01:15.866 12092 12125 F libc : Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 12125 (Gecko)
Hm, what am I supposed to look at? The Torbutton branch is at the same commit as master. 0e282a0db815beb07fee8354294a7cf597b6e9e5 in the tor-browser repo maybe?
Hm, what am I supposed to look at? The Torbutton branch is at the same commit as master. 0e282a0db815beb07fee8354294a7cf597b6e9e5 in the tor-browser repo maybe?
I didn't push the commit :( It is now there on the torbutton repo.
Hm, what am I supposed to look at? The Torbutton branch is at the same commit as master. 0e282a0db815beb07fee8354294a7cf597b6e9e5 in the tor-browser repo maybe?
I didn't push the commit :( It is now there on the torbutton repo.
Is that bug affecting an esr60-based Fennec and an esr68-one equally or only an issue for the former?
Is that bug affecting an esr60-based Fennec and an esr68-one equally or only an issue for the former?
I think we only need this for 60esr, but I still must test an aarch64 68esr build. I know ion was buggy on aarch64 before 68 (see https://wiki.mozilla.org/Mobile/ARM64), and ion is currently enabled in the Fennec 68 release on aarch64 - but I'll confirm enabling ion with 68esr (#31010 (moved)) doesn't crash, too.
Looks good to me. I cherry-picked the patch to maint-2.1 (commit 2a15af35080b9723d88e5111151f8cd889d592e0) as it is not needed on master which we'll use for esr68-based builds. I hadd to slightly fix it up as the paradigm on maint-2.1 is still to use Cu to import scripts instead of ChromeUtils which should not affect functionality, though.
Trac: Status: needs_review to closed Resolution: N/Ato fixed