Truncating a dynamically created volume results in corrupted journal
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Akiban Persistit |
Confirmed
|
Medium
|
Peter Beaman |
Bug Description
If you dynamically load a volume, truncate it (without adding any trees), and then close it, the next time the database is initialized a fatal exception is thrown:
[JOURNAL_COPIER] WARNING Missing volume truncated referenced at journal address 364
[main] WARNING Missing volume truncated referenced at journal address 17,004 (6 similar occurrences in 0 seconds)
Exception in thread "main" com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at Truncate.
Changed in akiban-persistit: | |
importance: | Undecided → Medium |
assignee: | nobody → Peter Beaman (pbeaman) |
status: | New → Confirmed |
Marked this medium because there are probably workaround solutions to avoid having to truncate a non-temporary volume. For example, and application could simply delete all the trees in the volume.
More fundamentally, we need to incorporate management of Tree and Volume instances into the transaction protocol and deal with issues such as transaction A needing to read an old copy of the volume while Transaction B is truncating it. A design for these improvements is underway.