WIP: go startup fixes#29363
Open
chrisnojima wants to merge 2 commits into
Open
Conversation
- 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
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.
fix(bind): close BackgroundSync appstate races; harden gomobile API