Aaron Richton wrote:
On Mon, 30 Jul 2012, Howard Chu wrote:
Most likely you need to do a make clean first.
I threw that into my build process just for kicks, but my builds always start with a rm -Rf and fresh untar as step 0, so it'd have to be un-clean in git itself. I'm not sure that's what's going on here:
Strange. make test is clean for me on Solaris 10 / Sparc 64 and sparc 32.
I get: 50183fbc mdb_db_open: database "o=OpenLDAP Project,l=Internet": dbenv_open(/export/home/hyc/OD/o24_64/tests/testrun/db.1.a). mdb_env_open2:2435 new mdbenv mdb_env_init_meta:2224 writing new meta page mdb_env_open2:2505 opened database version 1, pagesize 8192 mdb_env_open2:2506 using meta page 0 mdb_env_open2:2507 depth: 0 mdb_env_open2:2508 entries: 0 mdb_env_open2:2509 branch pages: 0 mdb_env_open2:2510 leaf pages: 0 mdb_env_open2:2511 overflow pages: 0 mdb_env_open2:2512 root: 18446744073709551615 mdb_env_open:3041 opened dbenv 1006ae4b0 mdb_txn_begin:1676 begin txn 1w 1008afd80 on mdbenv 1006ae4b0, root page 18446744073709551615 mdb_page_search:3526 tree is empty mdb_cursor_put:4237 ==> put db 1 key [61643269], size 4, data size 48 mdb_cursor_put:4248 allocating new root leaf page mdb_page_new:4657 allocated new mpage 2, page size 8192 mdb_cursor_push:3352 pushing page 2 on db 1 cursor ffffffff7ffff3e0 mdb_cursor_put:4483 inserting key at index 0 mdb_node_add:4758 add to leaf page 2 index 0, data size 48 key size 4 [61643269] mdb_page_search:3540 db 1 root page 2 has flags 0x12 mdb_page_search_root:3469 found leaf page 2 for key [646e3269] mdb_node_search:3237 searching 1 keys in leaf page 2 mdb_node_search:3285 found leaf index 0 [61643269], rc = 3 mdb_cursor_put:4237 ==> put db 1 key [646e3269], size 4, data size 48 mdb_page_search:3540 db 1 root page 2 has flags 0x12 mdb_page_search_root:3469 found leaf page 2 for key [646e3269] mdb_node_search:3237 searching 1 keys in leaf page 2 mdb_node_search:3285 found leaf index 0 [61643269], rc = 3 mdb_cursor_put:4483 inserting key at index 1 mdb_node_add:4758 add to leaf page 2 index 1, data size 48 key size 4 [646e3269] mdb_page_search:3540 db 1 root page 2 has flags 0x12 mdb_page_search_root:3469 found leaf page 2 for key [69643265] mdb_node_search:3237 searching 2 keys in leaf page 2 mdb_node_search:3285 found leaf index 0 [61643269], rc = 8 mdb_node_search:3285 found leaf index 1 [646e3269], rc = 5 mdb_cursor_put:4237 ==> put db 1 key [69643265], size 4, data size 48 mdb_page_search:3540 db 1 root page 2 has flags 0x12 mdb_page_search_root:3469 found leaf page 2 for key [69643265] mdb_node_search:3237 searching 2 keys in leaf page 2 mdb_node_search:3285 found leaf index 0 [61643269], rc = 8 mdb_node_search:3285 found leaf index 1 [646e3269], rc = 5 mdb_cursor_put:4483 inserting key at index 2 mdb_node_add:4758 add to leaf page 2 index 2, data size 48 key size 4 [69643265] mdb_page_search:3526 tree is empty
Breakpoint 2, mdb_ad_read (mdb=0x10046ebc0, txn=0x1008afd80) at ../../../../r24/servers/slapd/back-mdb/attr.c:551 551 while ( rc == MDB_SUCCESS ) { (gdb)
When you get into mdb_page_search just before this crash, break at line 549 and print *mc print *mc->mc_db
I get Breakpoint 3, mdb_ad_read (mdb=0x10046f9c0, txn=0x1008b0b80) at ../../../../r24/servers/slapd/back-mdb/attr.c:549 549 rc = mdb_cursor_get( mc, &key, &data, MDB_SET ); (gdb) p *mc $3 = {mc_next = 0x0, mc_orig = 0x0, mc_xcursor = 0x0, mc_txn = 0x1008b0b80, mc_dbi = 2, mc_db = 0x1008b0c48, mc_dbx = 0x1008af3d0, mc_dbflag = 0x1008b27ea "\001\001\001", mc_snum = 0, mc_top = 0, mc_flags = 16, mc_pg = {0x0, 0x5920696e74656765, 0x724d617463682053, 0x594e54415820312e, 0x332e362e312e342e, 0x312e313436362e31, 0x31352e3132312e31, 0x2e32372053494e47, 0x4c452d56414c5545, 0x1006a63b0, 0x1006a68f0, 0x80, 0x1006a69e0, 0x7b387d2820312e33, 0x2e362e312e342e31, 0x2e34322e322e3237, 0x2e382e312e39204e, 0x414d452027707764, 0x4c6f636b6f757427, 0x20455155414c4954, 0x5920626f6f6c6561, 0x6e4d617463682053, 0x594e54415820312e, 0x332e362e312e342e, 0x312e313436362e31, 0x31352e3132312e31, 0x2e372053494e474c, 0x1006a63b0, 0x29000001006a7040, 0x90, 0x1006a7140, 0x7b397d2820312e33}, mc_ki = {11830, 11825, 11828, 11825, 11828, 12846, 12846, 12855, 11832, 11825, 11825, 12320, 20033, 19781, 8231, 28791, 25676, 28515, 27503, 30068, 17525, 29281, 29801, 28526, 10016, 17745, 21825, 19529, 21593, 8297, 28276, 25959}} (gdb) p *mc->mc_db $4 = {md_pad = 0, md_flags = 8, md_depth = 0, md_branch_pages = 0, md_leaf_pages = 0, md_overflow_pages = 0, md_entries = 0, md_root = 18446744073709551615} (gdb)
The value of mc->mc_db.md_root should be as shown.
mdb_env_open2:2435 new mdbenv mdb_env_init_meta:2224 writing new meta page mdb_env_open2:2505 opened database version 1, pagesize 8192 mdb_env_open2:2506 using meta page 0 mdb_env_open2:2507 depth: 0 mdb_env_open2:2508 entries: 0 mdb_env_open2:2509 branch pages: 0 mdb_env_open2:2510 leaf pages: 0 mdb_env_open2:2511 overflow pages: 0 mdb_env_open2:2512 root: 18446744073709551615 mdb_env_open:3041 opened dbenv 100915280 mdb_txn_begin:1676 begin txn 1w 100b16bb0 on mdbenv 100915280, root page 18446744073709551615 mdb_page_search:3526 tree is empty mdb_cursor_put:4237 ==> put db 1 key [61643269], size 4, data size 48 mdb_cursor_put:4248 allocating new root leaf page mdb_page_new:4657 allocated new mpage 2, page size 8192 mdb_cursor_push:3352 pushing page 2 on db 1 cursor ffffffff7fffebd8 mdb_cursor_put:4483 inserting key at index 0 mdb_node_add:4758 add to leaf page 2 index 0, data size 48 key size 4 [61643269] mdb_page_search:3540 db 1 root page 2 has flags 0x12 mdb_page_search_root:3469 found leaf page 2 for key [646e3269] mdb_node_search:3237 searching 1 keys in leaf page 2 mdb_node_search:3285 found leaf index 0 [61643269], rc = 3 mdb_cursor_put:4237 ==> put db 1 key [646e3269], size 4, data size 48 mdb_page_search:3540 db 1 root page 2 has flags 0x12 mdb_page_search_root:3469 found leaf page 2 for key [646e3269] mdb_node_search:3237 searching 1 keys in leaf page 2 mdb_node_search:3285 found leaf index 0 [61643269], rc = 3 mdb_cursor_put:4483 inserting key at index 1 mdb_node_add:4758 add to leaf page 2 index 1, data size 48 key size 4 [646e3269] mdb_page_search:3540 db 1 root page 2 has flags 0x12 mdb_page_search_root:3469 found leaf page 2 for key [69643265] mdb_node_search:3237 searching 2 keys in leaf page 2 mdb_node_search:3285 found leaf index 0 [61643269], rc = 8 mdb_node_search:3285 found leaf index 1 [646e3269], rc = 5 mdb_cursor_put:4237 ==> put db 1 key [69643265], size 4, data size 48 mdb_page_search:3540 db 1 root page 2 has flags 0x12 mdb_page_search_root:3469 found leaf page 2 for key [69643265] mdb_node_search:3237 searching 2 keys in leaf page 2 mdb_node_search:3285 found leaf index 0 [61643269], rc = 8 mdb_node_search:3285 found leaf index 1 [646e3269], rc = 5 mdb_cursor_put:4483 inserting key at index 2 mdb_node_add:4758 add to leaf page 2 index 2, data size 48 key size 4 [69643265] mdb_page_get:3390 page 8589934594 not found Assertion failed: p != NULL, file ./../../../libraries/libmdb/mdb.c, line 3391
Assertion failed: p != NULL, file ./../../../libraries/libmdb/mdb.c, line 3391
current thread: t@1 [1] __lwp_kill(0x0, 0x6, 0xffffffffffffffe6, 0x0, 0x0, 0x0), at 0x7fffffff7f8a900c [2] raise(0x6, 0x0, 0xffffffff7fffe180, 0x0, 0x0, 0x0), at 0x7fffffff7f859150 [3] abort(0x4f, 0x0, 0x4f, 0x7efefeff, 0x81010100, 0xff00), at 0x7fffffff7f83eac8 [4] __assert(0x10034bd88, 0x10034bd98, 0xd3f, 0x100909480, 0x100909480, 0x64), at 0x7fffffff7f83edcc =>[5] mdb_page_get(txn = 0x100b10dc0, pgno = 8589934594U, ret = 0x1009094d8), line 3391 in "mdb.c" [6] mdb_page_search(mc = 0x100909490, key = 0xffffffff7fffead8, flags = 0), line 3533 in "mdb.c" [7] mdb_cursor_set(mc = 0x100909490, key = 0xffffffff7fffead8, data = 0xffffffff7fffeac8, op = MDB_SET, exactp = 0xffffffff7fffe9c8), line 3906 in "mdb.c" [8] mdb_cursor_get(mc = 0x100909490, key = 0xffffffff7fffead8, data = 0xffffffff7fffeac8, op = MDB_SET), line 4100 in "mdb.c" [9] mdb_ad_read(mdb = 0x1006b3730, txn = 0x100b10dc0), line 549 in "attr.c" [10] mdb_db_open(be = 0x100694ff0, cr = 0xffffffff7fffee4c), line 231 in "init.c" [11] backend_startup_one(be = 0x100694ff0, cr = 0xffffffff7fffee4c), line 224 in "backend.c" [12] backend_startup(be = 0x100694ff0), line 325 in "backend.c" [13] slap_startup(be = (nil)), line 219 in "init.c" [14] main(argc = 8, argv = 0xffffffff7ffff298), line 991 in "main.c"
-- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/