Insert-during-iterate deadlock #74
Labels
api
bug
Something isn't working
good first issue
Good for newcomers
help wanted
Extra attention is needed
Discussed in #73
Originally posted by dbbnrl August 3, 2024
In my application I sometimes generate DB entries from existing entries. The pattern is that I iterate over a range of existing keys, occasionally creating new entries (outside the iterator range) as I go.
It looks like Fjall is deadlocking in this scenario after some number of insertions. I thought perhaps using the snapshot feature would help, but it makes no difference.
Glancing at the code, I can see that
create_iter
takes a bunch of Read locks which it holds until the iterator is dropped. Presumably the insert code is attempting to grab a Write lock at some point (memtable flush?) so this isn't a surprising outcome...I thought about reporting this as an issue but if this kind of usage is an explicit non-goal of Fjall I didn't want to do that.
Is this supported? Supportable?
The text was updated successfully, but these errors were encountered: