Details
Description
Unexpected exception, exiting abnormally
java.io.IOException: CRC check failed
org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(FileTxnLog.java:612)
org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:157)
org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:223)
org.apache.zookeeper.server.ZooKeeperServer.loadData(ZooKeeperServer.java:272)
org.apache.zookeeper.server.ZooKeeperServer.startdata(ZooKeeperServer.java:399)
To reproduce, set the preAllocSize to 8MB, the jute.maxbuffer to 20MB and try saving a 15MB node several times.
In my case the erroneous CRC appears after the second save. I use the LogFormatter class to detect it.
I suspect that the CRC error happens when the new transaction log is created, the code probably expects to have enough room to save the transaction when creating a new file, but it's too small.
Attachments
Issue Links
- relates to
-
ZOOKEEPER-2994 Tool required to recover log and snapshot entries with CRC errors
- Closed
- links to