build(mobile): harden gobuild.sh and go bind pipeline 2#29364
Open
chrisnojima wants to merge 3 commits into
Open
build(mobile): harden gobuild.sh and go bind pipeline 2#29364chrisnojima wants to merge 3 commits into
chrisnojima wants to merge 3 commits into
Conversation
chrisnojima
commented
Jul 2, 2026
Contributor
- propagate gomobile bind failures: the output-sniffing retry heuristic discarded exit codes, so failed builds could exit 0 with stale artifacts
- stop using gomobile init: it installs gobind@latest, skewing against the x/mobile version pinned in go.mod; install pinned gobind directly
- patch gobind's @import Foundation at generation time in gobuild.sh instead of yarn postinstall; delete dead fixModules docgen stub
- add -trimpath; bump x/mobile to 20260611
- drop 32-bit x86 ABI from aar and gradle (dead hardware); keep armeabi-v7a
- faster local iteration: android-debug.sh builds only the connected device's ABI, gobuild.sh takes a TARGETS override
- replace no-op GOTRACEBACK setenv in bind Init with SetTraceback("crash")
- BackgroundSync: use UpdateWithCheck for both transitions so a concurrent FOREGROUND can't be clobbered back to BACKGROUND, which cancelled live RPCs and stranded the service backgrounded while the user was in the app; inline the pointless goroutine/channel wrapper - ReadArr: deliver data when n>0 even with err (net.Conn contract) - LogSend/ForceGC/LogToService/InitOnce: guard against pre-Init calls - collapse dead iOS/Android buffer branch (both computed 300*1024) and drop the discarded 1MB package-level allocation - stop leaked ticker, lock conn read in NotifyJSReady, skip trace on empty logFile, delete commented-out GOMAXPROCS block
Users report ~10s hangs on the launch screen. Init runs synchronously on the native main thread and blocks on leveldb journal replay or recovery after an unclean kill, and on up to 50 sequential keychain reads. - flush leveldb memtables when backgrounding so a jetsam kill leaves empty journals; next open skips replay/recovery - read all keychain slots with one SecItemCopyMatching, slot scan as fallback - run the startup login attempt off the Init path; GetBootstrapStatus waits for it so the GUI never sees a stale logged-out state - log per-phase Init timings for future reports
- propagate gomobile bind failures: the output-sniffing retry heuristic discarded exit codes, so failed builds could exit 0 with stale artifacts - stop using gomobile init: it installs gobind@latest, skewing against the x/mobile version pinned in go.mod; install pinned gobind directly - patch gobind's @import Foundation at generation time in gobuild.sh instead of yarn postinstall; delete dead fixModules docgen stub - add -trimpath; bump x/mobile to 20260611 - drop 32-bit x86 ABI from aar and gradle (dead hardware); keep armeabi-v7a - faster local iteration: android-debug.sh builds only the connected device's ABI, gobuild.sh takes a TARGETS override - replace no-op GOTRACEBACK setenv in bind Init with SetTraceback("crash")
00d5bf0 to
b1f5b4c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.