Leo Yuriev
4bdeed9bd3
mdbx: fix thread-local-storage memleak.
...
This fix a TLS-memleak for thread from which mdbx_env_close_ex()
has been called. Bug was added by while fixing the
https://github.com/ReOpen/ReOpenLDAP/issues/48
In general we should explicitly free(), because
pthread_key_delete() don't calls a destructor.
Change-Id: Ic55a2348caf3be34b4331d5ad101ea33dbbdfa97
2015-11-19 19:05:02 +03:00
Leo Yuriev
cee258fe86
mdbx: fix uninit fields in page_malloc().
...
Change-Id: I35a162d6b391d33eda4d508e9c1af7238b33665d
2015-11-19 19:05:02 +03:00
Leo Yuriev
fed7922b30
mdbx: link tools librt.so with --no-as-needed.
...
Change-Id: I9c5096320b264aa14f1905d15e9bd495087d1bb9
2015-11-14 13:42:44 +03:00
Leo Yuriev
34d95c08eb
mdbx: refines robust mutex usage for glibc.
...
Change-Id: I986d10999121747b05ea132dde20b6daccc2e080
2015-11-14 13:27:15 +03:00
Howard Chu
380c61bcf7
mdbx: backport - ITS#8310 fix mdb_rebalance cursor fixup.
...
When collapsing root, must adjust entire cursor stack
Change-Id: If62c42f556311e785aa414954a3d7fddc077cf62
2015-11-14 13:07:19 +03:00
Leo Yuriev
01f5b5e209
Merge branch 'devel'
2015-11-10 09:15:20 +03:00
Howard Chu
ab0b0ec7ce
mdbx: backport - ITS#8304 fix page_merge (mdb_del cursor tracking).
...
Was using the pre-touch dst page pointer instead of the touched page
Change-Id: Ib41af356dcf883b923dbfbbc7591a02483ee54dd
2015-11-10 09:12:33 +03:00
Leo Yuriev
f32dab22df
Merge branch 'devel'
2015-11-06 17:50:15 +03:00
Howard Chu
ee26517b5d
mdbx: backpost - ITS#8300 fix rebalance after node_move.
...
ITS#8258, ITS#7829 fixes checked parent index to see if we were moving
from a left neighbor. Should have just checked to see if current index
was 0, meaning we added on the left. (Parent index may not tell us
anything meaningful after a nested rebalance.)
Includes:
- ITS#8300 fix node_move
Don't adjust other cursors when we added a node on the right.
- ITS#8300 more for node_move fixups
When moving a node from the right neighbor, a different
adjustment is needed.
- ITS#8300 simplify
- ITS#8300 more for node_move
When moving a node from one page to another, make sure other cursors'
parent index gets adjusted too.
2015-11-06 17:46:51 +03:00
Howard Chu
7890eb8a8e
mdbx: backport - ITS#8238 fix DUPFIXED page_split.
...
Parent mc_ki wasn't adjusted if new_indx was > split point
Change-Id: I45548e378e53bad5ce7a3a7c2b8236d592f3c412
2015-11-06 17:46:31 +03:00
Howard Chu
f35fb03f86
mdbx: backport - ITS#8299 fix page_merge cursor fixup.
...
The parent's mc_ki has changed. We need to fix that up as well
in other cursors.
Change-Id: I1f422a07ed75b99f3e36075749800c892ca6d5ec
2015-11-06 17:46:31 +03:00
Leo Yuriev
b430c9a22f
mdbx: Add MDB_USE_ROBUST to control Robust Mutexes.
...
Backported from origin.
Change-Id: I416c1d09fb1f290423f29a84831accdaf4436ab0
2015-11-06 17:26:41 +03:00
Howard Chu
372a6d8521
lmdb: origin - CHANGES, More misc updates.
...
Change-Id: I1f86203b89c895ba8caf7916173b23c7e2a211d9
2015-11-06 16:58:47 +03:00
Leo Yuriev
a542ceeae5
Merge branch 'master' into devel
2015-11-06 16:27:59 +03:00
Leo Yuriev
c6e010a872
mdbx: fix segfault on close when open failed.
2015-10-31 13:56:12 +03:00
Leo Yuriev
60387be4a5
Merge branch 'master' into devel
2015-10-21 00:24:44 +03:00
Leo Yuriev
0f82e6e5fd
mdbx: Makefile split 'check' and 'tests' targets.
2015-10-21 00:04:35 +03:00
Leo Yuriev
dc3256e91c
mdbx: adds signatures to detect ABI mixup.
2015-10-20 23:59:06 +03:00
Howard Chu
ad808146c8
lmdb: ITS#7771 fix cursor tracking on fake pages.
...
node_del shifts nodes around, cursors pointing at fake pages
need to have their mc_pg[0] corrected.
Includes ITS#7771 more for prev commit.
2015-10-19 16:07:03 +03:00
Howard Chu
f6045ae77e
lmdb: ITS#8263 fix cursor tracking in cursor_put.
...
Includes ITS#8263 streamline prev patch.
2015-10-19 16:06:28 +03:00
Leo Yuriev
68171d5f5d
lmdb: provide both interfaces - advanced 'mdbx' and original 'lmdb'.
2015-10-13 23:50:25 +03:00
Leo Yuriev
09c140c1f4
lmdb: detach from ReOpenLDAP project.
2015-10-12 20:01:16 +03:00
Howard Chu
73cfae2522
lmdb: ITS#8264 fix cursor_del cursor tracking.
...
Some destination fixups need to happen immediately after nodes
are moved, before rebalancing
Change-Id: Ia4258cae368ff0ef96b7835cc421f2db40f7f741
2015-10-11 22:21:37 +03:00
Leo Yuriev
8473370d65
lmdb: CHANGES - ITS#7377, #8237 , #8221 , #8256 , #8258 .
...
Change-Id: Id825ceaf0fbb9575c0dbfd9f69997013d6f1fad0
2015-10-11 22:21:05 +03:00
Howard Chu
f2d0824bdb
lmdb: ITS#8258 fix rebalance/split.
...
The tree height can also increase during rebalance, not just shrink.
This can happen if update_key needs to split a parent branch page.
Change-Id: Ie232bd9f4a6225b912b912a68f0b35411a632317
2015-10-06 10:13:27 +03:00
Hallvard Furuseth
305ba98967
lmdb: Fix typo in mdb_tassert().
...
No effect on current code.
Change-Id: Ia935ba784c33e3704ea1cfa1d59a1f28d2c527f8
2015-10-06 10:11:18 +03:00
Howard Chu
3f27fb7822
lmdb: ITS#8259 fix usage ordering.
...
Change-Id: I8c6f844e211b403a5652760da0e0a4836cbdf95b
2015-10-06 10:06:57 +03:00
Howard Chu
ef72fbaea6
lmdb: ITS#8221 don't merge branch pages needlessly.
...
Change-Id: I6b535f70392e081027d8803b6623b0c51f21ec8b
2015-10-06 10:05:46 +03:00
Luke Yeager
8e7fbfa063
lmdb: ITS#8256 Create install directories if needed.
...
Change-Id: Ie44f8529989fd77da0415d0c898b4af3451a851a
2015-10-06 09:59:51 +03:00
Leo Yuriev
8e2a9a9a78
lmdb: deferred cleanup of reader's threads.
...
This should fix https://github.com/ReOpen/ReOpenLDAP/issues/48
Change-Id: I67feb3a9852f183dcbe83626321896ba43a591b7
2015-09-07 02:38:10 +03:00
Howard Chu
83ba70e3be
lmdb: ITS#8237 fix ITS#7589 regression.
...
Change-Id: Idd3c95f6e515f0f70c7fd33257c80354a3953f2f
2015-09-06 22:57:01 +03:00
Leo Yuriev
1b78961cf6
lmdb: fix clang warnings.
...
Change-Id: I6586b44c21872e7a1e128d0053837b73ed4448ec
2015-09-06 11:30:16 +03:00
Leo Yuriev
4554b8f62c
all: fix build by clang (defines, warnings).
...
Conflicts:
contrib/slapd-modules/usn/usn.c
Change-Id: I68572808e30a35fdd14aa0a459cfbb8da4be6dc5
2015-09-05 18:35:32 +03:00
Leo Yuriev
fa0751771e
lmdb: properly link with librt.so compatibility.
...
Add '--no-as-needed' to LDFLAGS before -lrt.
Otherwise ld may drop dependency to librt.so,
and DSO could't be loaded when glibc < 2.17.
Change-Id: I06f34958d7efc8c56dd80ce2a55a2b8425e791cd
2015-09-05 18:30:30 +03:00
Leo Yuriev
abda67f23e
lmdb: minor Makefile update, CFLAGS from environment.
...
Change-Id: I1c36f6bbc064136b404b5de18a88961309883018
2015-09-05 13:18:58 +03:00
Leo Yuriev
16a30be8fc
lmdb: minor refine mdb_chk output,
...
mostly for 'zero size-of-entry' error.
Change-Id: I0f7ae514860ea05179fd929b76f78ba843902e92
2015-09-03 17:26:23 +03:00
Leo Yuriev
07ee471b1c
lmdb: me_maxkey_limit always computed and checked against MDB_MAXKEYSIZE at opening env.
...
Change-Id: Ice0a425900a8c7b37d5b6cfcd1434edc8d400a74
2015-09-02 18:08:43 +03:00
Leo Yuriev
f7d8812e6c
lmdb: n-entries info from b-tree traversal in mdb_chk.
...
Change-Id: Ic9343dcdba976ac51c8f5776d2f7c9fed59da8e0
2015-09-02 17:53:48 +03:00
Leo Yuriev
9106e80fba
lmdb: refine output of mdb_chk.
...
Change-Id: Ic4982e5f4df313f3226e49444951d08fcd6ea2d5
2015-09-02 16:19:13 +03:00
Leo Yuriev
15e0600b6c
lmdb: major rework of traversal b-tree for mdb_chk.
...
Change-Id: I9d382516f76092f44fc1a12d7554039582b87656
2015-09-02 16:19:12 +03:00
Leo Yuriev
8ff2458003
lmdb: refine and flush output in mdb_chk.
...
Change-Id: Ia3c744918f73de4648c088ec6b56d44860378447
2015-09-01 15:14:00 +03:00
Leo Yuriev
fd4163d784
lmdb: mdb_chk informs about elapsed time.
...
Change-Id: I8066563b1c427e48179d7163a534bc242037f4cc
2015-09-01 13:43:22 +03:00
Leo Yuriev
de0cf8dfbb
lmdb: refine exit-codes in mdb_chk.
...
Change-Id: I003ff0d887e3e0fb0439d201efcf4a76e8e69aac
2015-09-01 13:31:03 +03:00
Leo Yuriev
e7f58da2ac
lmdb: support for a utterly no-sync mode,
...
by combination of MDB_NOSYNC and MDB_MAPASYNC.
Change-Id: I3e2d6c8f044a7522436dab4d0818d4d59b78b78d
2015-09-01 12:15:59 +03:00
Leo Yuriev
030aca6816
lmdb: fix lmdb_load for properly restoration of dbi-flags.
...
Change-Id: I634fd36e3259afd0ddac23c4cb21631f96ba1c86
2015-08-31 23:47:37 +03:00
Leo Yuriev
e955d64ebf
lmdb: made mdb_load compatible with mdb_dump.
...
Ignores 'duplicates=' and 'db_pagesize=',
drops 'duplicates=' from mdb_dump and mdb_chk.
Change-Id: I295d19c8382fee1d5779b047aec5220788e5dd9c
2015-08-31 23:28:05 +03:00
Leo Yuriev
55cbf745ff
lmdb: follow mdb_dump to ITS#8181.
...
Update mdb_dump corresponding to I5ebce36694045279702c74490a5a634217d4f95d.
Change-Id: I813bb6b4eedd9aba6f79b9c566331a1c053b53a2
2015-08-31 22:57:23 +03:00
Leo Yuriev
1be4140abf
lmdb: mdb_chk allows interruption of b-tree travesersal.
...
Change-Id: Ia59236dcb575203baebf9e65310cdf1e700c33ce
2015-08-31 21:43:00 +03:00
Leo Yuriev
37b3629329
lmdb: '-s' option for mdb_chk to processing only a specific subdb.
...
Change-Id: Iad44204a9cadde3620de98194aa31f7420c8a2aa
2015-08-31 21:34:57 +03:00
Leo Yuriev
69beb1525f
lmdb: '-d' option to mdb_chk for disabling b-tree traversal.
...
Change-Id: Ifd3bb0d93a4fa6d93f46b547fd73ee92dc331418
2015-08-31 20:58:41 +03:00