Hallvard Furuseth
0599dee9d4
ITS#8021 doc: Don't mix MDB_WRITEMAP + non-WRITEMAP
2015-01-12 12:20:31 +01:00
Howard Chu
bf3961e3c7
More cleanup for fdatasync hack
2015-01-12 10:41:32 +00:00
Howard Chu
e85c944a3a
Tweak conditionals for fdatasync hack
2015-01-11 11:41:08 +00:00
Howard Chu
0b9f42d1f4
ITS#8021 env_sync is invalid in RDONLY env
2015-01-09 11:25:07 +00:00
Howard Chu
4500d49f36
fdatasync hack, again
...
Check for ext3/ext4 fs, then check kernel version.
2015-01-08 13:03:55 +00:00
Howard Chu
888a76f651
Revert "Fix prev commit for env_sync0"
...
This reverts commit e95c9231fc .
Revert "Hack for potential ext3/ext4 corruption issue"
This reverts commit 91155b9d67 .
2015-01-08 12:57:08 +00:00
Howard Chu
fa255d0fed
ITS#8020 fix 64bit hash finalizer
2015-01-07 17:48:49 +00:00
Quanah Gibson-Mount
a8bb1769f5
Merge remote-tracking branch 'origin/mdb.RE/0.9'
2014-12-22 12:13:26 -06:00
Howard Chu
fe8b13f225
Tweak fdatasync hack description
2014-12-22 18:07:08 +00:00
Quanah Gibson-Mount
eb8c94919e
Merge remote-tracking branch 'origin/mdb.RE/0.9'
2014-12-20 19:31:13 -06:00
Howard Chu
e95c9231fc
Fix prev commit for env_sync0
2014-12-21 00:14:16 +00:00
Quanah Gibson-Mount
5e028ae839
Merge remote-tracking branch 'origin/mdb.RE/0.9'
2014-12-17 23:39:37 -06:00
Howard Chu
02495837dc
Update for fsync hack
2014-12-18 04:46:43 +00:00
Howard Chu
91155b9d67
Hack for potential ext3/ext4 corruption issue
...
Use regular fsync() if we think this commit grew the DB file.
2014-12-18 04:45:02 +00:00
Quanah Gibson-Mount
bae699bfd9
Merge remote-tracking branch 'origin/mdb.RE/0.9'
2014-12-17 13:21:24 -06:00
Howard Chu
e6ac9c2314
Update for 0.9.15
2014-12-17 15:29:48 +00:00
Quanah Gibson-Mount
ef95ee1755
Merge remote-tracking branch 'origin/mdb.RE/0.9'
2014-12-16 02:01:33 -06:00
Howard Chu
a0accc86f2
Fix MDB_APPEND doc
...
We actually compare the new key against the last key, to prevent
corruption.
2014-12-15 20:45:02 +00:00
Hallvard Furuseth
f1417e2634
make clean: remove *.lo
2014-12-15 20:44:42 +00:00
Howard Chu
dcccd8a89a
Clarify mdb_dbi_open doc
...
The concurrency restriction is on threads within a single process.
Multiple processes can use mdb_dbi_open without affecting each other.
2014-12-15 20:44:30 +00:00
Quanah Gibson-Mount
c46c6ecfa4
Merge remote-tracking branch 'origin/mdb.RE/0.9'
2014-12-10 17:09:29 -06:00
Howard Chu
234931acb0
ITS#8001 fix ldap_sync_initialize
2014-12-10 22:58:33 +00:00
Leo Yuriev
196e07ca58
ITS#7987 fix excessive space for single write txn
2014-12-05 21:07:55 +00:00
Hallvard Furuseth
f284c3232d
Fix WIN32 -> _WIN32
2014-12-05 18:43:07 +01:00
Hallvard Furuseth
8704eff591
mdb_strerror: Silence warning @ Windows
2014-12-01 20:17:27 +01:00
Hallvard Furuseth
5bf495abdc
Fix comments
2014-12-01 20:17:27 +01:00
Hallvard Furuseth
3aa7537adc
Simplify recent changes a bit.
2014-12-01 20:17:27 +01:00
Hallvard Furuseth
17bf75b12e
ITS#7961,#7987 Re-fix txn init.
...
More fallout from 4d02c741b1 :
Don't modify another thread's write txn. Reinit me_txn0 fully.
2014-12-01 20:17:13 +01:00
Howard Chu
3ce002fd13
ITS#7959 fix prev commit
...
fstat returns -1, not an errno. Move code into its own function
for reuse.
2014-12-01 20:15:36 +01:00
Howard Chu
ce40f4f314
ITS#7961 fix txn init
...
More fallout from 4d02c741b1
2014-12-01 20:15:36 +01:00
Jean-Christophe DUBOIS
042e76685e
ITS#7959 Check fstat return value
...
Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>
2014-12-01 20:15:36 +01:00
Leo Yuriev
c473091f8f
ITS#7841 trivial cleanup
...
TRIVIA - lmdb: clean testdb-dir while "make test".
2014-12-01 20:15:36 +01:00
Howard Chu
98ed192949
ITS#7956 fix compact of empty env
2014-12-01 20:15:36 +01:00
Howard Chu
af99820ac8
ITS#7955, #7671 fix MDB_PREV_DUP
2014-12-01 20:15:36 +01:00
Howard Chu
0482f1898d
ITS#7953 .gitignore *.lo
2014-12-01 20:15:35 +01:00
Howard Chu
9227f66673
ITS#7952 .gitignore mdb_dump/load
2014-12-01 20:15:35 +01:00
Howard Chu
20ad21dcc4
Don't use -fPIC for static lib
2014-12-01 20:15:35 +01:00
Howard Chu
df9da7c7be
Must do dlist_free before releasing Wmutex
2014-12-01 20:15:35 +01:00
Howard Chu
9eede0b103
Free write mutex earlier in txn_reset0
2014-12-01 20:15:30 +01:00
Mark Reynolds
7a7d941943
ITS#7979 MozNSS fix for TLS_PROTOCOL_MIN
...
Fix NSS code to check for TLS_PROCOTOL_MIN, and then set the SSL
version range(min and max). Also updated SSL version string map
table to support up to TLSv1.3
2014-11-13 15:11:40 +00:00
Howard Chu
d06073d0d6
Fix a1e3b1cf3c
...
copy/paste error
2014-10-15 11:11:08 +01:00
Howard Chu
b36bd703d7
ITS#7967 fix abandon regression
...
From ITS#7712, avoid double-free of request
2014-10-15 11:08:29 +01:00
Kurt Zeilenga
055996fc2e
closedir() replacement function should return a result
...
return success, ignoring result of FindClose
2014-10-10 12:15:48 -07:00
Kurt Zeilenga
a1e3b1cf3c
Fix pointer incompatibility issue on some platforms
...
Don't assume tv_sec is a time_t.
2014-10-10 11:56:31 -07:00
Howard Chu
a7639a66a4
Android also only has memalign
2014-09-25 19:25:56 +01:00
Howard Chu
63c706ff2b
Merge remote-tracking branch 'origin/mdb.master'
2014-09-20 07:28:07 +01:00
Howard Chu
2f587ae081
new date
2014-09-20 07:24:32 +01:00
Howard Chu
fd1bf39770
Merge remote-tracking branch 'origin/mdb.master'
2014-09-19 02:30:32 +01:00
Howard Chu
62e4eeb7f7
ITS#7943 reinit txn flags
...
When reusing the main write txn
2014-09-19 01:45:43 +01:00
Howard Chu
cdcf70eeb6
Merge remote-tracking branch 'origin/mdb.master'
2014-09-18 02:12:33 +01:00
Howard Chu
891e662754
Plug leak in 4d02c741b1
...
Free writer txn on env_close
2014-09-18 01:22:02 +01:00
Howard Chu
674f52fdb4
Silence some clang warnings
2014-09-16 21:54:07 +01:00
Quanah Gibson-Mount
20407ec5da
Merge remote-tracking branch 'origin/mdb.master'
2014-09-15 13:53:04 -05:00
Howard Chu
b9495245b4
Release 0.9.14
2014-09-15 19:48:32 +01:00
Quanah Gibson-Mount
46331f0216
Merge remote-tracking branch 'origin/mdb.master'
2014-09-13 16:24:58 -05:00
Quanah Gibson-Mount
5ee99f1125
Change retry to num times 60. Testing shows that on a known dataset, this has the same growth behavior as 2.4.39, while num times 20 resulted in significant growth.
2014-09-13 16:21:17 -05:00
Howard Chu
3646ba966c
More for me_pgoldest
...
Leave it in main env struct, it doesn't need to be rolled back
with nested txns.
2014-09-09 19:44:23 +01:00
Howard Chu
29fd241fad
Remember oldest reader txnid
...
Don't walk the readers table unless we really need to.
2014-09-09 19:40:05 +01:00
Howard Chu
4d02c741b1
Use a single write txn
2014-09-04 10:40:11 +01:00
Howard Chu
8d346721a6
Merge remote-tracking branch 'origin/mdb.master'
2014-08-24 21:21:26 +01:00
Howard Chu
a054a194e8
ITS#7913 cleanup
...
we already checked for data == NULL, drop unnecessary if
2014-08-24 21:18:03 +01:00
Howard Chu
ff6bc13166
Merge remote-tracking branch 'origin/mdb.master'
2014-08-21 17:41:09 -07:00
Howard Chu
8fbbc71506
More for MIPS
...
Move CACHEFLUSH, avoid unnecessary if()
2014-08-21 17:40:20 -07:00
Howard Chu
55957253cc
Merge remote-tracking branch 'origin/mdb.master'
2014-08-17 20:49:13 -07:00
Howard Chu
4008e5e583
Partially revert ada2630699
...
Of course, MacOSX only has posix_memalign, and only in recent versions.
(Older versions could use valloc instead. That precludes ever changing
the LMDB pagesize to be different from the OS pagesize.) Not all that
crucial since it only affects mdb_env_copyfd1.
2014-08-17 20:44:53 -07:00
Howard Chu
b814f85920
Merge remote-tracking branch 'origin/mdb.master'
2014-08-17 14:56:55 -07:00
Hallvard Furuseth
cf4fe3b1fb
Microoptimize loose pages
2014-08-17 01:50:32 +02:00
Hallvard Furuseth
1e7eeed28d
Fix loose pages in mdb_freelist_save().
...
Leaving them in dirty_list caused breakage. Instead merge them
into me_pghead at the end, when no more pages will be allocated.
2014-08-17 00:29:12 +02:00
Hallvard Furuseth
983f896aa7
Split out mdb_midl_xmerge, add MDB_IDL_ALLOCLEN
2014-08-16 11:34:44 +02:00
Howard Chu
6e430cca90
Merge remote-tracking branch 'origin/mdb.master'
2014-08-11 11:02:31 -07:00
Howard Chu
992a96e171
ITS#7917
2014-08-11 11:01:20 -07:00
Howard Chu
322cd26a7b
ITS#7917 fix mdb_dbi_open
...
Don't let dummy go out of scope
2014-08-11 11:00:11 -07:00
Howard Chu
ada2630699
Just use memalign, not posix_memalign
...
Everything has it. Solaris doesn't have posix_memalign.
2014-08-07 11:06:53 -07:00
Howard Chu
2d731f8876
Merge remote-tracking branch 'origin/mdb.master'
2014-08-06 08:36:17 -07:00
Howard Chu
899b23f89d
More for MIPS
...
Do a cacheflush after writing data pages, separate from meta's cacheflush
2014-08-04 11:40:24 -07:00
Howard Chu
ae0c9f484d
ITS#7793 more for branch key update
2014-08-04 09:26:35 -07:00
Howard Chu
9cf1749f73
ITS#7793 doc update, again
2014-08-04 05:13:29 -07:00
Howard Chu
f21f15e5a0
ITS#7793 update branch key if needed
2014-08-04 04:57:53 -07:00
Howard Chu
9febe03eb5
More for MIPS
...
Paranoia for 3630066843 do the
cacheflush before setting mti_txnid.
2014-08-02 10:33:35 -07:00
Quanah Gibson-Mount
1f6f4f4f28
Merge remote-tracking branch 'origin/mdb.master'
2014-07-31 12:56:49 -05:00
Howard Chu
8498c6cba2
ITS#7913 mdb_cursor_get(*_DUP) cleanup
...
FIRST_DUP/LAST_DUP should succeed even on non-duplicate values
PREV_DUP should reset cursor's EOF flag.
2014-07-31 09:59:52 -07:00
Howard Chu
3630066843
Fix MIPS cache coherency on Linux
...
MIPS chips require manual control of on-chip caches. The cacheflush
syscall being used here only exists on MIPS Linux, other OSs will
require revisiting.
2014-07-26 18:16:02 -07:00
Quanah Gibson-Mount
011eb3a27c
Merge remote-tracking branch 'origin/mdb.master'
2014-07-24 12:07:44 -05:00
Howard Chu
d098184f61
Update date
2014-07-24 04:15:45 -07:00
Howard Chu
082bac1492
more for mdb_cursor_count
...
return MDB_NOTFOUND if the cursor is empty
2014-07-24 04:13:55 -07:00
Hallvard Furuseth
6cb1166635
Fix mdb_copy & co when MDB pagesize < OS pagesize
2014-07-24 04:04:24 -07:00
Howard Chu
1b08d8e503
ITS#7789 doc updates
2014-07-23 17:31:34 -07:00
Hallvard Furuseth
81b502e17e
ITS#7789 Fix mdb_env_write_meta().
...
Always write mapsize = max(other metapage:mapsize, env:mapsize).
2014-07-23 17:25:42 -07:00
Howard Chu
7ef970436d
Revert ITS#7789 commits, let's try this again.
...
Revert "ITS#7789 Fix resize vs MDB_NOMETASYNC, and a comment."
Revert "ITS#7789 more"
Revert "Revert "ITS#7789 update RESIZED errmsg text""
Revert "ITS#7789 update RESIZED errmsg text"
Revert "ITS#7789 persist mapsize changes"
This reverts commit 02285aca58 .
This reverts commit 38e71c68de .
This reverts commit a5e4eecb1e .
This reverts commit d8e18551c3 .
This reverts commit 5926e54bba .
2014-07-23 17:19:33 -07:00
Quanah Gibson-Mount
fd0bdcb6c6
Merge remote-tracking branch 'origin/mdb.master'
2014-07-22 12:30:27 -05:00
Howard Chu
eef1ca007f
ITS#7027 actually implement RFC 2782 shuffle
2014-07-21 22:17:21 -07:00
Howard Chu
31995b535e
ITS#7027 fix bugs in prev commit
2014-07-21 22:12:22 -07:00
James M Leddy
5de85b922a
ITS#7027 Implement priority/weight for DNS SRV records
...
From RFC 2782:
A client MUST attempt to contact the target host with the
lowest-numbered priority it can reach.
This patch sorts the DNS SRV records by their priority, and
additionally gives records with a larger weight a higher probability
of appearing earlier. This way, the DNS SRV records are tried in the
order of their priority.
2014-07-21 19:31:59 -07:00
Howard Chu
015d6b909a
Fix env_open mode bits
2014-07-21 18:20:31 -07:00
Quanah Gibson-Mount
35f4443679
Merge remote-tracking branch 'origin/mdb.master'
2014-07-21 11:00:14 -05:00
Howard Chu
58e9c3add8
Fix mdb_cursor_count, reject uninit'd cursor
2014-07-21 08:33:59 -07:00
Howard Chu
fcb0768e7d
Silence prototype warnings
2014-07-21 08:11:33 -07:00
Ryan Tandy
9b36358270
ITS#7851 tell lutil_b64_pton the correct target buffer size
2014-07-18 09:42:22 -07:00
Howard Chu
204637b18d
Typo
2014-07-14 09:53:53 -07:00
Howard Chu
9049efe493
ITS#7896 fix for mdb_env_map
...
Don't pass non-NULL map address unless MDB_FIXEDMAP was used.
2014-07-14 09:53:36 -07:00
Howard Chu
3102cbbd55
ITS#7859 more for revert
2014-07-11 12:38:16 -07:00
Howard Chu
189f312d64
ITS#7859 refix
...
This was actually broken by 65e163d2 , ITS#6947. Reverting both
of those changes and fixing #6947 again.
2014-07-11 12:29:15 -07:00
Quanah Gibson-Mount
eb5faf5928
Merge remote-tracking branch 'origin/mdb.master'
2014-07-10 13:38:10 -05:00
Howard Chu
886ee41d55
More for cursor EOF
...
Must also set in sub-cursor if deleting entire subDB
2014-07-09 15:03:54 -07:00
Howard Chu
7f038d0f15
Zero-init copy2 writebuf
2014-07-09 12:05:37 -07:00
Hallvard Furuseth
2825ad64c2
MDB_MAXKEYSIZE = 0 (dynamic value) when MDB_DEVEL
2014-07-09 20:18:08 +02:00
Hallvard Furuseth
b3dedde612
MDB_DEVEL doxygen fix
2014-07-09 20:17:13 +02:00
Hallvard Furuseth
02285aca58
ITS#7789 Fix resize vs MDB_NOMETASYNC, and a comment.
2014-07-09 20:16:33 +02:00
Howard Chu
bda6a60ad4
Windows fixes
...
Always set the filesize when opening for writes. Otherwise
can't use backups from mdb_copy.
2014-07-09 10:22:25 -07:00
Howard Chu
f3573a7383
Windows compat
...
We mainly use Win32 functions, so cannot just use C-runtime strerror
to return error messages. We have to use Win32-specific messages.
Unfortunately, we document the API to return C-runtime error codes,
so we can't just switch to all Win32 error codes.
2014-07-09 10:02:21 -07:00
Howard Chu
c4d0f90fce
Fix loading of printable dump
...
Off-by-one in end check, would complain on valid input.
2014-07-09 09:16:03 -07:00
Howard Chu
38e71c68de
ITS#7789 more
...
persist size changes from env_open() as well. This was the
original behavior.
2014-07-09 06:54:32 -07:00
Howard Chu
a5e4eecb1e
Revert "ITS#7789 update RESIZED errmsg text"
...
This reverts commit d8e18551c3 .
And partially reverts mapsize check. Only mapsize increases are relevant.
2014-07-09 06:19:06 -07:00
Howard Chu
d5371347e8
ITS#7825 more
...
Set read txn's dbiseqs to env's. Set child txn's dbiseqs to parent's.
Simplify DBI_CHANGED test, no need to check md_name. No-op dbi_close
of already closed handle.
2014-07-09 05:55:30 -07:00
Howard Chu
e0273020bd
Updates #7789 , #7825
2014-07-08 21:40:11 -07:00
Howard Chu
276aa55969
ITS#7825 more
...
only update dbiseq in dbi_open on write txns
2014-07-08 21:31:48 -07:00
Howard Chu
04851e442f
ITS#7825 tweak prev commit
...
dbiseqs are only checked in write txns so omit from read txns
2014-07-08 21:22:07 -07:00
Howard Chu
0401f2deed
ITS#7825 add MDB_BAD_DBI error code
...
Use DBI sequence numbers to detect DBIs being closed while in use.
2014-07-08 21:02:40 -07:00
Howard Chu
d8e18551c3
ITS#7789 update RESIZED errmsg text
2014-07-08 20:05:31 -07:00
Howard Chu
5926e54bba
ITS#7789 persist mapsize changes
...
Write decreases too, not just increases. Check for any size change
that was not requested by this process.
2014-07-08 19:18:02 -07:00
Howard Chu
604256ceff
Update LMDB version date/info
2014-07-08 16:37:28 -07:00
Howard Chu
2f04728471
ITS#7892 Fix MacOSX section name
2014-07-08 16:27:03 -07:00
Quanah Gibson-Mount
bfd8b3a42a
Merge remote-tracking branch 'origin/mdb.master'
2014-07-08 17:21:10 -05:00
Hallvard Furuseth
e1a676eb18
ITS#7713 cleanups
...
'#ifdef MDB_DEVEL' -> '#if MDB_DEVEL'
Fix comments, use actual PAGEBASE macro as originally intended.
Actually enable 64K pages. Set MDB_DATA_VERSION for testing only.
2014-07-08 15:01:18 -07:00
Hallvard Furuseth
6ed295b256
Fixes for loose pages
...
mdb_txn_commit(child): Give loose pages to parent.
Use a pointer beyond the page header instead of mp_next, so
we will not need to save/restore mp_pgno. This avoids a crash
caused by references to mp_pgno.
2014-07-08 14:39:57 -07:00
Howard Chu
b3e8c71dc7
Re-fix cursor EOF
...
Fix in 534dcc7212 was in wrong place
2014-07-08 11:54:24 -07:00
Howard Chu
68e6faad5c
ITS#7713 handle 65536 byte page size
...
Fix mp_lower/mp_upper to exclude PAGEHDRSZ, which means our
max mp_upper is now pagesize - PAGEHDRSZ and won't overflow.
Currently must define MDB_DEVEL to use. Will be default for
LMDB 1.0/OpenLDAP 2.5
2014-07-07 17:31:15 -07:00
Howard Chu
534dcc7212
Set xcursor EOF after deleting last entry
2014-07-07 17:13:51 -07:00
Howard Chu
1ac5147fc1
Compacting copy doesn't need to snapshot metas
2014-07-06 17:47:25 -07:00
Howard Chu
61f7ec9bfa
Windows fixes
2014-07-06 07:49:38 -07:00
Howard Chu
7d996d7f3d
Play games with object file layout
...
Use gcc section attribute to keep less frequently used functions
away from main code.
2014-07-05 08:48:47 -07:00
Howard Chu
3e98addbe2
Rationalize mdb_env_copy2 API
2014-07-05 07:49:10 -07:00
Howard Chu
059b357d1a
More tweaks to copyfd2
...
Make sure the writer thread starts and stops when we expect it to.
2014-07-03 14:26:14 -07:00
Howard Chu
03f0ecb001
More copyfd2 tweaks
2014-07-03 10:49:05 -07:00
Howard Chu
6043103c13
Fix envinfo to return fixed map address
2014-07-03 08:31:57 -07:00
Howard Chu
64191264b8
Windows compat
2014-07-03 07:49:22 -07:00
Howard Chu
8836b78e94
Fix subDB/ovpage copying
2014-07-02 11:44:06 -07:00
Howard Chu
af3c340758
Larger WBUF still better on large DB
2014-07-02 08:07:11 -07:00
Howard Chu
342cd72f25
Don't check LEAF2 pages for subnodes
2014-07-02 07:45:12 -07:00
Howard Chu
4009c9ae65
Add mdb_env_copy2()
...
And mdb_env_copyfd2(). Perform compaction on the copy. Trims out
freed pages and renumbers data pages in sequential order. This is
more CPU-intensive since it copies and modifies data pages.
2014-07-01 21:45:43 -07:00
Howard Chu
4d65cf1326
dump/load need mapsize etc.
2014-07-01 18:53:47 -07:00
Howard Chu
c5be1292ac
All diagnostics should go to stderr
2014-07-01 05:15:44 -07:00
Ryan Tandy
7d2f9c6277
ITS#7877 assume gnutls is at least 2.12.0
2014-06-30 20:08:38 -07:00
Ryan Tandy
0fd0f24f03
ITS#7877 assume gnutls provides cipher suites
2014-06-30 20:08:17 -07:00
Ryan Tandy
829027945f
ITS#7877 use nettle instead of gcrypt
2014-06-30 20:07:41 -07:00
Howard Chu
ee599c5250
More gcov setup tweaks
2014-06-30 04:42:41 -07:00
Howard Chu
b09e46904c
ITS#7886 fix mdb_copy write size
...
Don't try to write past end of file
2014-06-30 04:41:50 -07:00
Hallvard Furuseth
91d8ad1d3c
Fix mdb_page_loose() vs. mdb_page_flush().
...
Do not overwrite loose pages' mp_pgno with mp_next.
mdb_page_flush() will use mp_pgno to rebuild dirty_list.
2014-06-28 13:38:03 +02:00
Howard Chu
c73f087750
Trap signals
...
Try to exit cleanly to avoid leaving stale readers. Not
a critical issue since mdb_reader_check can take care of
them, but still cleaner.
2014-06-27 10:53:11 -07:00
Howard Chu
277526d0f0
Setup for gcov/coverage testing
2014-06-26 05:19:47 -07:00
Quanah Gibson-Mount
f6eacdbbc5
Merge remote-tracking branch 'origin/mdb.master'
2014-06-24 13:46:07 -05:00
Howard Chu
a3e5539505
More for mdb_page_loose
...
Require that the page is dirty in the current txn,
not a parent txn.
2014-06-24 11:43:13 -07:00
Howard Chu
7fe85f5c82
More MDB -> LMDB renames
2014-06-24 04:42:44 -07:00
Howard Chu
9a4ef8406e
Doc updates
...
Rename MDB -> LMDB
Integrate tool manpages
2014-06-24 04:16:19 -07:00
Howard Chu
dda779d83e
Windows64 32/64 silliness
...
On Windows64, long is the same size as int. Use size_t when we
need an actual 64 bit unsigned long.
2014-06-23 08:00:11 -07:00
Howard Chu
ca47c2af1f
ITS#7879 Windows build compatibility
...
Just use srand/rand, we don't care about the quality
of the random numbers, we just want some data.
2014-06-23 07:39:06 -07:00
Howard Chu
225bcae3e7
Flesh out mdb_cmp_cint for BigEndians
2014-06-23 07:36:38 -07:00
Howard Chu
aa89ca31b3
More for page_loosen
...
Don't try this when working on the FreeDB. Again,
too much hassle to unkink the recursions...
2014-06-22 16:39:14 -07:00
Howard Chu
d9423e13f8
More cleanup for page_merge, page_loosen
...
Only loosen src page if it's actually dirty.
Refactor page refs in page_merge.
2014-06-21 15:53:41 -07:00
Howard Chu
cf331ccb3d
Silence ptr arithmetic warnings
2014-06-21 08:34:45 -07:00
Howard Chu
7cab7b95e2
Handle loose pages
...
Pages that were dirtied and deleted in the same txn should be
reused, instead of consuming freeDB pages.
2014-06-21 03:30:34 -07:00
Howard Chu
eebbd22c2f
Fix mdb_page_merge
...
Similar to prev commit for mdb_node_move, the call of
mdb_page_serch_lowest() was leaving csrc unusable.
2014-06-20 23:40:44 -07:00
Howard Chu
79e8462d74
Fix mdb_node_move
...
Was leaving stale info in dst cursor
2014-06-20 17:56:04 -07:00
Howard Chu
0d013609fe
Fix lineno count
2014-06-20 09:03:41 -07:00
Howard Chu
c05f45b7dd
Fix multiple subDBs
2014-06-20 09:00:33 -07:00
Howard Chu
1a72b19e26
Fix unhex
2014-06-20 08:56:52 -07:00
Howard Chu
21b51cb746
Add mdb_load
2014-06-20 08:49:59 -07:00
Howard Chu
3e83b5b27b
Add mdb_dump, update copyrights
2014-06-20 06:36:30 -07:00
Quanah Gibson-Mount
fed9370fae
Merge remote-tracking branch 'origin/mdb.master'
2014-06-18 16:27:06 -05:00
Howard Chu
59d30a49c3
Bump to 0.9.13
2014-06-18 14:25:46 -07:00
Howard Chu
0c041e0977
Bump to 0.9.13
2014-06-18 14:07:15 -07:00
Hallvard Furuseth
b898cb642a
ITS#7793 Re-fix MDB_CURRENT doc: Match current item
2014-06-18 23:01:14 +02:00
Hallvard Furuseth
01a75c5ab5
Fix MDB_GET_MULTIPLE/MDB_NEXT_MULTIPLE doc.
2014-06-18 23:01:14 +02:00
Howard Chu
39ed8bef04
Tweak ovpage search
...
Use num*20, chosen from empirical testing
2014-06-18 13:37:04 -07:00
Howard Chu
b4ecbd78d9
Fix some overwrite quirks
...
Was skipping the overwrite in some cases, if the cmp function
said the new and old already matched. We should always perform
the overwrite anyway, since the cmp function may only be doing
a prefix compare and the data may actually be different.
2014-06-18 12:29:13 -07:00
Howard Chu
dc7f2530dd
Tweak prev patch for ovpage search
2014-06-18 09:07:39 -07:00
Howard Chu
2db55c7d99
Shorten search for ovpage space
2014-06-18 03:02:08 -07:00
Howard Chu
52406746bd
Remove bogus file
...
added by mistake in 17c09fa476
2014-06-18 02:53:17 -07:00
Quanah Gibson-Mount
1cde310819
Merge remote-tracking branch 'origin/mdb.master'
2014-06-13 12:54:53 -05:00
Howard Chu
ecb71ee197
Bump version to 0.9.12
2014-06-13 10:46:27 -07:00
Quanah Gibson-Mount
ba4dd5b733
Merge remote-tracking branch 'origin/mdb.master'
2014-06-13 12:37:05 -05:00
Howard Chu
17c09fa476
ITS#7875 fix #7681 regression
...
Due to commit 18a07eb7c2
2014-06-11 02:27:56 -07:00
Howard Chu
45ff842542
Plug one-time leaks
2014-06-04 02:23:18 -07:00
Howard Chu
71ff674a02
ITS#7871 fix ldif-wrap length
...
Doc has been updated to note the default was actually 78.
The off-by-two error is fixed. Note that wrap=1 will still
output 2 columns, otherwise it can't output anything besides
the continuation character.
2014-06-04 00:52:01 -07:00
Alexey Naumov
a93810cc3d
Fix possible crash in DLL_THREAD_DETACH (explodes in .Net Framework)
2014-05-30 23:39:44 -07:00
Hallvard Furuseth
c0d64cf182
Comment ~MDB_APPEND, from earlier commit message.
2014-05-30 10:50:04 +02:00
Hallvard Furuseth
cb5656c726
Factor out mdb_cmp_clong()
2014-05-30 10:47:56 +02:00
Hallvard Furuseth
64a02e2279
More for big MDB_MAXKEYSIZE with MDB_DUPSORT.
...
With mdb_cursor_put(new key, data item big enough to need a sub-DB):
- Track cursors as when adding other nodes. The "!do_sub" is now
unneeded. Before ITS#7861 it distinguished inserting key from data.
- Set MDB_TXN_ERROR if an empty sub-DB was created. I.e. adding
key:subDB succeeded, but inserting the data item failed.
2014-05-30 10:47:56 +02:00
Hallvard Furuseth
b37b2a651f
Factor out MDB_TXN_ERROR
2014-05-30 09:06:08 +02:00
Hallvard Furuseth
ba8f59edf4
Simplify MDB_MULTIPLE
2014-05-30 09:06:08 +02:00
Hallvard Furuseth
ac158c7e1e
ITS#7834 Fix MDB_MULTIPLE writing multiple keys.
...
Update the state before looping, so the key is not duplicated.
Broke in 4c8f57615c (mostly).
2014-05-30 09:06:08 +02:00
Hallvard Furuseth
d170df58fb
ITS#7861 Re-fix MDB_db.md_entries.
...
mdb_cursor_del(): Fix md_entries with MDB_NODUPDATA.
mdb_cursor_put(): Check in xcursor whether an item got inserted. Count
data instead of keys after 13d6d59c51 .
2014-05-30 09:06:08 +02:00
Hallvard Furuseth
92c01ffda8
ITS#7771 mdb_cursor_put doc: Cursor moves on error
2014-05-30 09:06:08 +02:00
Hallvard Furuseth
83676dc0f0
Document DBI issues, extend MDB_BAD_VALSIZE.
2014-05-30 09:06:08 +02:00
Hallvard Furuseth
2f33effcdc
More ITS#7793 Check key->mv_size with MDB_CURRENT.
...
Since non-NULL key must be provided now.
2014-05-30 09:06:08 +02:00
Howard Chu
b22a614224
ITS#7859 fix to read 4096-character lines
2014-05-26 11:08:14 -07:00
Howard Chu
4b9aed26a5
Fix mdb_rebalance collapsing root
...
Shift the rest of the cursor stack as needed
2014-05-20 08:47:28 -07:00
Howard Chu
4844a72d01
ITS#7829 more for mdb_rebalance
...
Make sure to propagate rebalance results all the
way back to original caller's cursor.
2014-04-03 12:51:41 -07:00
Hallvard Furuseth
2764360a7b
ITS#7829 Simplify last commit
2014-04-02 07:02:14 +02:00
Howard Chu
fca18d2586
ITS#7829 more for prev commit
2014-03-31 13:42:19 -07:00
Howard Chu
ac3acc1218
ITS#7829 fix rebalance
...
Fixup cursor state after node_move/page_merge
2014-03-28 13:51:59 -07:00
Howard Chu
13d6d59c51
ITS#7793/7828
...
Fix md_entries count, test for insert on md_entries increment
2014-03-26 08:59:43 -07:00
Howard Chu
6948f9dace
More for ITS#7793/7828
...
Note MDB_CURRENT/MDB_DUPSORT requirement
2014-03-26 02:41:26 -07:00
Howard Chu
f537429b64
ITS#7828, #7793
...
Clarify MDB_CURRENT key usage, simplify freelist_save
2014-03-26 02:35:56 -07:00
Howard Chu
9026894e05
Revert "ITS#7793 mdb_cursor_put(): Fix MDB_CURRENT."
...
This reverts commit 4e954f8ae8 .
Caused ITS#7828.
2014-03-26 02:35:45 -07:00
Hallvard Furuseth
86d9675543
Revert "Update MDB_PANIC description" (thinko).
...
This reverts commit 6bd34d0534 .
2014-03-23 13:06:03 +01:00
Hallvard Furuseth
6bd34d0534
Update MDB_PANIC description
2014-03-22 22:27:10 +01:00
Hallvard Furuseth
1519f4bc3d
Tweak mdb_mid2l_insert() call from ITS#7775.
...
It does not return MDB error codes.
2014-03-22 22:27:10 +01:00
Howard Chu
bfbc6fe4a6
Merge remote-tracking branch 'origin/mdb.master'
2014-03-18 05:40:30 -07:00
Jan Synacek
5968804438
ITS#7723 fix reference counting
2014-03-18 03:38:11 -07:00
Hallvard Furuseth
2727e97de3
mtest: Accept an MDB_NOTFOUND case
2014-03-16 12:42:43 +01:00
Hallvard Furuseth
68e97b2184
Handle more errors. Invalidate txn if needed.
2014-03-16 12:42:43 +01:00
Hallvard Furuseth
937b5eff07
Don't use non-existent node info in branch/leaf2
2014-03-16 12:42:42 +01:00
Hallvard Furuseth
86f8b203f5
Move code out of mdb_cursor_del0() and mdb_del().
...
Prepares for the next commits.
2014-03-16 12:42:42 +01:00
Hallvard Furuseth
012d7b5de7
More checks for closed DBIs and invalidated txns.
...
Factor txn/DBI-checks out to TXN_DBI_EXIST().
mdb_audit(): Skip closed DBIs.
mdb_cursor_renew(), mdb_stat(): Check DBI and txn.
mdb_cursor_count(): Check txn.
mdb_dbi_flags(): Check DBI.
2014-03-16 12:42:42 +01:00
Hallvard Furuseth
3e7c1bd4e2
mdb_page_list(): Support & display all page types
2014-03-16 12:42:42 +01:00
Hallvard Furuseth
a22c31115f
mdb_txn_renew0(): Fix un-mutexed me_flags update.
...
Replace env flag MDB_LIVE_READER with field me_live_reader.
2014-03-16 12:42:42 +01:00
Hallvard Furuseth
684bb867ce
Doxygen fixes
2014-03-16 12:42:42 +01:00
Howard Chu
4ddf2ec831
Rename samples
...
They're meant to be read and studied, not run.
2014-03-16 03:55:03 -07:00
Howard Chu
797ff136a8
ITS#7815 more for page_split
...
This case didn't come up in testing. Needs finer grained test.
2014-03-05 20:40:12 -08:00
Howard Chu
0e7fba73b7
ITS#7815 fix mdb_page_split
...
Was leaving cursor pointed at wrong page if the newindx was
in the right sibling page, and the parent was also split.
2014-03-05 20:04:42 -08:00
Hallvard Furuseth
e2bdd44624
mtest*.c, sample-*.c: Add/note error checks.
2014-02-19 21:25:40 +01:00
Hallvard Furuseth
a604948993
mtest[46]: Use different DBs when different flags.
2014-02-19 21:25:40 +01:00
Howard Chu
106a4b90aa
More for ITS#4365 refix CR/LF handling
...
Was rejecting "-\r\n" in input LDIF
2014-02-07 00:31:23 -08:00
Hallvard Furuseth
4e954f8ae8
ITS#7793 mdb_cursor_put(): Fix MDB_CURRENT.
...
Ignore key, broken by 5bda3565a9
and some older code. Document and clarify MDB_CURRENT usage.
Also affects non-MDB_CURRENT put() with empty data and a key
which matches by the mdb_set_compare function but not by memcmp.
2014-01-28 14:27:27 +01:00
Kurt Zeilenga
5c878c1bf2
Happy new year (belated)
2014-01-25 05:21:25 -08:00
Quanah Gibson-Mount
be3971d5d2
Merge remote-tracking branch 'origin/mdb.master'
2014-01-15 11:17:26 -06:00
Howard Chu
aa3463ec7c
Bump version to 0.9.11
2014-01-15 09:09:48 -08:00
Quanah Gibson-Mount
0b03c51e79
Merge remote-tracking branch 'origin/mdb.master'
2014-01-14 20:33:22 -06:00
Howard Chu
ec97f49a65
Note changes for LMDB 0.9.11
2014-01-14 17:12:48 -08:00
Hallvard Furuseth
98f3bc88bf
Revert "ITS#7772 Reduce spurious sub-page growth."
...
This reverts commit 75494c08b4 ,
which must await a fix to ITS#7771 (DUPSORT cursor tracking).
2014-01-13 20:46:08 +01:00
Howard Chu
3f241365d5
Make sure mapsize changes take effect on Windows.
2014-01-12 20:04:50 -08:00
Howard Chu
14868fcab6
ITS#7783 workaround stupid NSPR bug
...
free(NULL) is supposed to be safe. "Portable wrapper libraries"
that fail to preserve this behavior are inherently broken.
But then again, this is Mozilla code, so that's redundant.
2014-01-12 13:51:09 -08:00
Quanah Gibson-Mount
752fdfd445
Merge remote-tracking branch 'origin/mdb.master'
2014-01-07 17:45:08 -06:00
Hallvard Furuseth
5bda3565a9
ITS#7775 Drop <assert.h>, drop/replace assert()s.
...
db_mid2l_insert(): Move assert to mdb.c.
mdb_cursor_set(): Previous assert cannot fail now.
mdb_cursor_put(): Check mc/key and return EINVAL.
mdb_cursor_dbi(): No error return, so just segfault if cursor==NULL.
2014-01-06 23:21:54 +01:00
Howard Chu
6fb561d33e
ITS#7775 Cleanup mdb_node_del()
2014-01-06 23:21:44 +01:00
Hallvard Furuseth
88342f9661
ITS#7775 Add mdb_env_set_assert()
2014-01-06 23:17:38 +01:00
Hallvard Furuseth
e40dae1064
Add mdb_env_<set,get>_userctx()
2014-01-06 23:17:38 +01:00
Hallvard Furuseth
c99525f42a
ITS#7377 Invalidate txn on page-allocation errors
...
This should likely be reverted when all callers handle these errors.
2014-01-06 23:17:37 +01:00
Hallvard Furuseth
123b6e3c3e
Wrap __func__ in mdb_func_
2014-01-05 16:37:26 +01:00
Hallvard Furuseth
21621cc741
Invalidate the txn on corruption/internal errors
2014-01-05 16:26:21 +01:00
Howard Chu
c48cdd7a16
ITS#7775 cleanup unnecessary assert()s
2014-01-03 12:40:28 -08:00
Hallvard Furuseth
1f191ba930
mdb_page_malloc(): Move VGMEMP_ALLOC before memset
2013-12-31 02:16:19 +01:00
Hallvard Furuseth
ce2a0d4016
ITS#7771 mdb_cursor_del0(): Fix xcursor tracking.
2013-12-29 15:58:21 +01:00
Hallvard Furuseth
5adc46d1d2
sprintf format: pid_t need not be an int.
2013-12-29 15:57:33 +01:00
Hallvard Furuseth
661dd2c66d
Add mdb_dbg_pgno(): (sub)pagenum for debug output.
2013-12-29 15:09:51 +01:00
Hallvard Furuseth
75494c08b4
ITS#7772 Reduce spurious sub-page growth.
...
mdb_cursor_put(): Use free sub-page space added by a
previous put(existing DUPSORT item), if any.
Tweak NUMKEYS code to avoid a new signedness warning.
2013-12-29 15:09:05 +01:00
Hallvard Furuseth
46de4ab84c
ITS#7665 Drop lmdb.h doc on non-overlapping flags.
...
It was inaccurate and misplaced. Verify it in mdb.c instead.
2013-12-29 14:54:17 +01:00
Hallvard Furuseth
353cc77cff
ITS#7515 has been fixed.
2013-12-29 14:52:30 +01:00
Hallvard Furuseth
c91f38160c
Drop UNLOCK_MUTEX_R() on mdb_reader_pid() error
2013-12-29 14:52:30 +01:00
Pierangelo Masarati
2358b35c58
fix years old cut'n'paste
2013-12-28 11:12:42 +01:00
Hallvard Furuseth
4c8f57615c
Fix commit "Raise safe max MDB_MAXKEYSIZE."
...
I.e. d69d2ce230 , it left out some changes.
2013-12-21 12:31:57 +01:00
Howard Chu
79b12f2f93
ITS#7762 shortcut NULL RDNs
2013-12-11 04:41:48 -08:00
Hallvard Furuseth
a2ed03642c
Replace MDB_node.mn_offset[], to ease debugging.
2013-12-11 11:57:13 +01:00
Hallvard Furuseth
2ce9ffa003
Comment MDB_node, mdb_page_unspill, mdb_update_key
2013-12-11 11:57:13 +01:00
Hallvard Furuseth
7e453c9763
Fix mdb_reader_list() and its spec.
...
It and the MDB_msg_func can now return >= 0 for success.
Always return any MDB_msg_func() error result.
2013-12-11 11:57:13 +01:00
Hallvard Furuseth
a58fd16ae5
Support dynamic max MDB keysize.
2013-12-11 11:57:13 +01:00
Hallvard Furuseth
d69d2ce230
Raise safe max MDB_MAXKEYSIZE.
...
Use a sub-DB for DUPSORT item #1/#2 per key if needed: Not a sub-
page too big for a node, nor an overflow page (which not all DUPSORT
code checks for). Move "insert" code, to avoid non-loop goto upwards.
(This is the commit which needs the change to xdata.mv_size in
commit 9d6e4a9163 "page sizes".)
2013-12-11 11:57:13 +01:00
Hallvard Furuseth
734bc7e6ad
Relax MDB_MAXKEYSIZE for existing data.
...
Handle keys stored by a liblmdb with a bigger MDB_MAXKEYSIZE.
mdb_get/mdb_del(absent key bigger than our MDB_MAXKEYSIZE)
now return MDB_NOTFOUND instead of MDB_BAD_VALSIZE.
2013-12-11 11:57:12 +01:00
Hallvard Furuseth
a8de10d148
ITS#7589 Fix me_nodemax and related node sizes.
...
Change me_nodemax to not count the mp_ptrs[] entry. That's mostly
how it was used. Compare node sizes ">" me_nodemax instead of ">=".
The ">=" was a workaround for confusing sizes with and without the
mp_ptrs[] entry, but broke for nodes with size (old me_nodemax-1).
Explicitly make me_nodemax even. An odd value could break the
comparisons. It was even anyway because MDB_MINKEYS == 2.
2013-12-11 11:57:12 +01:00
Hallvard Furuseth
6808abe770
ITS#7589 Fix delete(uneven-sized MDB_DUPFIXED data).
...
Do not give uneven sizes to the sub-page and the node it lives in.
2013-12-11 11:57:12 +01:00
Hallvard Furuseth
c0858e6d93
put(MDB_MULTIPLE): Skip existing item cleanly.
...
Don't set dkey.mv_size if mdb won't clear it before next iteration.
2013-12-11 11:57:12 +01:00
Hallvard Furuseth
fcb0d09598
Add EVEN(): Micro-optimize "up to multiple of 2".
2013-12-11 11:57:12 +01:00
Hallvard Furuseth
753356a38a
Warning cleanup.
...
Drop unused computed/assigned values.
mdb_page_alloc(): Make "mop_len>0 implies mop!=NULL" provable.
2013-12-11 11:57:12 +01:00
Hallvard Furuseth
e1266bf331
Clean up mdb_copy.
...
Support MDB_NOSUBDIR. Catch more errors. Write messages
to stderr, not stdout which the data too may be piped to.
2013-12-11 11:57:12 +01:00
Howard Chu
80e6316d37
ITS#7759 avoid assert in parse_passwdpolicy_control
2013-12-07 08:36:14 -08:00
Howard Chu
1ffb5e1cba
Fix GET_BOTH_RANGE
...
On near match, return the matched data.
2013-12-04 18:42:49 -08:00
Howard Chu
f8efeb4278
ITS#7757 plug memleak
2013-12-03 14:16:20 -08:00
Howard Chu
1fcd116219
Merge remote-tracking branch 'origin/mdb.master'
2013-11-29 17:04:58 -08:00
Howard Chu
b77689f975
ITS#7756 keysizes were wrong in mdb_update_key
2013-11-29 17:03:49 -08:00
Howard Chu
01f4aeac4c
Merge remote-tracking branch 'origin/mdb.master'
2013-11-12 08:35:12 -08:00
Howard Chu
f39bceb800
Doc tweak
...
Measured perf cost of meminit was 7% worst case on an Intel Core2
system. YMMV.
2013-11-12 08:10:33 -08:00
Howard Chu
36b9c2a339
Merge remote-tracking branch 'origin/mdb.master'
2013-11-11 20:16:49 -08:00
Howard Chu
3e40d0c805
Bump to 0.9.10
2013-11-11 20:15:54 -08:00
Howard Chu
f6d8dc4e76
Windows/Win64/MSVC tweaks
...
Silence warnings, fix broken MinGW64 definitions, etc.
2013-11-11 20:08:26 -08:00
Howard Chu
aa8beb62e4
Merge remote-tracking branch 'origin/mdb.master'
2013-11-11 17:44:22 -08:00
Howard Chu
eecbaa5942
Clarify WRITEMAP / NOMEMINIT
2013-11-11 16:35:17 -08:00
Howard Chu
509a197728
Change default mem init behavior
...
Init malloc'd memory by default, use #MDB_NOMEMINIT to disable.
Bump version to 0.9.10
2013-11-11 15:09:32 -08:00
Hallvard Furuseth
92f71f50f9
Add MDB_CLEANMEM option.
...
Initialize unused portions of DB pages, for security or to silence
checkers like Purify and Valgrind. Like BDB configure --enable-umrw.
2013-11-07 23:41:30 +01:00
Hallvard Furuseth
fc87d405f1
Fix MDB_MAXKEYSIZE doc: Account for MDB_DUPSORT.
...
A node may need room for [key, subpage with 2 items] = 3 keys.
2013-11-07 23:38:15 +01:00
Hallvard Furuseth
9d6e4a9163
ITS#7713 Handle bigger OS page sizes
...
Use DB page size = min(32k, OS pagesize). Previous limit was 8k
(MDB_MINKEYS*MDB_PAGESIZE).
Handle DB pagesize < OS pagesize. That's an I/O pessimization,
but transactions remain atomic: Only writing the MDB_meta must
be atomic, and it fits in one OS page.
Don't truncate desired subpage size: Asssign it to a size_t
(mv_size), not an uint16_t (mp_upper).
2013-11-07 23:38:15 +01:00
Hallvard Furuseth
25d370cb2e
mdb_cursor_put(): Factor out code. Kill a label.
2013-11-07 23:38:15 +01:00
Howard Chu
550bbe3788
Fix prev commit, cursor depth comparison
2013-11-07 09:37:48 -08:00
Howard Chu
4a1717708c
Fix cursor_del0 cursor fixup
...
Skip cursors that aren't as deep as current cursor
2013-11-06 16:51:21 -08:00
Howard Chu
d14b05159e
Merge remote-tracking branch 'origin/mdb.master'
2013-11-05 06:47:14 -08:00
Howard Chu
8c9a26c90d
More for #7589
2013-11-04 20:00:55 -08:00
Howard Chu
510584db89
Merge remote-tracking branch 'origin/mdb.master'
2013-10-31 17:37:07 -07:00
Howard Chu
34459e0585
ITS#7589 another mdb_page_split fix
...
Tweak split_indx check, go one slot further.
2013-10-31 17:31:15 -07:00
Howard Chu
e31983c723
ITS#7736 fix regression in ITS#7733 patch
...
In d8eccb353b
2013-10-31 16:01:49 -07:00
Howard Chu
0a438aaf43
Merge remote-tracking branch 'origin/mdb.master'
2013-10-28 08:04:23 -07:00
Howard Chu
d8eccb353b
ITS#7733 check cursor index before cursor_del
2013-10-28 07:25:54 -07:00
David Wilson
742a078ea5
ITS#7734 Add MDB_NORDAHEAD to CHANGELESS.
2013-10-28 06:58:52 -07:00
Howard Chu
160d2b74c5
Merge remote-tracking branch 'origin/mdb.master'
2013-10-24 15:58:24 -07:00
Howard Chu
7449ca604c
Bump to 0.9.9
2013-10-24 15:57:17 -07:00
Quanah Gibson-Mount
fe49824f83
Merge remote-tracking branch 'origin/mdb.master'
2013-10-21 11:02:23 -07:00
Howard Chu
b86f08e9d6
Add mdb_env_get_fd()
...
Return the environment's filedescriptor. Useful when the caller
is doing their own locking.
2013-10-21 10:41:41 -07:00
Howard Chu
afbd74c4de
Merge remote-tracking branch 'origin/mdb.master'
2013-10-18 13:36:47 -07:00
Howard Chu
dddc7a385b
Fix 01dfb2083d
...
USE_POSIX_SEM must define USE_HASH
2013-10-14 09:47:26 -07:00
Howard Chu
1d81f01b13
Merge remote-tracking branch 'origin/mdb.master'
2013-10-12 16:21:00 -07:00
Howard Chu
ab9b08f8af
ITS#7725 add MDB_NORDAHEAD flag for env_open
2013-10-12 16:20:04 -07:00
Howard Chu
20503000d0
Merge remote-tracking branch 'origin/mdb.master'
2013-10-12 15:26:02 -07:00
Howard Chu
5a9ddfd289
ITS#7589 silence warnings
2013-10-12 13:40:28 -07:00
Howard Chu
2211fb15db
ITS#7589 Fix typo in prev commit
2013-10-12 13:31:09 -07:00
Howard Chu
400e21370b
ITS#7589 Cleanup unneeded vars in prev patch
2013-10-12 13:20:02 -07:00
Howard Chu
310b656a2e
ITS#7589 avoid wasting space in mdb_page_split
...
Also, check the split point on branch pages as well as leaf pages.
2013-10-12 09:34:40 -07:00
Howard Chu
01dfb2083d
Add MDB_USE_HASH
...
There may be other uses for it besides semaphore names.
2013-10-12 09:28:37 -07:00
Stef Walter
743a9783d5
ITS#7694 Fix use of IPv6 with LDAP_CONNECTIONLESS
...
LDAP_CONNECTIONLESS code assumed that the size of an peer address
is equal to or smaller than sizeof (struct sockaddr).
Fix to use struct sockaddr_storage instead which is intended for
this purpose. Use getnameinfo() where appropriate so we don't
assume anything about the contents of struct sockaddr
2013-10-10 10:26:28 -07:00
Howard Chu
940f5cb373
ITS#7722 fix page_merge for collapsing root
...
Other cursors being fixed up are not necessarily height 1.
2013-10-09 02:24:45 -07:00
Howard Chu
9689f20849
Merge remote-tracking branch 'origin/mdb.master'
2013-10-08 04:51:43 -07:00
Howard Chu
bf0e97aa0e
ITS#7718 invalidate cursor when DB gets emptied
2013-10-08 04:43:58 -07:00
Howard Chu
42f5784ecf
Merge remote-tracking branch 'origin/mdb.master'
2013-10-04 02:56:44 -07:00
Howard Chu
d327a36ad8
Fix mdb_env_set_mapsize()
...
Don't allow shrinking below minimum size for an already open env.
2013-10-04 02:55:34 -07:00
Howard Chu
681dbae8f0
Merge remote-tracking branch 'origin/mdb.master'
2013-10-04 02:49:00 -07:00
Howard Chu
2520247ba1
ITS#7715 always set filesize for WRITEMAP
2013-10-04 02:46:38 -07:00
Hallvard Furuseth
9f7ae8925f
Add Caveat: Readers need write access. Whitespace.
2013-10-04 00:51:58 +02:00
Hallvard Furuseth
0f9b79e12c
Maintain MDB_cursor.mc_top
2013-10-04 00:32:35 +02:00
Hallvard Furuseth
99ea7669a3
mdb_cursor_sibling(): Fix error result
2013-10-03 23:59:25 +02:00
Hallvard Furuseth
8f075595a1
mdb_node_add(): Plug page leak when MDB_PAGE_FULL.
...
Do not fail after mdb_page_new() succeeds.
2013-10-03 23:59:25 +02:00
Hallvard Furuseth
3a1d73daff
Optimize code holding reader mutex
2013-10-03 23:59:24 +02:00
Hallvard Furuseth
3d67838a59
Set MDB_xcursor DB_DIRTY, clear md_name.
...
Both were unused and md_name was unmaintained -- except
mdb_cursor_touch(xcursor) would abuse md_name as a key to
touch MAIN_DBI if it could somehow get passed ! DB_DIRTY.
2013-10-03 23:59:24 +02:00
Hallvard Furuseth
07dc79a7c3
Set subDB DBI=parent DBI, fix MDB_DUPSORT delete.
...
xcursor DBIs were parent DBI+1 for debugging. Instead output
-(parent DBI). Fixes a crash in mdb_cursor_del0()'s xcursor
tracking, it forgot to subtract 1 for C_SUB cursors.
2013-10-03 23:59:24 +02:00
Howard Chu
79eac42c0f
s/MDB_NORDLOCK/MDB_NOLOCK/
...
Leave all lock management to the caller.
2013-10-03 10:26:44 -07:00
Howard Chu
a1685c3ef7
More doc for MDB_NORDLOCK
2013-10-01 23:36:57 -07:00
Howard Chu
f739940547
Add MDB_NORDLOCK to omit all reader table usage
...
Calling app wants to manage its own locking.
2013-10-01 13:16:38 -07:00
Emily Backes
85003d8a54
ITS#7712 Fix lock ordering in libldap abandon
2013-09-30 15:31:27 -07:00
Hallvard Furuseth
e3f6c152c5
Drop unneeded code.
...
MDB_txn.mt_toggle: Use (mt_txnid & 1) instead.
Drop error checks which will be repeated.
mdb_cursor_set(): Turn assert into if/return to match the above.
mdb_cursor_del(): 'flags' are now used as bitflags.
2013-09-23 20:21:11 +02:00
Hallvard Furuseth
2980bd30f5
Clean up and simplify mdb_page_search().
...
Only named DBs can have DB_STALE, and they do not use MDB_PS_MODIFY.
Replace magic key values with flags. Drop duplicated comments at
mdb_page_search_root() vs. mdb_page_search(), and rephrase.
2013-09-23 20:21:11 +02:00
Hallvard Furuseth
31cfca9316
Tweak MDB_DEBUG output
2013-09-23 20:20:42 +02:00
Hallvard Furuseth
7bdb5be0b5
Rename SWAP() to avoid conflict with sqlightning.
...
Happened since sqlightning #includes mdb.c, midl.c.
2013-09-23 20:20:05 +02:00
Hallvard Furuseth
52cb8b3417
mdb_page_unspill(): Rename local vars.
...
The names have caused bugs, "txn" was treated as
the current transaction.
2013-09-23 20:13:27 +02:00
Hallvard Furuseth
8e1d10e828
ITS#7515 Fix mdb_page_unspill() in nested txn.
...
Malloc a page in this txn, not in a parent.
2013-09-23 20:13:27 +02:00
Hallvard Furuseth
a3b3482854
ITS#7515 Fix mdb_txn_commit(nested txn with spills).
...
Catch malloc error.
Fix hunt for dirty vs spilled pages: Don't leave x at a deleted pageno.
Cleanup: Factor out variables, squash pages already marked for deletion.
2013-09-23 20:13:27 +02:00
Hallvard Furuseth
bc48a40621
ITS#7515 Fix mt_dirty_room in nested txns.
...
Fix description & code: Also ignore dirty pages hidden by
spilled pages, as they won't merge into our dirty_list.
Update it in mdb_page_flush() instead of mdb_page_spill().
2013-09-23 20:13:27 +02:00
Hallvard Furuseth
cfe262dce9
ITS#7515 mdb_pages_xkeep(): Careful about xcursors.
...
Don't prod sub-pages or pages referring to uninitialized xcursors.
2013-09-23 20:13:27 +02:00
Hallvard Furuseth
5b96d68faf
mdb_pages_xkeep(): Reformat, use common flag mask
2013-09-23 20:13:27 +02:00
Hallvard Furuseth
5b21307f29
Update MDB documentation and comments.
2013-09-23 20:09:47 +02:00
Hallvard Furuseth
3335b25834
ITS#7682 mdb_env_copy(): Avoid Linux O_DIRECT bug.
...
Use fcntl() to set the flag. Linux open(,O_DIRECT...) can create
the file even on failure, if the filesystem lacks O_DIRECT support.
2013-09-23 20:07:29 +02:00
Howard Chu
912e09fd04
ITS#7681 fix 18a07eb7c2
...
Set rc=0 when taking the SET_RANGE branch
2013-09-21 14:51:01 -07:00
Howard Chu
0144da6eab
ITS#7701 fix mdb_rebalance
...
Must copy tmp cursor back to real cursor when merging into tmp cursor.
2013-09-21 14:37:11 -07:00
Quanah Gibson-Mount
1a712bf18e
Enable features that were hidden behind LDAP_DEVEL
2013-09-19 09:50:52 -07:00
Howard Chu
16f8b0902c
ITS#7398 add LDAP_OPT_X_TLS_PEERCERT
...
retrieve peer cert for an active TLS session
2013-09-10 04:31:39 -07:00
Howard Chu
0045e56c34
ITS#7683 more for tls version/cipher info
...
Add LDAP_OPT_X_TLS_VERSION / LDAP_OPT_X_TLS_CIPHER for
retrieving from an LDAP session handle. Update ldap_get_option(3).
2013-09-09 11:52:10 -07:00
Howard Chu
057b2bab20
Merge remote-tracking branch 'origin/mdb.master'
2013-09-09 08:30:52 -07:00
Howard Chu
0f842a2710
Release 0.9.8
2013-09-09 08:29:46 -07:00
Howard Chu
721e46fe66
ITS#7595 don't try to use EC if OpenSSL lacks it
2013-09-08 06:32:23 -07:00
Howard Chu
7d6d6944c5
ITS#7683 log tls prot/cipher info
...
Note: I could not test the MozNSS patch due to the absence of
NSS PEM support on my machine. Given the review comments in
https://bugzilla.mozilla.org/show_bug.cgi?id=402712 I doubt that
trustworthy PEM support will be appearing for MozNSS any time soon.
2013-09-07 12:22:09 -07:00
Howard Chu
e631ce808e
ITS#7595 Add Elliptic Curve support for OpenSSL
2013-09-07 09:47:40 -07:00
Howard Chu
0205e83f46
ITS#7430 GnuTLS: Avoid use of deprecated function
2013-09-07 09:41:46 -07:00
Howard Chu
3e100bb54d
Add GnuTLS channel binding support
2013-09-07 09:38:47 -07:00
Howard Chu
cb00bb0218
Fix double-free on ciphersuite parse failure
...
GnuTLS does an implicit free on failure.
2013-09-07 08:58:25 -07:00
Howard Chu
cfeb28412c
ITS#7506 fix prev commit
...
The patch unconditionally enabled DHparams, which is a significant
change of behavior. Reverting to previous behavior, which only enables
DH use if a DHparam file was configured.
2013-09-07 06:39:53 -07:00
Ben Jencks
6f120920d3
ITS#7506 tls_o.c: Fix Diffie-Hellman parameter usage.
...
If a DHParamFile or olcDHParamFile is specified, then it will be used,
otherwise a hardcoded 1024 bit parameter will be used. This allows the use of
larger parameters; previously only 512 or 1024 bit parameters would ever be
used.
2013-09-07 06:33:39 -07:00
Howard Chu
a72d1ffe0f
ITS#7506 cleanup prev commit
2013-09-07 06:31:58 -07:00
Ben Jencks
622d13a32e
ITS#7506 tls_g.c: Properly support DHParamFile.
...
If a DHParamFile or olcDHParamFile is specified then it will be loaded. This
allows use of DHE/EDH cipher suites which was previously impossible with
GnuTLS.
2013-09-07 06:29:14 -07:00
Howard Chu
2851b22315
Merge remote-tracking branch 'origin/mdb.master'
2013-09-06 12:54:02 -07:00
Howard Chu
7e58cc0fd3
updates
2013-09-05 16:23:49 -07:00
Salvador Ortiz
cfc13e2b48
ITS#7682 In mdb_env_copy retry open if O_DIRECT fails
2013-09-05 16:20:18 -07:00
Howard Chu
90c55178db
More for 5f6fa8c042
...
Reset delete flag in cursor_put().
2013-09-05 06:02:07 -07:00
Claude Brisson
18a07eb7c2
ITS#7681 fix mdb_cursor_set behaviour for MDB_SET_RANGE
2013-09-05 05:57:03 -07:00
Howard Chu
448b5269a8
Fix uninit'd poolqs in prev commit
2013-09-03 17:29:32 -07:00
Howard Chu
5f6fa8c042
Remember if last cursor op was a delete
...
If so, don't advance cursor on next NEXT. Also, init xcursor
on the next GET_CURRENT.
2013-09-03 16:10:20 -07:00
Howard Chu
0ef9e6107b
More for threadpool queues
...
Allow dynamic reconfig
2013-09-03 15:06:37 -07:00
Howard Chu
8d8ad70026
Merge remote-tracking branch 'origin/mdb.master'
2013-08-28 20:45:12 -07:00
Howard Chu
3d59ca3558
Add a changelog
2013-08-28 20:22:41 -07:00
Howard Chu
5c5300c604
Bump version to 0.9.8
2013-08-28 19:17:25 -07:00
Howard Chu
2e7130cab0
Allow mdb_env_set_mapsize() on an open environment
...
The caller is responsible for making sure no transactions are
active in this process before resizing. This is slightly lighter
weight than doing a full env_close/env_open cycle.
2013-08-28 19:12:59 -07:00
Howard Chu
c1bb7e7610
Merge remote-tracking branch 'origin/mdb.master'
2013-08-27 06:34:59 -07:00
Howard Chu
2a28686e4f
ITS#7672 fix mdb_dbi_flags
...
Use a txn instead of env argument. Only return persistent flags.
2013-08-27 06:28:30 -07:00
Howard Chu
ca310ebff4
Add channel binding support
...
Currently only implemented for OpenSSL.
Needs an option to set the criticality flag.
2013-08-26 23:31:48 -07:00
Hallvard Furuseth
4dd10d70a5
mdb_page_unspill(): Fix dirty_room in nested txn
2013-08-25 23:59:58 +02:00
Howard Chu
56c2a8d04a
Another take on spill_pgs and deletes
2013-08-24 20:37:45 +01:00
Howard Chu
b917266ca1
Cleanup prev commit
2013-08-24 11:54:05 -07:00
Howard Chu
41bf5c906a
Speedup deletion from spill_pgs
2013-08-24 19:51:47 +01:00
Howard Chu
6423c87749
ITS#7671 always return the key for a dup val
2013-08-23 07:36:07 -07:00
Howard Chu
e15a90c762
ITS#7670 Tweak cursor_del0
...
Always leave cursor pointing at "next" node, if any.
Find next sibling if we're already at end of current page.
2013-08-23 04:55:41 -07:00
Hallvard Furuseth
6616034eb9
mdb_page_spill(): Fix nested txn mt_dirty_room
2013-08-23 13:52:35 +02:00
Hallvard Furuseth
392be3a7c6
Simplify last commits
2013-08-23 13:52:35 +02:00
Howard Chu
45c4ed1805
Tweak prev commit
...
If somehow "need" is larger than the list size, don't
try to fake out the dirty list.
2013-08-22 21:29:53 -07:00
Howard Chu
7b1db13050
Less aggressive page_spill
...
spilling all possible pages is a waste because the majority will be
needed again. Just do 1/8th of the dirty list instead.
2013-08-22 18:51:48 -07:00
Howard Chu
c22a7d98ec
Update caveats now that mdb_reader_check exists
2013-08-20 17:37:53 -07:00
Howard Chu
50ab5bb1ed
Cleanup comments in prev commit
2013-08-19 14:25:13 -07:00
Howard Chu
0c86184bae
More fixes for prev commit
2013-08-19 13:54:17 -07:00
Howard Chu
eaa3469736
Fix 34f832faee
...
Lock ordering issues
2013-08-19 04:28:05 -07:00
Howard Chu
34f832faee
Multiple queues per threadpool
2013-08-16 19:04:49 -07:00
Howard Chu
9121a473de
Merge remote-tracking branch 'origin/mdb.master'
2013-08-16 06:44:58 -07:00
Howard Chu
214e9ed07d
Silence warnings
2013-08-14 09:57:25 -07:00
Hallvard Furuseth
82b27c09c9
Tweak ITS#7615 fix: Obey strict-aliasing rules.
...
Do not access a long long as an array of longs.
2013-08-14 15:21:59 +02:00
Howard Chu
2b7237bdcf
Merge remote-tracking branch 'origin/mdb.master'
2013-08-13 13:35:46 -07:00
Howard Chu
76f0a02485
ITS#7664 better fix
...
For RDONLY, don't get lockfile until we know datafile exists.
Also, don't try to create a new datafile for me_mfd if someone
deleted it after we got me_fd.
2013-08-13 13:12:47 -07:00
Howard Chu
a77ffaaa5d
Revert "ITS#7664 delete lockfile if there is no environment"
...
This reverts commit 8725838409 .
2013-08-13 13:05:32 -07:00
Howard Chu
beca9bbb15
Merge remote-tracking branch 'origin/mdb.master'
2013-08-13 11:36:50 -07:00
Howard Chu
8725838409
ITS#7664 delete lockfile if there is no environment
2013-08-13 11:34:32 -07:00
Howard Chu
c740cbc1e5
Merge remote-tracking branch 'origin/mdb.master'
2013-08-12 12:49:24 -07:00
Howard Chu
eaeeecc3b2
Fix uninit'd mem ref in mdb_page_split
...
Don't compare cursors beyond their depth. (detected by valgrind)
2013-08-12 12:43:42 -07:00
Howard Chu
6e9762f9e7
Merge remote-tracking branch 'origin/mdb.master'
2013-08-11 17:27:17 -07:00
Howard Chu
6ecee1cbf9
Tweak NODUPDATA flag check
...
Should allow for the possibility of future flag combos.
2013-08-11 17:25:00 -07:00
Howard Chu
76c8fd5c6c
Merge remote-tracking branch 'origin/mdb.master'
2013-08-11 17:18:20 -07:00
Howard Chu
5a5d33ff33
Fix obscure MDB_MULTIPLE bug
...
If a key has a single existing value, and then a put (MDB_MULTIPLE)
is done where the first of the multiple values matches the existing
value, the put would return SUCCESS without writing any of the
values. Fixed to loop to the next value as intended.
2013-08-11 17:15:03 -07:00
Howard Chu
ab44974baf
Merge remote-tracking branch 'origin/mdb.master'
2013-08-10 16:20:47 -07:00
Howard Chu
76f8b77e36
Point to mdb.c for docs on macros in Makefile
2013-08-10 16:19:44 -07:00