Howard Chu
e7859934f2
mdbx: backport - ITS#8393 fix MDB_GET_BOTH on non-dup record.
...
Change-Id: I96028ff6de55915bab98a7d0e2d97072296fc769
2016-03-29 23:03:58 +03:00
Leo Yuriev
33e2b52118
mdbx: fix nasty/stupid mistake in cmp-functions.
...
Change-Id: If9aff5d9cd46dde614ddaa688113be8be12f3e5d
2016-03-29 23:03:58 +03:00
Leo Yuriev
321bc2b901
mdbx: fix one more minor warning.
...
Change-Id: I80466714d739fc46aedbedfee0919b64704ffc37
2016-03-25 05:08:35 +03:00
Leo Yuriev
e47f52a2f3
mdbx: fix gcc warnings.
...
Change-Id: Ic9014b947541a4d6c399b0d69dfc495cc98c70a2
2016-03-25 04:56:34 +03:00
Leo Yuriev
6a0c1c47a6
mdbx: fix mdb_kill_page() for MDB_PAGEPERTURB.
...
This should fix https://github.com/ReOpen/ReOpenLDAP/issues/73
Change-Id: I9514ae76ca3b56063ba345e9d06caed7ec2c1439
2016-03-17 14:47:45 +03:00
Leo Yuriev
e90613a98c
mdbx: more __inline/__hot.
...
Change-Id: I9a0971a6978c958c6d5e9ed2066630f2876f988f
2016-03-17 14:47:11 +03:00
Leo Yuriev
1b7f1bc60a
mdbx: drop lead_txnid(), g.e. undo tsan-aware changes.
...
Change-Id: I18a86661b0bd58bf74c644c0ed96bd836afc040c
2016-03-13 19:31:22 +03:00
Leo Yuriev
14ddec2051
mdbx: refine mdb_env_sync().
...
Change-Id: I37e6079a94a20624e65aed3e2e599bb4490afcc0
2016-03-13 19:18:54 +03:00
Leo Yuriev
4d9c0657d9
mdbx: refine mdb_meta_head_r().
...
Change-Id: I038862b3dada408de46f24175513d7522b1f89f5
2016-03-13 19:18:54 +03:00
Leo Yuriev
c05fb6862d
mdbx: mdbx_env_set_syncbytes() only for MDBX-mode.
...
Change-Id: I7836d4b7b538fc15407122ea40c36a2f8a5ae033
2016-03-12 20:45:16 +03:00
Leo Yuriev
eb429da210
mdbx: minors.
...
Change-Id: Id1d8ed5bf6ce253dc73b2e69e8701bffa83f7e12
2016-03-12 20:44:20 +03:00
Howard Chu
ded1ada9eb
mdbx: backport - Tweak MDB_PREV_MULTIPLE for uninit'd cursor.
...
Change-Id: I1f07e7c4d80631a1a0b2c70a936ef7b458baa11a
2016-03-03 15:51:46 +03:00
Leo Yuriev
9d775b0a36
mdbx: rework support for ThreadSanitizer.
...
Change-Id: I6a1cc980fa835215d2051f68bbf8580b747e6d6b
2016-03-03 15:51:46 +03:00
Leo Yuriev
c809b2e12c
mdbx: MDB_PAGEPERTURB instead of LDAP_MEMORY_DEBUG.
...
Change-Id: I87d2c0518c11f8ff27e5064b4d59900dfd2131fc
2016-03-03 14:38:44 +03:00
Leo Yuriev
c9642d1082
mdbx: MDB_PAGEPERTURB.
...
Change-Id: Id78304cb1f5caa3231e69388f6ce29a431e39976
2016-02-09 09:28:18 +03:00
Leo Yuriev
a47cdfebba
mdbx: fix percent in mdbx_txn_straggler().
...
fix 75ab3716fb
Change-Id: Ia63d89d189640c617da6e5e5c4567f5f8a2b84f8
2016-02-08 13:10:17 +03:00
Leo Yuriev
b949bbd169
mdbx: cleanup inherited errno's bug.
...
Change-Id: I0635f4e4a224ff4516859d12cc72b77aac41beec
2016-02-04 06:23:55 +03:00
Leo Yuriev
425ac1cde6
mdbx: fix madvise() flags, it is not a bitmask.
...
Change-Id: Ie5109779dc596190c467dcd6e84a1684e71575f5
2016-02-04 06:23:55 +03:00
Howard Chu
77d482ef1e
mdbx: backport - Happy New Year 2016.
...
Change-Id: I856f00f5cc7ef9cff0c7e93257ddcbd074e02c55
2016-02-01 21:03:53 +03:00
Howard Chu
e6ff451d84
mdbx: backport - ITS#8355 fix subcursors.
...
make sure C_DEL gets reset in subcursor after it moves.
Change-Id: I334cadcd981e7578d98e326e6bd785bed709a83a
2016-01-25 18:36:49 +03:00
Leo Yuriev
9d14f6a2ac
mdbx: avoid tsan-collision by mdb_env_reader_destr().
...
Change-Id: Ic87e67db6337e2e1fe1bc21d5e2bbde64b21935b
2016-01-25 15:21:23 +03:00
Leo Yuriev
c9c0549b4f
mdbx: fix madvise() flags.
...
Change-Id: If0ed3cd972fbc0caea486656ae05526aa2022574
2016-01-14 00:27:37 +03:00
Leo Yuriev
4ad241b864
mdbx: msync only used part instead of entire db.
...
Change-Id: I55611613f12d6e01599133336df183ada4d2de3d
2016-01-14 00:27:30 +03:00
Howard Chu
ba29ae2cd2
mdbx: backport - Add MDB_PREV_MULTIPLE.
...
Logical counterpart to GET_MULTIPLE, NEXT_MULTIPLE
Change-Id: I3f42cb1599997e79dbdc76bcf23b78314ededfc9
2016-01-09 22:28:39 +03:00
Hallvard Furuseth
b067025e8b
mdbx: backport - Catch strdup failure in mdb_dbi_open().
...
Change-Id: I754e8c966cc093f162cfbb33d3b179585e3ea4a2
2015-12-15 12:45:54 +03:00
Leo Yuriev
efda814f7e
mdbx: minor flags cleanup.
...
Change-Id: I6ebb0d76963c0bf41051ca97fba4ec6f564519e2
2015-12-13 19:49:53 +03:00
Howard Chu
3df7c4b1e1
mdbx: backport - ITS#8336 fix page_search_root assert on FreeDB.
...
Let "illegal" branch pages thru on the FreeDB - the condition
is only temporary and will be fixed by the time rebalance finishes.
Change-Id: I5d34fd96096f88638db55166aba7194dcef7e429
2015-12-13 19:49:22 +03:00
Hallvard Furuseth
4fcbaa44f3
mdbx: backport - ITS#8334 Fix MDB_APPENDDUP vs. rewrite(single item).
...
Change-Id: I7742bd2e75ef670dac31a46d270a96ee28c20639
2015-12-13 19:49:22 +03:00
Leo Yuriev
886fa96a5d
mdbx: tsan 'edge-mutex'.
...
Change-Id: If6fe58d9e1e334fbdaec529a14a78f5ebc6d8103
2015-12-13 19:41:08 +03:00
Leo Yuriev
24449c2a07
mdbx: avoid tsan-trap in mdb_txn_renew0() by me_live_reader.
...
Change-Id: I70f173d3e77c9cc84881c86e8fc64ae2a4906f0b
2015-12-13 19:41:07 +03:00
Leo Yuriev
f38bb9621f
mdbx: avoid tsan-trap in mdb_find_oldest().
...
Change-Id: Icaaf032fd3600b2ee61feb39d32af60c4e3bb0d5
2015-12-13 19:41:07 +03:00
Leo Yuriev
75ab3716fb
mdbx: avoid tsan-trap in mdbx_txn_straggler().
...
Change-Id: Ib62cdd5592e6001a1734c321f3801722e4dcf7e4
2015-12-13 19:41:07 +03:00
Leo Yuriev
4e5d5ef935
mdbx: avoid tsan-trap in mdb_meta_head_r().
...
Change-Id: I594c13e1fe908f8afdc663d349cfc4cf634bba77
2015-12-13 19:41:07 +03:00
Leo Yuriev
5bc0a76899
mdbx: avoid tsan-trap in mdb_txn_renew0() by mti_txnid.
...
Change-Id: Ia91bb913fc99880ec34fd0bf6fc9396555c6a56f
2015-12-13 19:41:07 +03:00
Leo Yuriev
50c480e2de
mdbx: avoid tran-trap in mdb_txn_renew0() by mt_flags.
...
Avoid read txn-flags from shared write TXN (e.g. env->me_tnx0->mt_flags)
without holding a write-mutex.
Change-Id: I3a3a64597f69b7df205043c567a51fe509247826
2015-12-13 19:41:07 +03:00
Leo Yuriev
dec88f8c35
mdbx: fix double-free on thread-destroy.
...
Seems this is fixes the https://github.com/ReOpen/ReOpenLDAP/issues/60
Change-Id: I29830a1b9cec0285edc976e6892678cd38e4445c
2015-12-13 19:40:58 +03:00
Howard Chu
d0a0b096ee
mdbx: backport - Cleanup C_DEL flag usage.
...
Only set it if the cursor's current position was deleted
Change-Id: I4c4c2fa157b73042419cb7b7e39e280a1eca155a
2015-11-25 19:08:26 +03:00
Leo Yuriev
2a6bfa56f0
mdbx: backport - more for cursor tracking.
...
Includes:
- ITS#8321 deinit empty cursors
Always unset C_INIT flag if the cursor's target DB has been deleted
- ITS#8321 Fix mdb_cursor_set
Always reinit mc_pg[0] if cursor is not C_INITIALIZED
It might have a stale value when using nested txns
- ITS#8321 mdb_put cursor needs tracking too
- ITS#8321 page_touch - don't fixup the cursor we just touched
- ITS#8321 More cursor fixup
Based on page_touch fixup from ITS#7594 but expanded:
make sure sub-cursors agree with main cursors.
- ITS#8321 cleanup unused var
Change-Id: I4b825e20e9d42d3166052e9b3e5bd0ac33b70e85
ITS#8321 fix ambiguity in cursor_put fixup
After delete/add of a node, other nodes may no longer be
pointing at the data they intended. This can confuse subsequent
fixups.
Change-Id: Id43406a9828b440735835b024e94e9b2d5a17693
2015-11-25 19:08:14 +03:00
Howard Chu
3eb38d2f1b
mdbx: backport - ITS#8323 Fix nested commit.
...
Must remove our spilled pages from parent's dirty list
Change-Id: Ic37bcea4975801e48832968ea38050064a581d21
2015-11-25 18:39:31 +03:00
Hallvard Furuseth
3e74ab2aee
mdbx: backport - CURSOR_TMP_[UN]TRACK() -> WITH_CURSOR_TRACKING().
...
Change-Id: I008b7db829765889fd63900b802f57eca0c6cd20
2015-11-25 18:09:11 +03:00
Leo Yuriev
aeea7ebb08
mdbx: backport - ITS#8321 a lot for cursor tracking.
...
Multiple bugs were fixed in the cursor fixups which
adjust other open cursors in response to various write ops.
Includes:
- ITS#8321 Fix del/dupsort.
When deleting a dupsort key, if other cursors pointed at that key,
set them to uninit'd, not EOF. They no longer have anything to
point at.
- ITS#8321 don't skip fixups on splitting cursors.
Adjustments can't be skipped, in recursive calls each level must
fixup their own level.
- ITS#8321 fix mdb_cursor_chk().
It was reporting spurious errors due to uninit'd cursors
- ITS#8321 fix mdb_cursor_shadow().
Set a valid txn so that cursor fixup code works on the shadows
- ITS#8321 fix mdb_cursor_put.
Ignore sub-cursors that shouldn't be fixed up
- ITS#8321 track temporary cursors.
In rebalance/split operations, temporary cursors need to be visible
to propagate fixups
- ITS#8321 simplify page_split fixups.
- ITS#8321 reorganize page_split fixups.
DUPFIXED fixups needed to occur after separator update.
MDB_RESERVE handling moved after split fixup.
Change-Id: I0c04acf54ebf6e84f32996b5723ec6fafb983ad9
2015-11-23 10:09:20 +03:00
Howard Chu
0a97fbcbab
mdbx: backport - ITS#8300 more for prev commit.
...
Just tell explicitly which direction we moved/merged from
Change-Id: Ib1868003d30f3afe71f105c2750253bbc6059610
2015-11-23 10:07:49 +03:00
Howard Chu
2154b585c6
mdbx: backport - Silence some valgrind uninit warnings.
...
Change-Id: Ie26d7bd08a3a4d4ceb833093a9117f1ebaca6cb0
2015-11-23 10:07:49 +03:00
Howard Chu
90fdef7a6a
mdbx: backport - Refix root split check from 5da67968afb599697d7557c13b65fb961ec408dd.
...
Change-Id: If012ddcf223a3312bbe13c4b24d776b488ed3772
2015-11-23 10:07:49 +03:00
Howard Chu
6ba0b8b467
mdbx: backport - ITS#8316 cursor fixup in page_merge.
...
Deleting the merged page requires bumping down other ki's
of the page's parent.
Change-Id: Ifc94e26b8755ede2400521556556a6824bc2c62b
2015-11-23 10:07:49 +03:00
Leo Yuriev
bf81e86d93
mdbx: prevents use the env after a fork().
...
Change-Id: I9c86500ac008a7be7eb16aeff2610fa5cfa22b84
2015-11-22 17:48:30 +03:00
Howard Chu
7e2000ef7a
mdbx: backport - ITS#8315 fix ovpage_free.
...
Keep dirty_room sync'd with dirty_list
Change-Id: I9e52a72df95ffb504740e8daecf65b62970e9f25
2015-11-19 20:44:49 +03:00
Howard Chu
12cd2361e7
mdbx: backport - ITS#8313 more for ITS#8062.
...
dummy flags must be init'd due to 3d46d550
Change-Id: I3d543bd3e059da9b007f1e752f20171acc183679
2015-11-19 20:44:44 +03:00
Hallvard Furuseth
86abc397e8
mdbx: backport - ITS#8312 Fix loose pages in commit(nested txn).
...
Change-Id: Ie335dcff0c87cfc13abf9b937f5d058d3ea9d841
2015-11-19 20:44:13 +03:00
Leo Yuriev
0230e4fda2
mdbx: clarify fsync/fdatasync comment.
...
Change-Id: I2209b5e65ca8c04ff2de9b1b789f1993f24ab454
2015-11-19 19:05:02 +03:00