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

Serialized serializer classnames non-deterministically corrupted #977

Open beckyconning opened 3 years ago

beckyconning commented 3 years ago

"org.mapdb.Serializer#BYTE_ARRA‡" note the "missing" last character.

\x6f\x72\x67\x2e\x6d\x61\x70\x64\x62\x2e\x53\x65\x72\x69\x61\x6c\x69\x7a\x65\x72\x23\x42\x59\x54\x45\x5f\x41\x52\x52\x41\xc2\x87
exception: Could not load object: org.mapdb.Serializer#BYTE_ARRA‡
List(org.mapdb.DB.nameCatalogGetClass(DB.kt:409)
, org.mapdb.DB$HashMapMaker.open2(DB.kt:879)
, org.mapdb.DB$HashMapMaker.open2(DB.kt:559)
, org.mapdb.DB$Maker.make2(DB.kt:1395)
, org.mapdb.DB$Maker.createOrOpen(DB.kt:1363)
, org.mapdb.DB$HashMapMaker.createOrOpen(DB.kt:961)
, sdbe.run.PrecogStore$.$anonfun$timestampedStore$1(PrecogStore.scala:439)
, cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:87)
, cats.effect.internals.IORunLoop$RestartCallback.signal(IORunLoop.scala:359)
, cats.effect.internals.IORunLoop$RestartCallback.apply(IORunLoop.scala:380)
, cats.effect.internals.IORunLoop$RestartCallback.apply(IORunLoop.scala:323)
, cats.effect.internals.IOShift$Tick.run(IOShift.scala:35)
, java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
, java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
, java.lang.Thread.run(Thread.java:748)
)

Happy to provide more information on request. Thanks.

beckyconning commented 3 years ago

This seems to be happening almost every time currently. Any idea why?

beckyconning commented 3 years ago

Hi, today we started work on transitioning away from MapDB due to this error affecting about a quarter of our customers.

We have read through all the MapDB source code and haven't find the offending code but if we can get some hints or tasks on what to do to resolve this we'd be happy to put the work in.

In testing we are experiencing this almost every day.

If it can be resolved we can save about a month of work and stay on MapDB.

Have you ever experienced this issue or have any idea as to what may be causing it?

We've been using MapDB 3.0.8.

Thanks!

beckyconning commented 3 years ago

Hi! Just to let you know we've moved away from using MapDB due to this issue. If this gets resolved in the future we may consider switching back. Thanks!