Skip to content

fix: narrow solution for double free crash on destroy#623

Open
adsharma wants to merge 1 commit into
mainfrom
atomic_destroy
Open

fix: narrow solution for double free crash on destroy#623
adsharma wants to merge 1 commit into
mainfrom
atomic_destroy

Conversation

@adsharma

Copy link
Copy Markdown
Contributor

Fixes: #452

This is a hard to reproduce Heisenbug. Suspected cause: two threads racing on database close/destroy + GC which does an implicit destroy.

A full solution would have to use std::atomic on all pointer dereferences on conn and database. We may already be protected by the language runtimes against such races.

The intent is to try the narrow solution first and then go for something more invasive only if necessary.

This is a hard to reproduce heisenbug. Suspected cause: two threads
racing on database close/destroy + GC which does an implicit destroy.

A full solution would have to use `std::atomic` on all pointer
dereferences on conn and database. We may be already protected by the
language runtimes against such races.

The intent is to try the narrow solution first and then go for something
more invasive only if necessary.
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.

Database::~Database() segfault during checkpoint flush + per-write throughput collapse on ~60K-node graphs (0.16.0 and 0.16.1)

1 participant