Skip to content

fix(linux): resolve WebKitGTK OOM and OPFS-unavailable sync failure causing crash on Fedora 44 desktop app#1089

Open
chryzmo wants to merge 2 commits into
thunderbird:mainfrom
chryzmo:linuxdesktopfix
Open

fix(linux): resolve WebKitGTK OOM and OPFS-unavailable sync failure causing crash on Fedora 44 desktop app#1089
chryzmo wants to merge 2 commits into
thunderbird:mainfrom
chryzmo:linuxdesktopfix

Conversation

@chryzmo

@chryzmo chryzmo commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
  • Fall back to IDBBatchAtomicVFS when OPFS is unavailable, since WebKitGTK (Tauri on Linux) doesn't implement navigator.storage.getDirectory and OPFSCoopSyncVFS's worker would otherwise throw on init.
  • Disable WebKitGTK's WASM OMG JIT tier, which leaks native memory when repeatedly recompiling wa-sqlite's module and eventually OOM-kills the webview process (upstream bug webkit.org/show_bug.cgi?id=319572).

Note that the WebKit flag appears to be required due to a bug in WebKit that causes constant spiked CPU and a moderately quick memory leak. I have confirmed this WebKit bug exists in the version of WebKit provided with Fedora 44, but have not tested on other distros or versions of Fedora

It looks like this could be the same crash that #956 is experiencing, so perhaps this could help there as well.

I have also filed a bug with WebKit that includes an example script to replicate the CPU spike and memory leak outside without Thunderbolt context: https://bugs.webkit.org/show_bug.cgi?id=319572

- Disable WebKitGTK's WASM OMG JIT tier, which leaks native memory when
  repeatedly recompiling wa-sqlite's module and eventually OOM-kills the
  webview process (upstream bug webkit.org/show_bug.cgi?id=319572).
- Fall back to IDBBatchAtomicVFS when OPFS is unavailable, since
  WebKitGTK (Tauri on Linux) doesn't implement navigator.storage.getDirectory
  and OPFSCoopSyncVFS's worker would otherwise throw on init.
@chryzmo
chryzmo temporarily deployed to fork-preview-approval July 16, 2026 12:32 — with GitHub Actions Inactive
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

Preview environment deployed 🚀

Service URL
Marketing / blog / docs https://thunderbolt-pr-1089.preview.thunderbolt.io
App https://app-pr-1089.preview.thunderbolt.io
API https://api-pr-1089.preview.thunderbolt.io
Keycloak https://auth-pr-1089.preview.thunderbolt.io
PowerSync https://powersync-pr-1089.preview.thunderbolt.io

Stack: preview-pr-1089 · Commit: 76bc058336b619c756a843ecfeec9afd18107fcd

Auto-destroys on PR close/merge. Login via the bundled Keycloak realm — demo@thunderbolt.io / demo by default.

@chryzmo
chryzmo temporarily deployed to fork-preview-approval July 16, 2026 16:17 — with GitHub Actions Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant