reverbrain/eblob — pull request #33 by SaveTheRbtz (2013-08-13 22:12:40+00:00)
Title: Bugfixes: handling of malformed databases, iterators and indexes

Iterators:
* Propagate internal and external `iterator` errors to caller:
This fixes incomplete `data-sort`s and `recover`ies in case of badly corrupted indexes.

Indexes:
* Check index entries on start to avoid startup with broken indexes:
We ignore minor index corruptions and in case of fatal errors we bail out, print diagnostics and fail `eblob_init`.

Misc:
* Fixed `eblob_total_elements`:
Now it returns difference between total number of entries in database and number of removed entries;
* Various bugfixes and sanity checks.

PS. http://doc.reverbrain.com/eblob:tools:eblob_merge coming later today.
PPS. This pull request introduces some non-trivial changes in `iteration`/`startup` that should be carefully tested.