[TESTING ONLY] Pin react-native-onyx to disk-pressure classification (Onyx PR #816) - #97944
Draft
elirangoshen wants to merge 2 commits into
Draft
[TESTING ONLY] Pin react-native-onyx to disk-pressure classification (Onyx PR #816)#97944elirangoshen wants to merge 2 commits into
elirangoshen wants to merge 2 commits into
Conversation
…(Onyx PR Expensify#816) Pins react-native-onyx to callstack-internal/react-native-onyx@d7abb2c7 (branch eliran/87869-classify-disk-pressure) so E/App CI runs against Onyx PR Expensify#816's SQLite disk-pressure error classification. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
|
42 tasks
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Explanation of Change
This is a TESTING ONLY companion PR for the react-native-onyx PR Expensify/react-native-onyx#816 ("Classify SQLite disk-pressure errors and stop retrying them"). It is not intended to merge as-is: once Onyx #816 merges and ships in a released version, this PR will either be updated to the released npm version or closed in favor of the regular version bump.
The only change here is pinning
react-native-onyxinpackage.json/package-lock.jsonfrom3.0.92to the Onyx PR's head commit (callstack-internal/react-native-onyx#c78c578, brancheliran/87869-classify-disk-pressure, which resolves to version 3.0.94 from the git ref), so the full E/App CI suite and adhoc builds can exercise the Onyx change, per the onyx repo's "Linked E/App PR" requirement.What Onyx #816 does: addresses the app-side symptom of #87869 — iOS bursts of
NitroSQLiteError: ... disk I/O error(Sentry APP-19Q) caused by a full device disk at database (re)open (SQLITE_IOERR_SHMSIZEon the-shmWAL-index file, plus the relatedunable to open database fileandcannot rollback - no transaction is activeshapes). Previously these fell in theUNKNOWNstorage error class: 5 blind retries per operation plus a per-operation alert, amplifying the log storm (~70x amplification seen in prod logs). The Onyx PR:DISK_PRESSUREstorage error class and routes the two SQLite full-disk error messages to it (disk I/O error,unable to open database file);cannot rollback - no transaction is activedeliberately staysUNKNOWNsince it is a mask, not a causegetFreeDiskStorage()bytes on native so prod telemetry can confirm disk pressure as the root causeFixed Issues
$ #87869
$ #97908
PROPOSAL: N/A (testing-only dependency-pin companion PR; the change itself is reviewed in Expensify/react-native-onyx#816)
Automated Tests
Automated coverage for the change lives in the paired onyx PR (Expensify/react-native-onyx#816), in
tests/unit/onyxUtilsTest.ts: anit.eachover the two disk-pressure error strings asserting the operation is not retried, and a burst test asserting exactly one throttled alert + one storage quota snapshot per burst. This PR only pins the dependency so the full E/App CI suite runs against it.Tests
Regression smoke only — the pinned Onyx change alters internal error classification/logging with no user-facing behavior change:
Offline tests
QA Steps
Same as Tests. (Testing-only PR — not intended to reach staging as-is.)
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
N/A — dependency pin only.
Android: mWeb Chrome
N/A — dependency pin only.
iOS: Native
N/A — dependency pin only.
iOS: mWeb Safari
N/A — dependency pin only.
MacOS: Chrome / Safari
N/A — dependency pin only.