]>
git.ipfire.org Git - thirdparty/openldap.git/log
Howard Chu [Wed, 21 Oct 2020 20:24:53 +0000 (21:24 +0100)]
ITS#9376 Fixes for repeated deletes with xcursor
On DUPSORT DBs, must initialize xcursor regardless of whether
caller requested its data. Also in cursor_prev must check whether
cursor index is still within range before using it.
Howard Chu [Fri, 23 Oct 2020 16:47:15 +0000 (17:47 +0100)]
Support db_pagesize in mdb_load
Since setting was added in
de08119a296a4e8569fa04d7bfcbc7b3c2b41f2f
Howard Chu [Mon, 12 Oct 2020 21:55:51 +0000 (22:55 +0100)]
ITS#9364 fix doxygen comment
Howard Chu [Mon, 12 Oct 2020 21:28:27 +0000 (22:28 +0100)]
ITS#9364 Add docs for crypto modules
Howard Chu [Mon, 12 Oct 2020 20:57:05 +0000 (21:57 +0100)]
ITS#9364 Add crypto support to all tools
Using dynamically loaded crypto modules
Howard Chu [Mon, 12 Oct 2020 02:09:48 +0000 (03:09 +0100)]
ITS#9364 use crypto table properly
Howard Chu [Sun, 11 Oct 2020 17:19:10 +0000 (18:19 +0100)]
ITS#9364 tweak crypto sample again
Howard Chu [Sun, 11 Oct 2020 17:17:07 +0000 (18:17 +0100)]
ITS#9364 tweak sample
Cheat with OpenSSL 1.1 internal structures to avoid malloc/free per page
Howard Chu [Sun, 11 Oct 2020 16:29:54 +0000 (17:29 +0100)]
ITS#9364 add sample for authenticated encryption
Howard Chu [Sun, 11 Oct 2020 13:07:26 +0000 (14:07 +0100)]
ITS#9364 add error code texts
Howard Chu [Sun, 11 Oct 2020 12:56:52 +0000 (13:56 +0100)]
ITS#9364 rework crypto API
And add support for per-page checksums. Reserve space for checksum
at tail of page. Pass pgno+txnid as IV input for encryption.
Howard Chu [Sat, 10 Oct 2020 22:32:56 +0000 (23:32 +0100)]
ITS#9017 fixes for encryption
Howard Chu [Sun, 11 Oct 2020 00:32:30 +0000 (01:32 +0100)]
Fix rawpart flag collision
Howard Chu [Sat, 10 Oct 2020 15:29:01 +0000 (16:29 +0100)]
Fix fallthru warning
Howard Chu [Mon, 6 Aug 2018 12:09:37 +0000 (13:09 +0100)]
Add mdb_env_set_pagesize()
Howard Chu [Mon, 11 Jun 2018 09:12:03 +0000 (10:12 +0100)]
More RAWPART support
Use mmap to read and initialize the meta pages, raw device
may not support read/write syscalls.
Howard Chu [Sun, 21 Feb 2016 18:29:40 +0000 (18:29 +0000)]
Preliminary raw partition support
Autodetects that a block device is being used.
Howard Chu [Tue, 16 Jun 2020 18:49:14 +0000 (19:49 +0100)]
ITS#9278 fix robust mutex cleanup for FreeBSD
FreeBSD 11 supports robust process-shared POSIX mutexes,
but requires them to be explicitly destroyed before munmap
Howard Chu [Fri, 24 Apr 2020 23:46:58 +0000 (00:46 +0100)]
ITS#9017 cleanup Windows off_t
Howard Chu [Fri, 24 Apr 2020 14:07:33 +0000 (15:07 +0100)]
ITS#9017 doxygen comment for MDB_FIXEDSIZE
Howard Chu [Fri, 24 Apr 2020 14:03:33 +0000 (15:03 +0100)]
ITS#9017 LMDB: fix off_t usage on Windows
Kris Zyp [Wed, 19 Feb 2020 05:50:41 +0000 (22:50 -0700)]
ITS#9017 LMDB: allow using fixed file size on Windows
Kris Zyp [Wed, 19 Feb 2020 05:49:03 +0000 (22:49 -0700)]
ITS#9017 LMDB: improve Windows sync commit perf
Howard Chu [Thu, 23 Jan 2020 14:50:00 +0000 (14:50 +0000)]
ITS#9155 lmdb: free mt_spill_pgs in non-nested txn on end
Quanah Gibson-Mount [Thu, 9 Jan 2020 16:32:20 +0000 (16:32 +0000)]
Happy New Year!
Howard Chu [Fri, 15 Nov 2019 16:07:51 +0000 (16:07 +0000)]
Silence spurious fallthru warning
Howard Chu [Fri, 15 Nov 2019 16:06:34 +0000 (16:06 +0000)]
ITS#9118 add MAP_NOSYNC for FreeBSD
Howard Chu [Sun, 10 Nov 2019 05:00:47 +0000 (05:00 +0000)]
ITS#8704 add missing opt flags in prev commit
Howard Chu [Mon, 26 Aug 2019 16:51:53 +0000 (17:51 +0100)]
ITS#9068 fix backslash escaping
mdb_load wasn't properly inserting escaped backslashes into the data.
mdb_dump wasn't escaping backslashes when generating printable output.
Kris Zyp [Tue, 16 Apr 2019 02:07:56 +0000 (20:07 -0600)]
ITS#9007 don't free loose writemap pages
Broken in ITS#8756
Ka Ho Ng [Sun, 17 Feb 2019 15:59:56 +0000 (23:59 +0800)]
ITS#8978 Fix mdb_env_open2() failing when getting handle for NTDLL.dll
Always call GetModuleHandleW() with Unicode string, as mdb_fopen() is
calling CreateFileW() already.
Howard Chu [Wed, 30 Jan 2019 23:43:34 +0000 (23:43 +0000)]
ITS#8969 tweak mdb_page_split
Bump up number of keys for which we use fine-grained splitpoint search
Howard Chu [Thu, 17 Jan 2019 18:46:10 +0000 (18:46 +0000)]
IDLs for VL32 must be same size as for 64bit
Howard Chu [Mon, 14 Jan 2019 19:06:20 +0000 (19:06 +0000)]
Happy New Year
Quanah Gibson-Mount [Mon, 14 Jan 2019 18:39:38 +0000 (18:39 +0000)]
Happy New Year!
moneromooo-monero [Tue, 15 May 2018 09:53:13 +0000 (10:53 +0100)]
ITS#8857 document mdb_cursor_del does not invalidate the cursor
Howard Chu [Wed, 29 Aug 2018 00:25:01 +0000 (01:25 +0100)]
ITS#8908 DOC: GET_MULTIPLE etc don't return the key
Unnecessary since these are DUPs, the key will always be the same
Howard Chu [Mon, 6 Aug 2018 12:10:59 +0000 (13:10 +0100)]
ITS#8891 fix M$ WINAPI typedefs
Howard Chu [Fri, 22 Jun 2018 15:30:13 +0000 (16:30 +0100)]
ITS#8756 remove loose pg from dirty list in freelist_save
Howard Chu [Wed, 2 May 2018 16:05:29 +0000 (17:05 +0100)]
ITS#8844 use getpid() in mdb_env_close0()
Howard Chu [Mon, 2 Apr 2018 17:01:19 +0000 (18:01 +0100)]
ITS#8831 move flag init into readhdr
Avoid stomping on flags from 1st readhr invocation
Quanah Gibson-Mount [Thu, 22 Mar 2018 15:20:57 +0000 (15:20 +0000)]
Happy New Year
Howard Chu [Tue, 20 Mar 2018 18:34:56 +0000 (18:34 +0000)]
ITS#8819 can't use fakepage mp_ptrs directly
Howard Chu [Sun, 18 Feb 2018 21:00:54 +0000 (21:00 +0000)]
ITS#8324 More for Win32 NTDLL junk
Use GetProcAddress at runtime, avoid buildtime NTDLL link issues
Howard Chu [Sun, 19 Nov 2017 19:44:53 +0000 (19:44 +0000)]
Add mdb_drop tool
Howard Chu [Thu, 26 Oct 2017 18:04:37 +0000 (19:04 +0100)]
ITS#8760 fix regression in 0.9.19
Howard Chu [Wed, 20 Sep 2017 17:38:47 +0000 (18:38 +0100)]
Add -a append option to mdb_load
To allow reloading of custom-sorted DBs from mdb_dump
Quanah Gibson-Mount [Wed, 7 Jun 2017 20:42:51 +0000 (13:42 -0700)]
ITS#8612 Fix Solaris builds with liblmdb
This patch fixes liblmdb builds on Solaris and derivatives by defining
_POSIX_PTHREAD_SEMANTICS
Hallvard Furuseth [Sun, 10 Sep 2017 22:00:14 +0000 (00:00 +0200)]
Tweak ITS#8722 fix: Use XCURSOR_REFRESH()
This checks XCURSOR_INITED() and fixes the mn_flags check.
Hallvard Furuseth [Sun, 10 Sep 2017 21:59:35 +0000 (23:59 +0200)]
XCURSOR_REFRESH() fixups/cleanup
* Check NUMKEYS(), similar to
f34b61f9471d1c03fe0517b9d817c50c920e378a
"ITS#8722 fix FIRST_DUP/LAST_DUP cursor bounds check".
* Move XCURSOR_INITED() into XCURSOR_REFRESH(). This adds a check in
mdb_cursor_put, below /* converted, write the original data first */.
* Factor mc_ki[] out to XCURSOR_REFRESH().
* Replace an mc_pg[] with mp which is equal (mdb_cursor_del0).
Howard Chu [Sat, 9 Sep 2017 14:08:03 +0000 (15:08 +0100)]
ITS#8728 fix MDB_VL32 freeing overflow page
Howard Chu [Wed, 6 Sep 2017 20:15:48 +0000 (21:15 +0100)]
ITS#8722 fix FIRST_DUP/LAST_DUP cursor bounds check
Howard Chu [Fri, 1 Sep 2017 12:16:37 +0000 (13:16 +0100)]
Doc tweaks
Note about DB names being C strings
Howard Chu [Thu, 31 Aug 2017 14:44:31 +0000 (15:44 +0100)]
Add mdb_cursor_is_db()
Return 1 if the cursor is pointing to a named DB record
Howard Chu [Thu, 31 Aug 2017 14:11:54 +0000 (15:11 +0100)]
mdb_dbi_open tweak
Always save the terminating NUL of the incoming DB name
Stop using the old mdb_open/mdb_close function names
.. should consider renaming mdb_stat/mdb_drop to mdb_dbi_... too.
Howard Chu [Sat, 12 Aug 2017 10:16:45 +0000 (11:16 +0100)]
ITS#8704 Fix PREVMETA, rename to PREVSNAPSHOT
and enforce exclusive access to environment. Also fix txn_begin/pick_meta
to use correct meta page, and reset the flag after successful commit.
Hallvard Furuseth [Sun, 6 Aug 2017 14:18:06 +0000 (16:18 +0200)]
Unref ovpages when deleting them
Hallvard Furuseth [Sun, 6 Aug 2017 14:15:51 +0000 (16:15 +0200)]
Drop always-false MDB_WRITEMAP test when IS_DIRTY_NW()
Howard Chu [Mon, 31 Jul 2017 18:15:21 +0000 (19:15 +0100)]
ITS#8704 Add MDB_PREVMETA support to tools
Howard Chu [Mon, 31 Jul 2017 18:07:01 +0000 (19:07 +0100)]
ITS#8704 Add PREVMETA to envflags()
moneromooo-monero [Sun, 30 Jul 2017 23:04:28 +0000 (00:04 +0100)]
ITS#8704 add MDB_PREVMETA flag to mdb_env_open
used to open the previous meta page, in case the latest one
is corrupted
From https://github.com/LMDB/lmdb/pull/12
Hallvard Furuseth [Sat, 29 Jul 2017 14:31:06 +0000 (16:31 +0200)]
Expose MDB_ENCRYPT flag
Hallvard Furuseth [Sat, 29 Jul 2017 12:54:55 +0000 (14:54 +0200)]
Rename mdb_env_getflags->envflags, clarify options
The old name resembled existing function mdb_env_get_flags().
Hallvard Furuseth [Sat, 29 Jul 2017 05:59:39 +0000 (07:59 +0200)]
mdb_page_get() can ignore the toplevel spill list
...when we search dirty list before instead of after spill list.
Hallvard Furuseth [Sat, 29 Jul 2017 05:59:01 +0000 (07:59 +0200)]
Drop mdb_page_get() arg 'level', it's always NULL
Hallvard Furuseth [Sat, 29 Jul 2017 05:56:46 +0000 (07:56 +0200)]
Doc fixes
Hallvard Furuseth [Thu, 27 Jul 2017 06:22:34 +0000 (08:22 +0200)]
Less hungry mdb_pages_xkeep()
Skip pages that are dirty only in an ancestor txn
Hallvard Furuseth [Thu, 27 Jul 2017 06:19:03 +0000 (08:19 +0200)]
Keep MC_OVPG() == NULL when not MDB_REMAPPING()
Needed since
418ea8b94e14567ba2be9f9772f38f563a0d7e9c introduced
option MDB_REMAP_CHUNKS.
Howard Chu [Wed, 26 Jul 2017 20:37:40 +0000 (21:37 +0100)]
ITS#8699 more for cursor_del ITS#8622
Set C_DEL flag on reinit'd subcursor
Howard Chu [Wed, 26 Jul 2017 19:52:31 +0000 (20:52 +0100)]
Fix
418ea8b94e SEGV on spilled ovpg
Don't spill an ovpg that is referenced in a cursor
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
Drop P_DIRTY, and MDB_WRITEMAP dirty/spill lists
mt_workid = mt_txnid when WRITEMAP, so dirty pages == "spilled"
pages and mdb_page_flush() does nothing.
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
mp_txnid = page state, avoids searching dirty_list
In nested txns, check mp_txnid to see which txn dirtied the page.
This change will also let us remove the P_DIRTY flag, and keep
some flags in (dirty page).mp_txnid if we should need it.
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
Demo - move P_DIRTY to P_ADM_FLAGS, page_dirty()
...to have something substantial to test P_ADM_FLAGS with,
at least until we drop the P_DIRTY flag.
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
Divide page flags in P_ADM_FLAGS and the rest
P_ADM_FLAGS flags are tied to the page, even through page_loose-alloc.
OTOH mdb_page_split() should only duplicate the relevant flags.
This is just the code for the feature, P_ADM_FLAGS is 0 for now.
We'll need it for P_HIDESPILL later.
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
Drop unnecessary searches in the spill lists
Check with IS_MUTABLE() if an MDB_page is spilled, instead of
searching spill lists. When unspilling, skip parent spill lists.
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
Skip unnecessary mdb_page_get()s when spilling
Do not bring in pages merely to see if they should be skipped.
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
Protect freelist at end of mdb_freelist_save()
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
Use mdb_page_loose() more
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
Verify final loose_count in mdb_txn_commit()
Mismatch may indicate that pages leaked or got used twice
in the same snapshot.
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
mdb_page_touch: Always set MDB_TXN_ERROR on error
Hallvard Furuseth [Tue, 25 Jul 2017 19:27:36 +0000 (21:27 +0200)]
Fix mdb_enctest()
Accept a partial ovpage. I.e. decryption of the beginning
should not depend on the data at the end.
Make the key and IV less regular. (Divisor 67 has period>64.)
Hallvard Furuseth [Tue, 25 Jul 2017 19:07:14 +0000 (21:07 +0200)]
Move misplaced OVERFLOW_NOTYET code
...so it would set pgno,txnid in the MDB_dovpage, not the actual ovpage
Hallvard Furuseth [Tue, 25 Jul 2017 19:03:48 +0000 (21:03 +0200)]
Fix broken mdb_page_get(ovpage) optimization
Hallvard Furuseth [Tue, 25 Jul 2017 18:17:21 +0000 (20:17 +0200)]
Fix last commit - sizeof(pgno_t) and C90 compat
Howard Chu [Tue, 25 Jul 2017 14:34:03 +0000 (15:34 +0100)]
Scaled back on overflow page work
Still keeping page header at top of overflow page for now
Howard Chu [Mon, 17 Jul 2017 12:02:00 +0000 (13:02 +0100)]
checkpoint - moving overflow page headers
Moving headers outside of overflow page.
Howard Chu [Sun, 2 Jul 2017 16:13:48 +0000 (17:13 +0100)]
Data format change: add txnid to page header
Hallvard Furuseth [Sat, 1 Jul 2017 06:04:59 +0000 (08:04 +0200)]
Trivial encryption when $LMDB_FLAGS = "e"
Hallvard Furuseth [Sat, 1 Jul 2017 11:15:37 +0000 (13:15 +0200)]
Get flags from $LMDB_FLAGS when MDB_TEST
Now we don't need to tweak the code of callers to test encryption.
Howard Chu [Fri, 30 Jun 2017 15:30:29 +0000 (16:30 +0100)]
Save/restore enc IV in page 0
Howard Chu [Fri, 30 Jun 2017 14:42:38 +0000 (15:42 +0100)]
Plug some information leaks
Zero out decrypted pages before freeing them.
Do proper init on reused loose pages.
Howard Chu [Thu, 29 Jun 2017 17:22:34 +0000 (18:22 +0100)]
Add test code for remap / encryption
Howard Chu [Thu, 29 Jun 2017 15:18:52 +0000 (16:18 +0100)]
Page-level encryption support
Currently encrypts all but the meta pages
Still needs to store/retrieve the initialization vector
Hallvard Furuseth [Sat, 1 Jul 2017 16:57:09 +0000 (18:57 +0200)]
Rename mdb_env_close0() -> mdb_env_close_active()
Hopefully we'll remember now what goes in which function.
Howard Chu [Thu, 29 Jun 2017 15:07:17 +0000 (16:07 +0100)]
Optimization for mdb_rpage_get()
The caller already knows if it's using an overflow page, so
pass the number of expected pages in instead of having to
map the page first and check the count there.
Howard Chu [Thu, 1 Jun 2017 16:48:04 +0000 (17:48 +0100)]
RPAGE_CACHE is now dynamically selectable
Behavior is controlled by MDB_REMAP_CHUNKS envflag
Remapping is always enabled in MDB_VL32
Howard Chu [Sat, 27 May 2017 14:37:14 +0000 (15:37 +0100)]
Add new MDB_RPAGE_CACHE def
Separate 32/64 dependency from rpage buffer mechanism
Howard Chu [Wed, 12 Apr 2017 22:55:29 +0000 (23:55 +0100)]
Fix Android recognition
The official macro is __ANDROID__; ANDROID may or may not be defined.
Howard Chu [Tue, 7 Jun 2016 22:38:47 +0000 (23:38 +0100)]
MDB_VL32
Use the same size dirty list for both 64 and 32 bit.
Howard Chu [Thu, 23 Mar 2017 20:37:24 +0000 (20:37 +0000)]
ITS#8622 fix xcursor after cursor_del
Re-fix
6b1df0e4c7fadd21d1233d7157229b2d89ccaa04 from ITS#8406