Commit graph

23060 commits

Author SHA1 Message Date
Hallvard Furuseth
99427aa7de Drop me_pgfree, add mdb_freelist_save().
Split up saving me_pghead, to make me_pgfree unneeded. Also mf_pghead
is now a midl. Needed after e7f6767ea8
("Return fresh overflow pages to current pghead").
Tweak MDB_DEBUG freelist output, make it ascending.
2013-06-12 17:20:42 +02:00
Howard Chu
c2cac4588a Fix CURSOR_NEXT/PREV on emptied DB 2013-06-11 17:13:08 -07:00
Howard Chu
bcb67dd22f Make sure mdb_stat() gets valid data 2013-06-08 14:10:08 -07:00
Howard Chu
e7f6767ea8 Return fresh overflow pages to current pghead
And remove them from the current dirty list.
2013-06-06 16:44:02 -07:00
Howard Chu
aff123ba11 ITS#7594 more for subDB cursor fix 2013-06-05 16:13:43 -07:00
Howard Chu
3b623d66e1 ITS#7594 better fix
Update the subDB cursor, don't invalidate it
2013-06-05 15:23:54 -07:00
Howard Chu
65faa5ed7e tweak mdb_copy, trap signals 2013-05-30 15:56:30 -07:00
Howard Chu
d29b9600e6 Windows portability fixes for prev commit 2013-05-30 15:33:59 -07:00
Howard Chu
f207c50b15 Add warning about interrupting copy 2013-05-30 13:13:33 -07:00
Howard Chu
ad573fe125 Fix prev commit 2013-05-30 13:09:28 -07:00
Howard Chu
c68e5ae9be Add mdb_env_copyfd()
Allow writing backup to an already opened file handle, for piping
to tar/gzip/ssh/whatever.
2013-05-30 13:06:12 -07:00
Jan Synacek
95241fae6c ITS#7611 Fix loglevel2bvarray 2013-05-29 07:31:15 -07:00
Howard Chu
1d252a9236 Disable databases & overlays (experimental)
Do not use. backend/overlay code needs to be fixed accordingly.
In particular, code which currently frees configuration in _db_close()
must be changed to free only in _db_destroy().

After restructuring, it must be possible to call _db_close()/_db_open()
multiple times in succession without requiring _db_config() in between.
2013-05-28 13:09:44 -07:00
Howard Chu
b7df586674 ITS#7608 allow slapadd w/unknown RDNs for config DB 2013-05-27 18:51:34 -07:00
Howard Chu
288e0041de ITS#7590 tweak bdb/hdb/mdb notes 2013-05-27 11:34:46 -07:00
Howard Chu
f27236b0c0 ITS#7588 plug memleak 2013-05-27 11:17:05 -07:00
Howard Chu
6dab36e97a ITS#7608 promoted attrs must have valid ad_index 2013-05-27 08:57:15 -07:00
Howard Chu
9649281f7b ITS#7609 add per-target filter patterns 2013-05-26 18:43:46 -07:00
Howard Chu
4b49291653 Add _M_IX86 macro for MSVC 2013-05-25 10:16:55 -07:00
Howard Chu
a3de7c29ae ITS#7604 fix modrdn, base-scope search 2013-05-24 11:08:25 -07:00
Howard Chu
1748f03041 ITS#7588 fix possible NULL-deref in prev commit 2013-05-24 08:23:44 -07:00
Stef Walter
ffe383c27b ITS#7583 Fix ldap_init_fd() for LDAP_PROTO_UDP
ldap_init_fd() tried to handle UDP sockets but was missing
certain key pieces to make it work. Fill in the address and
set the UDP flag correctly.
2013-05-23 12:40:09 -07:00
Howard Chu
63312f109f ITS#7582 CLDAP, avoid ref to uninit'd memory 2013-05-23 12:36:15 -07:00
Howard Chu
e31c7d3b31 ITS#7594 De-init other subcursors in page_touch 2013-05-23 12:17:21 -07:00
Howard Chu
3d5e7ef0d2 ITS#7581 more for prev commit 2013-05-23 11:45:05 -07:00
Howard Chu
82d7e9d8ab ITS#7581 fix back-meta config checks
Allow base entry to be added online with targets
added later. Add SLAP_SERVER_RUNNING flag to note
that main slap_startup has already occurred.
2013-05-23 10:54:50 -07:00
Hallvard Furuseth
92fe958805 Drop unused liblmdb MIDL-range support. 2013-05-21 23:58:57 +02:00
Hallvard Furuseth
feaeab0c04 Factor out mdb_find_oldest,mdb_dlist_free,dirty_list.
Do not rescan reader table (mdb_find_oldest) after "goto again".
Skip clearing dirty_list[nonzero].mid in mdb_dlist_free(); it
was not done in mdb_reset0() anyway.
2013-05-21 23:55:13 +02:00
Hallvard Furuseth
5ea1cd8f6d mdb_stat cleanup.
Exit with success when there was no failure.
Do not use data containing NUL as a DB name (which is a C string).
2013-05-21 23:48:27 +02:00
Hallvard Furuseth
a1b16ce5f0 ITS#7598 Tweak MDB_<NEXT/PREV>_NODUP,fix mdb_stat.
MDB_NEXT_NODUP, MDB_PREV_NODUP: Allow for non-MDB_DUPSORT databases.
No mdb.c code changes needed.

