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

java.lang.AssertionError: data were read beyond record size, check your serializer. version 1.0.9 #1000

Open trandem opened 2 years ago

trandem commented 2 years ago

Hi I use MemoryDirectDB. Here is my code

 protected DB makeDB() {
        final DBMaker maker = DBMaker.newMemoryDirectDB().transactionDisable().cacheDisable();
        return maker.make();
    }

Map<Long, Position>  positions = this.db.createHashMap(name).keySerializer(Serializer.BASIC).valueSerializer(new MapdbSerializer()).make();

this MapdbSerializer is similar with Serializer.BYTE_ARRAY my project in run into long time (many months) and sometimes I get this log "data were read beyond record size, check your serializer". I check my serializer it's ok and I have read your code but do not find a problem.

And when this error occur I restart system and put my data to your map it's still ok

As you can see I read all bytes with size. this size is written when I serialze. I use version 1.0.9