jankotek / mapdb

MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine.
https://mapdb.org
Apache License 2.0
4.87k stars 873 forks source link

Exception in thread "main" org.mapdb.DBException$GetVoid: Record does not exist, recid=368 #1001

Open phuhv56 opened 2 years ago

phuhv56 commented 2 years ago

When I get data from HTreeMap using get() method sometimes get this error:

Exception in thread "main" org.mapdb.DBException$GetVoid: Record does not exist, recid=368 at org.mapdb.StoreWAL.get(StoreWAL.kt:504) at org.mapdb.HTreeMap.leafGet(HTreeMap.kt:1372) at org.mapdb.HTreeMap$htreeIterator$1.moveToNextLeaf(HTreeMap.kt:1055) at org.mapdb.HTreeMap$htreeIterator$1.(HTreeMap.kt:1045) at org.mapdb.HTreeMap.htreeIterator(HTreeMap.kt:1035) at org.mapdb.HTreeMap$KeySet.iterator(HTreeMap.kt:973) at java.util.AbstractCollection.toString(AbstractCollection.java:454) at java.lang.String.valueOf(String.java:2994) at java.io.PrintStream.println(PrintStream.java:821) Or: Exception in thread "main" org.mapdb.DBException$GetVoid: Record does not exist, recid=69 at org.mapdb.StoreWAL.get(StoreWAL.kt:504) at org.mapdb.HTreeMap.valueUnwrap(HTreeMap.kt:1198) at org.mapdb.HTreeMap.getprotected(HTreeMap.kt:644) at org.mapdb.HTreeMap.containsKey(HTreeMap.kt:584)

Currently I'm running in concurrent environment and using 3.0.8 version. It only happened sometimes and I dont know why is it? Someone meet this case before please explain for me. Thanks