Skip to content

fix: fail fast when opfs-ahp pool handles cannot be opened - #1064

Open
AntonOfTheWoods wants to merge 1 commit into
electric-sql:mainfrom
pgxsinkit:fix/opfs-ahp-fail-fast-init
Open

fix: fail fast when opfs-ahp pool handles cannot be opened#1064
AntonOfTheWoods wants to merge 1 commit into
electric-sql:mainfrom
pgxsinkit:fix/opfs-ahp-fail-fast-init

Conversation

@AntonOfTheWoods

@AntonOfTheWoods AntonOfTheWoods commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

The pool-handle open in #init and both maintainPool loops used async promise executors with no rejection path — any getFileHandle or createSyncAccessHandle throw became an unhandled rejection and Promise.all never settled, so a broken pool wedged database startup silently and forever (observed in the field on headed Chrome and Safari).

Convert the three sites to proper async helpers whose errors propagate as a catchable error naming the failing operation and filename, with the original error preserved as cause.

This covers both the safari 252 opfs limit and the linux chromium default soft limit of 1024 which gets exhausted now by initdb's ~970 open files.

The pool-handle open in #init and both maintainPool loops used async
promise executors with no rejection path — any getFileHandle or
createSyncAccessHandle throw became an unhandled rejection and
Promise.all never settled, so a broken pool wedged database startup
silently and forever (observed in the field on headed Chrome and
Safari).

Convert the three sites to proper async helpers whose errors propagate
as a catchable error naming the failing operation and filename, with
the original error preserved as `cause`.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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