[GH-ISSUE #278] Deadlock when database has more than 100 top-level collections #204

Open
opened 2026-10-02 22:10:50 -06:00 by gitea-mirror · 0 comments
Owner

Originally created by @Teejirapat on GitHub (Sep 24, 2026).
Original GitHub issue: https://github.com/appy-one/acebase/issues/278

I found a deadlock issue when the database has more than 100 top-level collections/nodes.

When the root node grows beyond 100 children, AceBase switches the root to a B+tree. After that, writing to an existing top-level collection can hang indefinitely.

Suspected cause

It looks like the B+tree code in NodeReader.getChildStream() creates root child paths with a leading /:

${this.address.path}/${key}

When the root path is empty, this produces:

/collection_1

while the expected path is:

collection_1

Originally created by @Teejirapat on GitHub (Sep 24, 2026). Original GitHub issue: https://github.com/appy-one/acebase/issues/278 I found a deadlock issue when the database has more than 100 top-level collections/nodes. When the root node grows beyond 100 children, AceBase switches the root to a B+tree. After that, writing to an existing top-level collection can hang indefinitely. ### Suspected cause It looks like the B+tree code in `NodeReader.getChildStream()` creates root child paths with a leading `/`: `${this.address.path}/${key}` When the root path is empty, this produces: `/collection_1` while the expected path is: `collection_1`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
github-starred/acebase#204
No description provided.