Howard Chu wrote:
Howard Chu wrote:
Aaron Richton wrote:
Tested OK Solaris sparcv9; Fedora 20 x86_64.
On an aside...I am still seeing some lmdb issues, even at the most basic levels. "mtest" is the only thing that's simple enough to run. "mtest2" for example:
I see nothing like this on our sparc system -bash-3.00$ uname -a SunOS igil 5.10 Generic_137137-09 sun4u sparc SUNW,Sun-Fire-480R
What exactly are you running on?
None of the line numbers in your debug output match up with the line numbers in RE24 mdb.c. What git revision are you actually running? Do you have local patches to liblmdb?
I was able to reproduce this using the Sun compiler with -g and no optimization. (It didn't occur when optimization was enabled.)
(dbx) debug ./mtest2 (dbx) rm testdb/* (dbx) run mdb_env_open2:3825 new mdbenv mdb_env_init_meta:3472 writing new meta page mdb_env_open2:3876 opened database version 1, pagesize 8192 mdb_env_open2:3877 using meta page 0 mdb_env_open2:3878 depth: 0 mdb_env_open2:3879 entries: 0 mdb_env_open2:3880 branch pages: 0 mdb_env_open2:3881 leaf pages: 0 mdb_env_open2:3882 overflow pages: 0 mdb_env_open2:3883 root: 18446744073709551615 mdb_env_open:4484 opened dbenv 1001eac88 mdb_txn_begin:2698 begin txn 1w 1004f6f98 on mdbenv 1001eac88, root page 18446744073709551615 mdb_page_search:5068 tree is empty mdb_cursor_put:5976 ==> put db 1 key [696431], size 3, data size 48 mdb_cursor_put:6036 allocating new root leaf page mdb_page_new:6542 allocated new mpage 2, page size 8192 mdb_cursor_push:4845 pushing page 2 on db 1 cursor ffffffff7ffff5c8 mdb_cursor_put:6058 inserting key at index 0 mdb_node_add:6644 add to leaf page 2 index 0, data size 48 key size 3 [696431] Adding 334 values mdb_cursor_put:5976 ==> put db 2 key [31623120], size 4, data size 32 mdb_page_get:4907 page 8589934594 not found mtest2.c:64: mdb_put(txn, dbi, &key, &data, MDB_NOOVERWRITE): MDB_PAGE_NOTFOUND: Requested page not found t@1 (l@1) signal ABRT (Abort) in __lwp_kill at 0xffffffff6b9a900c 0xffffffff6b9a900c: __lwp_kill+0x0008: bcc,a,pt %icc,__lwp_kill+0x18 ! 0xffffffff6b9a901c Current function is main 64 if (RES(MDB_KEYEXIST, mdb_put(txn, dbi, &key, &data, MDB_NOOVERWRITE)))
In the back-mdb environment, test000 displays similar behavior.