mdb_stat.c: Use MDB_NEXT_NODUP, to avoid a crash with a DUPSORT mainDB.
2013-05-21 22:44:51 +02:00
Hallvard Furuseth
1b6d7ee7e1 ITS#7598 mdb_dbi_open(named DB): Check mainDB flags.
Reject attempts to open named databases if the main
database has flag MDB_DUPSORT or MDB_INTEGERKEY.

DUPSORT would require an xcursor for the DB, INTEGERKEY
would expect the DB name to be a binary integer.
2013-05-21 19:04:52 +02:00
Hallvard Furuseth
a2ce25482a ITS#7515 Fix nested txn touch of subpage/ovpage.
mdb_page_touch(): Don't touch a subpage, replacing with non-subpage.
mdb_cursor_put(): Don't overwrite ancestor txn's dirty overflow page.
2013-05-20 23:12:52 +02:00
Hallvard Furuseth
5bdf2aae6e Tweak mdb_page_malloc(),mdb_page_get() semantics.
mdb_page_malloc(): Add "number of pages" parameter.
mdb_page_get(): Add output param for how page was found.
Do not set return params on error.
mdb_cursor_put(): Catch mdb_page_get() error.

Prepares for next commit, no change in caller behavior other
than on mdb_page_get error.
2013-05-20 23:12:26 +02:00
Hallvard Furuseth
2eb50b1d2e More ITS#7589 followup: OVPAGES() -> mp_pages. 2013-05-19 19:08:07 +02:00
Hallvard Furuseth
e4ce404992 More ITS#7589: Fix prev commit.
mp_pages gives #pages in the ovpage. OVPAGES() no longer does.
2013-05-19 18:38:13 +02:00
Hallvard Furuseth
0cdd9dffdd ITS#7589 mdb_cursor_put(): Update ovpage nodesize.
Update the nodesize when overwriting an overflow page.
As before, do not attempt to shrink the page.
2013-05-17 19:31:17 +02:00
Howard Chu
a8c1438688 ITS#7577 more alias deref checks 2013-05-17 09:15:36 -07:00
Howard Chu
37c8b35ebd Cleanup, fix syncrepl config errmsg 2013-05-17 07:51:23 -07:00
Howard Chu
5ba27410ae Merge remote-tracking branch 'origin/mdb.master' 2013-05-16 17:23:29 -07:00
Howard Chu
833cd905b7 Include <netinet/in.h> for Solaris 8
Needed for <resolv.h>, which is needed for BYTE_ORDER.
2013-05-15 11:50:40 -07:00
Howard Chu
81f4d50c77 Merge remote-tracking branch 'origin/mdb.master' 2013-05-14 17:12:33 -07:00
Howard Chu
7233bc295b Fix mdb_page_split - nested split
If updating a page's separator triggers a split in its parent,
we may have missed adjusting the parent's cursor position.
2013-05-14 16:57:50 -07:00
Howard Chu
1105aa35ba Doxygen cleanup 2013-05-13 12:36:47 -07:00
Howard Chu
68cb9ae250 ITS#7588 fix double-free for sorted paged search 2013-05-13 08:12:40 -07:00
Howard Chu
4a6adbf589 Merge remote-tracking branch 'origin/mdb.master' 2013-05-10 13:04:44 -07:00
Howard Chu
9ebd5992c9 Fix 66c839f029
Forgot #include <errno.h>
2013-05-10 05:56:16 -07:00
Howard Chu
66c839f029 Refactor mdb_midl_append, add mdb_midl_grow() 2013-05-09 17:27:29 -07:00
Hallvard Furuseth
2d6aed7537 ITS#7515 Fix nested transaction error handling.
mdb_txn_begin(): Do not free(mt_free_pgs), it needs mdb_midl_free().
mdb_txn_commit(): Catch commit(child) error.
2013-05-05 15:13:31 +02:00
Hallvard Furuseth
521fdb00cc Fix mdb_env_close(unopened MDB_env).
Do not try to scan me_dbxs in a closed/never-opened MDB_env.
Broken by 7d643d3acb
and 151c416b46.
2013-05-05 14:26:05 +02:00
Hallvard Furuseth
0b9a208530 Simplify/cleanup mdb_cursor_init, C_ALLOCD.
No real change.
mdb_cursor_init() checks if it needs mx, so pass it unconditionally.
Set C_ALLOCD for shadow cursors, for clarity. (It was always set as
it should anyway from the origin cursor, which would have C_ALLOCD.)
2013-05-04 12:53:43 +02:00