Recovering from Voron Errors
Voron errors described in this article are indicators that something had horribly gone wrong.
If such errors happen, they need to be reported as soon as possible to RavenDB Support.
Symptoms
-
RavenDB info level logs will contain the following exceptions:
- VoronUnrecoverableErrorException:
Index points to a non leaf page
- VoronUnrecoverableErrorException:
Was unable to retrieve the correct node. Data corruption possible
- VoronUnrecoverableErrorException:
Error syncing the data file. The last sync tx is...
- VoronUnrecoverableErrorException:
Possible Causes
-
Such exceptions are caused by the corruption of a Voron data file, which could occur due to a few reasons:
- Hardware failure of hard-drive or memory
- In compliance with RavenDB hardware and OS requirements
- Critical bug in
Voron
RavenDB Hardware And OS Requirements
-
A filesystem and hard-drive backing up a RavenDB server should have the following properties:
- support for
fsync
- support for
write-through
on windows andO_DIRECT
on Linux based OS.
- support for
Read more about fsync
across platforms here
Resolution
For the best results, simply restore a new database from a backup.
For more information, read this article about backup configuration.
If there is no recent/relevant backup available, it is possible to use the Voron Recovery Tool.
This tool can be used to recover intact data from the corrupted file and import it to a newly created database.
If the corruption has affected an index, it should simply be reset in order to restore normal functionality.
Note
If the corruption is caused by a hardware failure, identify and replace the faulty disk.