reverbrain / eblob

Eblob is an append-only low-level IO library, which saves data in blob files. Created as low-level backend for elliptics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Plain write incorrectly moves key from blob which is under defragmentation.

shaitan opened this issue · comments

If plain write is called for a key from blob which is under defragmentation now, eblob moves it to the open blob.
Currently, eblob distorts/loses prepared size of the key while such moving that leads to failures of following plain writes.

From the log you can see that eblob_plain_writev calls eblob_write_prepare_disk_ll with incorrect prepare_disk_size.