deephacks / lmdbjni

LMDB for Java
Apache License 2.0
204 stars 28 forks source link

Failed transaction, executes after reopening Env. But won't execute on newely created Env #71

Closed kk00ss closed 8 years ago

kk00ss commented 8 years ago

Reopening same environment, and performing just about the same transaction is totally fine. But when I create env, or copy env which was created, but never written to - transaction fails. Most likely an issue with LMDB, but since people using this project might have seen something like that - I'm asking it here. code for reproducing - there is quite a lot going on in Repository class. Just attempting to save 39KB results in an error, so I commented the line this.documentDB.put(tx, key.adday(), doc._2)

Any clues would be appreciated. UPD: Now I see #70 . Probably there is nothing more specific on this behavior.

kk00ss commented 8 years ago

It's strange but environment is changed after failed transaction, only headers. They probably contain the answer of why it works after restart. Hex compare of mdb files. I guess nothing else is changed - so I'm closing the issue..