[Date Prev][Date Next]
(ITS#8312) LMDB corruption, perhaps in freelist code
Full_Name: Martin Hedenfalk
OS: centos 7
Submission from: (NULL) (126.96.36.199)
Please find linked a test program (replay.c) that consistently fails on
my centos 7 system. It parses captured commands from a text file. I'm
afraid they are quite large, I haven't been able to reduce them further.
The problem manifests itself in many different ways in my real system,
sometimes I get MDB_CORRUPTED, sometimes MDB_BAD_TXN, sometimes errno EFBIG
(and an unexpectedly large file) and sometimes a NULL pointer crash in
Given that valgrind complains about invalid read of size 8 in
mdb_freelist_save/mdb_cursor_put, I'm *guessing* that the freelist code is
put'ing an invalid MDB_val, leading to corruption.
Any help is greatly appreciated.
See the linked backtrace.txt for example runs. There are three captured
replay logs (replay.txt) that show different failures.
This was tested with lmdb git master from github:
Author: Howard Chu <email@example.com>
Date: Wed Nov 18 10:24:41 2015 +0000
ITS#8311 add comment