mattermost-mobile-upstream/app/actions/websocket
Mattermost Build 6a1638d8a8
Guard long-running DB chains against RUNNINGBOARD 0xdead10cc on iOS (#10110) (#10133)
* Guard long-running DB chains against RUNNINGBOARD 0xdead10cc on iOS

iOS can terminate the app if it's suspended while a SQLite statement
still holds the shared App Group database lock. AppDelegate already
held a single background-task assertion across the background
transition, but it was a blind, fixed-duration timer: it never
tracked whether a DB operation was actually still running, and a
chain that started after the timer had already begun (or ran long
enough to outlast it) got no protection.

Add DatabaseActivityAssertion (a Swift port of Quinn "The Eskimo!"'s
QRunInBackgroundAssertion) and DatabaseLockProtectionManager, which
lets any caller - the app lifecycle transition, or a specific
long-running chain - acquire its own independent background-task
job and release it exactly when its own work finishes. Wire this
into the websocket reconnect sync (doReconnect) and the deferred
per-team entry sync (restDeferredAppEntryActions), the two longest
sequential local-DB chains in the app, via a new pair of RNUtils
methods (iOS only; Android is a no-op, since 0xdead10cc has no
Android equivalent).

* fix tests

(cherry picked from commit bc84b6ee3a)

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2026-09-07 08:26:32 +03:00
..
burn_on_read.test.ts Bor create post (#9393) 2026-02-09 17:00:54 +05:30
burn_on_read.ts Bor create post (#9393) 2026-02-09 17:00:54 +05:30
category.test.ts Add tests to remaining actions/websocket files (#8495) 2025-01-21 08:42:09 -05:00
category.ts Add tests to remaining actions/websocket files (#8495) 2025-01-21 08:42:09 -05:00
channel.test.ts Keep users in archived channels when server omits ExperimentalViewArchivedChannels (MM-65820) (#9815) 2026-06-09 19:47:37 +00:00
channel.ts fix critical crashes on Android (#9871) 2026-06-23 02:40:21 +08:00
event.test.ts Bor create post (#9393) 2026-02-09 17:00:54 +05:30
event.ts [MM-68986][MM-69203] Add module to collect Session Attributes from Mobile App (#9830) (#10073) 2026-08-18 14:05:37 -04:00
files.test.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
files.ts [MM-69457] Stop logging PII in exportable app logs (#9884) 2026-07-02 12:19:04 +02:00
group.test.ts Add tests to index, group and users websocket actions (#8486) 2025-01-17 14:25:12 -05:00
group.ts Move config to its own database table (#6744) 2022-11-11 21:20:42 +04:00
index.test.ts Guard long-running DB chains against RUNNINGBOARD 0xdead10cc on iOS (#10110) (#10133) 2026-09-07 08:26:32 +03:00
index.ts Guard long-running DB chains against RUNNINGBOARD 0xdead10cc on iOS (#10110) (#10133) 2026-09-07 08:26:32 +03:00
integrations.test.ts Add tests to remaining actions/websocket files (#8495) 2025-01-21 08:42:09 -05:00
integrations.ts Gekidou Android share extension (#6803) 2022-11-30 23:18:56 +02:00
managed_categories.test.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
managed_categories.ts [MM-68255] Enable mobile support for Managed Categories (#9683) 2026-04-16 10:01:51 -04:00
posts.test.ts Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02:00
posts.ts Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02:00
preferences.test.ts Revert "e2e(detox): Rainforest to Detox migration (#9790)" (#9834) 2026-06-15 17:57:01 +02:00
preferences.ts fix: app bugs surfaced by Detox RF migration (#9789) 2026-06-09 13:25:42 +05:30
properties.test.ts MM-68208 Implementing global and channel-level banners on mobile (#9752) 2026-07-08 12:47:01 +03:00
properties.ts MM-68208 Implementing global and channel-level banners on mobile (#9752) 2026-07-08 12:47:01 +03:00
reactions.test.ts Add tests to remaining actions/websocket files (#8495) 2025-01-21 08:42:09 -05:00
reactions.ts Refactor errors around the app (#7306) 2023-05-03 13:08:55 +02:00
roles.test.ts Add model mocks to TestHelper (#8715) 2025-03-28 09:40:08 +01:00
roles.ts Refactor errors around the app (#7306) 2023-05-03 13:08:55 +02:00
scheduled_post.test.ts Feature schedule posts (#8509) 2025-04-14 22:08:59 +05:30
scheduled_post.ts Feature schedule posts (#8509) 2025-04-14 22:08:59 +05:30
system.test.ts [MM-68986][MM-69203] Add module to collect Session Attributes from Mobile App (#9830) (#10073) 2026-08-18 14:05:37 -04:00
system.ts [MM-68986][MM-69203] Add module to collect Session Attributes from Mobile App (#9830) (#10073) 2026-08-18 14:05:37 -04:00
teams.test.ts Add model mocks to TestHelper (#8715) 2025-03-28 09:40:08 +01:00
teams.ts Refactor errors around the app (#7306) 2023-05-03 13:08:55 +02:00
threads.test.ts Add tests to remaining actions/websocket files (#8495) 2025-01-21 08:42:09 -05:00
threads.ts Refactor errors around the app (#7306) 2023-05-03 13:08:55 +02:00
users.test.ts [MM-68986][MM-69203] Add module to collect Session Attributes from Mobile App (#9830) (#10073) 2026-08-18 14:05:37 -04:00
users.ts [MM-68986][MM-69203] Add module to collect Session Attributes from Mobile App (#9830) (#10073) 2026-08-18 14:05:37 -04:00