josephg@gmail.com wrote:
Full_Name: Joseph Gentle Version: Gitorius master 2d6aed7 OS: MacOS URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (50.1.123.217)
Using the latest version of lmdb in https://gitorious.org/mdb/mdb (2d6aed7), I went into the liblmdb directory, ran make then ran the tests.
All tests crash with Segmentation Fault. Problem can be reproduced compiling with gcc or clang, and gcc on linux.
This is normal behavior. The tests do no error checking. The tests are not meant to be run blindly, you are expected to read their source code. Ordinarily I only "run" them by single-stepping under gdb so I can examine the library state at each point.
Closing this ITS.
env->me_txns is NULL in mdb.c line 1840.
Process 63426 stopped
- thread #1: tid = 0x1c03, 0x0000000100001a2d
mtest`mdb_txn_renew0(txn=0x0000000100103de0) + 125 at mdb.c:1840, stop reason = EXC_BAD_ACCESS (code=1, address=0x28) frame #0: 0x0000000100001a2d mtest`mdb_txn_renew0(txn=0x0000000100103de0) + 125 at mdb.c:1840 1837 } else { 1838 LOCK_MUTEX_W(env); 1839 -> 1840 txn->mt_txnid = env->me_txns->mti_txnid; 1841 txn->mt_toggle = txn->mt_txnid & 1; 1842 txn->mt_next_pgno = env->me_metas[txn->mt_toggle]->mm_last_pg+1; 1843 txn->mt_txnid++; (lldb) p env (MDB_env *) $0 = 0x0000000100103c70 (lldb) p env->me_txns (MDB_txninfo *) $1 = 0x0000000000000000