mdb:mdb.git
5 years agoUse CC/LDFLAGS to link the shared lib LMDB_0_9_6
Howard Chu [Mon, 25 Feb 2013 13:06:51 +0000 (05:06 -0800)]
Use CC/LDFLAGS to link the shared lib

5 years agoInstall manpages too
Howard Chu [Mon, 25 Feb 2013 10:02:15 +0000 (02:02 -0800)]
Install manpages too

5 years agoDelete obsolete @todo
Howard Chu [Mon, 25 Feb 2013 07:40:34 +0000 (23:40 -0800)]
Delete obsolete @todo

We do it now... (coalescing freelist entries in page_alloc)

5 years agoAdd sample apps for comparison/education purposes
Howard Chu [Mon, 25 Feb 2013 07:39:17 +0000 (23:39 -0800)]
Add sample apps for comparison/education purposes

5 years agoAdd $(DESTDIR) to make install target
Howard Chu [Mon, 25 Feb 2013 06:50:51 +0000 (06:50 +0000)]
Add $(DESTDIR) to make install target

5 years agoUpdate error code instances
Howard Chu [Wed, 20 Feb 2013 13:08:52 +0000 (05:08 -0800)]
Update error code instances

5 years agoTweak MDB_INCOMPATIBLE description
Hallvard Furuseth [Wed, 20 Feb 2013 11:19:45 +0000 (12:19 +0100)]
Tweak MDB_INCOMPATIBLE description

5 years agoTweak prev commit: Restore if-test as an assert
Hallvard Furuseth [Wed, 20 Feb 2013 08:08:41 +0000 (09:08 +0100)]
Tweak prev commit: Restore if-test as an assert

5 years agoITS#7515 Fix mdb_txn_commit(nested txn).
Hallvard Furuseth [Tue, 19 Feb 2013 21:03:41 +0000 (22:03 +0100)]
ITS#7515 Fix mdb_txn_commit(nested txn).

Don't modify the parent txn until the current txn cannot fail.
Don't assume new dirty child pgnos > dirty parent pgnos.

Page alloc/touch: Fail if child+parent dirty pages would exceed
dirty_list's maxsize. Avoids an error situation in commit.

5 years agoITS#7512 Plug mdb_txn_abort(nested txn) page leaks.
Hallvard Furuseth [Tue, 19 Feb 2013 21:03:04 +0000 (22:03 +0100)]
ITS#7512 Plug mdb_txn_abort(nested txn) page leaks.

Also catch mdb_cursor_shadow() errors.

5 years agoCheck DB flags when refreshing a stale MDB DBI.
Hallvard Furuseth [Tue, 19 Feb 2013 21:02:37 +0000 (22:02 +0100)]
Check DB flags when refreshing a stale MDB DBI.

It's hairy to figure out when a DBI is valid. Catch destructive
user errors, and flags which another process changed under us.

5 years agomdb_cursor_prev,mdb_cursor_next: Fix return value.
Hallvard Furuseth [Tue, 19 Feb 2013 21:02:15 +0000 (22:02 +0100)]
mdb_cursor_prev,mdb_cursor_next: Fix return value.

Return mdb_node_read()'s return value if it fails, not 1.
(Can happen if mdb_page_get() fails and NDEBUG is #defined.)

5 years agoITS#7515 mdb_dbi_open(): Also open in parent txns.
Hallvard Furuseth [Tue, 19 Feb 2013 21:01:29 +0000 (22:01 +0100)]
ITS#7515 mdb_dbi_open(): Also open in parent txns.

This makes aborting nested and non-nested txns more
similar: The new DBI is available to the surrounding
context (parent txn and MDB_env respectively).

5 years agomdb_page_alloc(): Handle freeDB txnid range holes.
Hallvard Furuseth [Tue, 19 Feb 2013 20:17:33 +0000 (21:17 +0100)]
mdb_page_alloc(): Handle freeDB txnid range holes.

A txn writes no freeDB entry if previous txn dropped mainDB and a read
txn prevents freelist entry reuse. This surprised mdb_page_alloc (and
mdb_txn_commit too before 65c053a6e7f6973c1d09710aa1bd57b218206fcb).

5 years agoITS#7517 Document that dirty DBs may not be closed
Hallvard Furuseth [Tue, 19 Feb 2013 20:15:26 +0000 (21:15 +0100)]
ITS#7517 Document that dirty DBs may not be closed

5 years agoITS#7485 Document key/data size limits in lmdb.h.
Hallvard Furuseth [Tue, 19 Feb 2013 20:14:23 +0000 (21:14 +0100)]
ITS#7485 Document key/data size limits in lmdb.h.

mdb.c already describes them. The user doc should too.

5 years agoRevert "ITS#7515 update parent's mt_next_pgno on child commit"
Hallvard Furuseth [Sun, 17 Feb 2013 07:42:14 +0000 (08:42 +0100)]
Revert "ITS#7515 update parent's mt_next_pgno on child commit"

This reverts commit fd4861bf00fb0b86a9f3b80d16cbe363a8eac227.
It duplicated earlier code.

5 years agoITS#7515 update parent's mt_next_pgno on child commit
Howard Chu [Sun, 17 Feb 2013 00:49:53 +0000 (00:49 +0000)]
ITS#7515 update parent's mt_next_pgno on child commit

5 years agoDon't limit retries when coalescing freelist
Howard Chu [Sun, 17 Feb 2013 00:48:43 +0000 (00:48 +0000)]
Don't limit retries when coalescing freelist

Try to use whatever's available.

5 years agoITS#7515 Fix MDB parent/child txn interaction.
Hallvard Furuseth [Sat, 16 Feb 2013 18:11:20 +0000 (19:11 +0100)]
ITS#7515 Fix MDB parent/child txn interaction.

mdb_txn_commit(child): Copy more state. Copy all of mt_dbs:
Include mainDB, and even freeDB since mdb_drop() can update
it. Don't skip DBs with unchanged root, this could break
when the new was newly opened and the old unused junk.

mdb_page_get(): Search parents' dirty lists.

5 years agoITS#7377 Catch MDB failure updating root pointers.
Hallvard Furuseth [Sat, 16 Feb 2013 18:08:54 +0000 (19:08 +0100)]
ITS#7377 Catch MDB failure updating root pointers.

"cannot fail" was wrong, it fails at least when exceeding mapsize.

5 years agoITS#7517 Don't save dropped dirty MDB databases.
Hallvard Furuseth [Sat, 16 Feb 2013 18:08:37 +0000 (19:08 +0100)]
ITS#7517 Don't save dropped dirty MDB databases.

mdb_txn_commit's attempt to save the DB could corrupt another DB if
another thread had called mdb_dbi_open and reused the closed DBI.

5 years agomdb_stat -ff[f]: show contiguous page spans.
Hallvard Furuseth [Sat, 16 Feb 2013 18:07:16 +0000 (19:07 +0100)]
mdb_stat -ff[f]: show contiguous page spans.

5 years agoAdd error code MDB_MAP_RESIZED.
Hallvard Furuseth [Sat, 16 Feb 2013 18:06:28 +0000 (19:06 +0100)]
Add error code MDB_MAP_RESIZED.

5 years agoDon't memmove freelist entry when chunking it
Howard Chu [Thu, 14 Feb 2013 19:20:45 +0000 (19:20 +0000)]
Don't memmove freelist entry when chunking it

Just advance the pointer, now that it's no longer a complex struct

5 years agoITS#7455 Save freelist in single-page chunks
Hallvard Furuseth [Tue, 12 Feb 2013 11:27:59 +0000 (12:27 +0100)]
ITS#7455 Save freelist in single-page chunks

5 years agoFreelist cleanup/streamlining
Hallvard Furuseth [Wed, 23 Jan 2013 14:47:35 +0000 (15:47 +0100)]
Freelist cleanup/streamlining

Drop unneeded definitions, redundant code.

5 years agoITS#7512 Fix MDB page leak when malloc error.
Hallvard Furuseth [Thu, 7 Feb 2013 07:17:30 +0000 (08:17 +0100)]
ITS#7512 Fix MDB page leak when malloc error.

mdb_page_alloc(): Delay moving me_pgfirst,me_pglast
until malloc(MDB_oldpages to hold the IDs) succeeds.

5 years agoRevert "ITS#7515 fix mdb_dbi_open/close"
Howard Chu [Mon, 4 Feb 2013 18:53:17 +0000 (10:53 -0800)]
Revert "ITS#7515 fix mdb_dbi_open/close"

This reverts commit 48dc782ea612f85e8356a50bfbafe22e5be121cf.

5 years agoNULL key is allowed for MDB_CURRENT
Howard Chu [Fri, 1 Feb 2013 14:19:23 +0000 (06:19 -0800)]
NULL key is allowed for MDB_CURRENT

5 years agoITS#7515 fix mdb_dbi_open/close
Howard Chu [Fri, 1 Feb 2013 04:05:48 +0000 (20:05 -0800)]
ITS#7515 fix mdb_dbi_open/close

If a DBI handle is opened by a txn that aborts, the DBI handle
should no longer be valid.

5 years agoITS#7511 make sure cursor is marked valid after successful put
Howard Chu [Tue, 29 Jan 2013 02:45:36 +0000 (18:45 -0800)]
ITS#7511 make sure cursor is marked valid after successful put

5 years agoITS#7505 fix prev commit, partial revert
Howard Chu [Tue, 29 Jan 2013 01:08:24 +0000 (01:08 +0000)]
ITS#7505 fix prev commit, partial revert

5 years agoITS#7505 Fix mdb_update_key when key is too big
Howard Chu [Sun, 27 Jan 2013 17:55:21 +0000 (17:55 +0000)]
ITS#7505 Fix mdb_update_key when key is too big

5 years agoFix MDB_CURRENT updating for dupsort items
Howard Chu [Sat, 26 Jan 2013 18:55:35 +0000 (18:55 +0000)]
Fix MDB_CURRENT updating for dupsort items

5 years agoUpdate MDB comments: Caveats, flags, etc.
Hallvard Furuseth [Wed, 16 Jan 2013 17:42:57 +0000 (18:42 +0100)]
Update MDB comments: Caveats, flags, etc.

5 years agoITS#7485 data sizes limited to 32 bits
Howard Chu [Tue, 15 Jan 2013 12:24:07 +0000 (04:24 -0800)]
ITS#7485 data sizes limited to 32 bits

That's all we have space for in a node record.

5 years agoITS#7485 more size checks
Howard Chu [Mon, 14 Jan 2013 21:46:25 +0000 (13:46 -0800)]
ITS#7485 more size checks

5 years agoITS#7485 check maxkeysize in mdb_cursor_put
Howard Chu [Mon, 14 Jan 2013 21:12:15 +0000 (13:12 -0800)]
ITS#7485 check maxkeysize in mdb_cursor_put

Also MDB_MAXKEYSIZE is redefinable at compile time.

5 years agoOne more rename
Howard Chu [Mon, 14 Jan 2013 20:57:54 +0000 (12:57 -0800)]
One more rename

Forgot this in 98fe3390891c7577e5f2664a091088786da78ffb

5 years agoITS#7491 check for filled dirty page list
Howard Chu [Fri, 11 Jan 2013 19:45:25 +0000 (11:45 -0800)]
ITS#7491 check for filled dirty page list

Very large single transactions will fail. It's not just a problem when
nested transactions are used. We could make this dynamically sized,
but I'm not sure what the point is.

5 years agoHappy New Year
Howard Chu [Thu, 10 Jan 2013 10:58:55 +0000 (02:58 -0800)]
Happy New Year

5 years agoDelete liblmdb/mfree. It has moved into mdb_stat.
Hallvard Furuseth [Wed, 9 Jan 2013 19:49:43 +0000 (20:49 +0100)]
Delete liblmdb/mfree. It has moved into mdb_stat.

5 years agoITS#7455 don't give up so soon
Howard Chu [Wed, 9 Jan 2013 16:30:13 +0000 (08:30 -0800)]
ITS#7455 don't give up so soon

If we're operating on the freelist, see if our current pghead
can satisfy the request before giving up and using new pages.

5 years agoFix typo
Howard Chu [Wed, 19 Dec 2012 21:20:24 +0000 (13:20 -0800)]
Fix typo

5 years agoAdd initial mdb utility manpages
Howard Chu [Wed, 19 Dec 2012 21:09:56 +0000 (13:09 -0800)]
Add initial mdb utility manpages

5 years agoinit_meta should write mapsize
Howard Chu [Wed, 12 Dec 2012 06:21:52 +0000 (22:21 -0800)]
init_meta should write mapsize

Was leaving it 0 initially.

5 years agoUpdate version date
Howard Chu [Wed, 12 Dec 2012 00:01:25 +0000 (16:01 -0800)]
Update version date

5 years agoMake sure init_meta is at beginning of file
Howard Chu [Tue, 11 Dec 2012 20:55:47 +0000 (12:55 -0800)]
Make sure init_meta is at beginning of file

5 years agoMore for prev commit
Howard Chu [Tue, 11 Dec 2012 20:46:17 +0000 (12:46 -0800)]
More for prev commit

Use the latest meta page

5 years agoPartially revert 65d40eb5d2c7c28df05e2c1d9b21d90e2a82e0b5
Howard Chu [Tue, 11 Dec 2012 20:03:19 +0000 (12:03 -0800)]
Partially revert 65d40eb5d2c7c28df05e2c1d9b21d90e2a82e0b5

Allow both increasing and decreasing the environment size.
But don't allow decreasing below the currently occupied space.

5 years agoFIx prev commit
Howard Chu [Tue, 11 Dec 2012 01:21:24 +0000 (17:21 -0800)]
FIx prev commit

5 years agoAdd error checks to txn_commit
Howard Chu [Mon, 10 Dec 2012 20:21:36 +0000 (12:21 -0800)]
Add error checks to txn_commit

These ops could fail if the map is full.

5 years agoITS#7455 simplify
Howard Chu [Mon, 10 Dec 2012 20:16:50 +0000 (12:16 -0800)]
ITS#7455 simplify

Don't try to reclaim overflow pages while operating on
the freelist (for now). The circular dependencies are much like
the single-page case, but worse. Maybe look into this in the
future, but it's not absolutely necessary now.

5 years agoITS#7467 add verbose freelist info
Howard Chu [Fri, 7 Dec 2012 21:19:36 +0000 (13:19 -0800)]
ITS#7467 add verbose freelist info

5 years agoITS#7465 fail if both -a and -s specified
Howard Chu [Fri, 7 Dec 2012 20:06:30 +0000 (12:06 -0800)]
ITS#7465 fail if both -a and -s specified

5 years agoYet more retries for overflow page scan
Howard Chu [Fri, 7 Dec 2012 01:39:49 +0000 (17:39 -0800)]
Yet more retries for overflow page scan

5 years agoFreelist fixes
Howard Chu [Thu, 6 Dec 2012 16:25:43 +0000 (08:25 -0800)]
Freelist fixes

Keep list sorted if it grows during a write. Don't free pghead until
we're sure our writes are all finished.

5 years agoFix mdb_env_copy
Howard Chu [Tue, 4 Dec 2012 14:30:22 +0000 (06:30 -0800)]
Fix mdb_env_copy

Just write in 2^31 sized chunks

5 years agoRename mdb_open/close mdb_dbi_open/close
Howard Chu [Tue, 4 Dec 2012 00:53:24 +0000 (16:53 -0800)]
Rename mdb_open/close mdb_dbi_open/close

Avoid possible symbol clashes with MDB-Tools libmdb

5 years agoFix 5c1ee7f7ba9580d5ff29e74cbb02eee335c33d94
Howard Chu [Mon, 3 Dec 2012 21:57:46 +0000 (13:57 -0800)]
Fix 5c1ee7f7ba9580d5ff29e74cbb02eee335c33d94

mdb_cursor_sibling() no longer pops cursor before returning.

5 years agoFix mdb_midl_shrink
Howard Chu [Mon, 3 Dec 2012 21:57:28 +0000 (13:57 -0800)]
Fix mdb_midl_shrink

5 years agoMore retries for overflow page scan
Howard Chu [Fri, 30 Nov 2012 20:54:19 +0000 (12:54 -0800)]
More retries for overflow page scan

5 years agoRename libmdb to liblmdb
Howard Chu [Fri, 30 Nov 2012 20:45:34 +0000 (12:45 -0800)]
Rename libmdb to liblmdb

5 years agoAdd install target
Howard Chu [Fri, 30 Nov 2012 20:39:53 +0000 (12:39 -0800)]
Add install target

5 years agoRename libmdb to liblmdb, lmdb.h
Howard Chu [Fri, 30 Nov 2012 20:30:51 +0000 (12:30 -0800)]
Rename libmdb to liblmdb, lmdb.h

Avoid naming conflicts with other mdb* packages. Bump version to 0.9.5

5 years agoITS#7455 use freelist for overflow pages
Howard Chu [Thu, 29 Nov 2012 01:13:26 +0000 (17:13 -0800)]
ITS#7455 use freelist for overflow pages

5 years agoDrop unneeded #include <time.h>
Howard Chu [Wed, 28 Nov 2012 23:34:44 +0000 (15:34 -0800)]
Drop unneeded #include <time.h>

5 years agoDoc layout tweaks
Howard Chu [Wed, 28 Nov 2012 23:34:19 +0000 (15:34 -0800)]
Doc layout tweaks

5 years agomdb_env_sync(,force=1): Override MDB_MAPASYNC.
Hallvard Furuseth [Tue, 27 Nov 2012 22:56:47 +0000 (23:56 +0100)]
mdb_env_sync(,force=1): Override MDB_MAPASYNC.

With MDB_MAPASYNC, the API provided no way to ensure full sync.

5 years agomdb_cursor_dbi(): Assume valid args.
Hallvard Furuseth [Tue, 27 Nov 2012 22:56:47 +0000 (23:56 +0100)]
mdb_cursor_dbi(): Assume valid args.

It returned 0, which is the freelist DBI and is valid for a few uses.

5 years agoAPI change: mdb_drop() only accepts del=0 or 1.
Hallvard Furuseth [Tue, 27 Nov 2012 22:56:47 +0000 (23:56 +0100)]
API change: mdb_drop() only accepts del=0 or 1.

This allows for other flag values in the future.

5 years agoAPI change: mdb_env_set_maxdbs(, *named* DBs).
Hallvard Furuseth [Tue, 27 Nov 2012 22:56:47 +0000 (23:56 +0100)]
API change: mdb_env_set_maxdbs(, *named* DBs).

Let the user specify the number of databases he will actually
use. Adding 2 for FREE_DBI and MAIN_DBI is an internal matter.

5 years agoITS#7453 Fix reset of MDB_NOSYNC/MDB_NOMETASYNC.
Hallvard Furuseth [Tue, 27 Nov 2012 22:56:47 +0000 (23:56 +0100)]
ITS#7453 Fix reset of MDB_NOSYNC/MDB_NOMETASYNC.

mdb_env_open() with these flags did not open a synchronizing
file descriptor.  Thus disabling them later did not work.

5 years agoTweak MDB_FIXEDMAP handling.
Hallvard Furuseth [Tue, 27 Nov 2012 22:56:47 +0000 (23:56 +0100)]
Tweak MDB_FIXEDMAP handling.

Drop mmap()'s MAP_FIXED flag, so it returns another address instead
of unmapping existing overlapping pages. Verify the returned address.

5 years agoRenumber MDB_NOSUBDIR. Check mdb_env_open() flags.
Hallvard Furuseth [Tue, 27 Nov 2012 22:56:47 +0000 (23:56 +0100)]
Renumber MDB_NOSUBDIR. Check mdb_env_open() flags.

MDB_NOSUBDIR was == MDB_REVERSEKEY. That affected the freelist:
Env flags are stored in mm_flags alias mm_dbs[FREE_DBI].md_flags.

It stays a persistent flag, in case mdb_env_open someday wants
to pick/verify which lockfile to use with the datafile.

Catch bad flags so they will no longer make it into the data file.

5 years agoITS#7432 fix typo in mdb_midl_sort
Howard Chu [Mon, 5 Nov 2012 13:06:06 +0000 (05:06 -0800)]
ITS#7432 fix typo in mdb_midl_sort

Wasn't pushing the optimal half of the array onto the stack,
thus used more stack than expected -> overrun.

5 years agoBetter fix for MDB_DEBUG tweak -- from hbf
Howard Chu [Thu, 25 Oct 2012 13:55:46 +0000 (06:55 -0700)]
Better fix for MDB_DEBUG tweak -- from hbf

5 years agoRevert "MDB_DEBUG tweak for old compilers"
Howard Chu [Thu, 25 Oct 2012 13:54:09 +0000 (06:54 -0700)]
Revert "MDB_DEBUG tweak for old compilers"

This reverts commit ef2092eac9f35b77eae250801c96dfa515c6d4b2.

5 years agoMDB_DEBUG tweak for old compilers
Howard Chu [Thu, 25 Oct 2012 12:28:55 +0000 (05:28 -0700)]
MDB_DEBUG tweak for old compilers

5 years agoFix flag checks in mdb_open
Howard Chu [Tue, 23 Oct 2012 11:48:04 +0000 (04:48 -0700)]
Fix flag checks in mdb_open

5 years agofix Windows mdb_env_copy(), WriteFile overflow
Howard Chu [Tue, 23 Oct 2012 11:32:55 +0000 (04:32 -0700)]
fix Windows mdb_env_copy(), WriteFile overflow

5 years agoMake sure mdb_open flags are committed on main DB
Howard Chu [Tue, 23 Oct 2012 00:03:15 +0000 (17:03 -0700)]
Make sure mdb_open flags are committed on main DB

If no data was modified in the txn, mdb_open flag changes were dropped.

5 years agoMinor cleanup
Howard Chu [Mon, 22 Oct 2012 23:13:06 +0000 (16:13 -0700)]
Minor cleanup

5 years agoFix MDB_PREV
Howard Chu [Mon, 22 Oct 2012 22:58:46 +0000 (15:58 -0700)]
Fix MDB_PREV

Could return 1 garbage record before actual data, if starting from EOF

5 years agoTweak output, add free page info
Howard Chu [Tue, 16 Oct 2012 23:52:13 +0000 (16:52 -0700)]
Tweak output, add free page info

5 years agoAdd mdb_env_info() to retrieve interesting env params
Howard Chu [Tue, 16 Oct 2012 23:22:21 +0000 (16:22 -0700)]
Add mdb_env_info() to retrieve interesting env params

5 years agoMerge mdb_stata into mdb_stat
Howard Chu [Tue, 16 Oct 2012 22:28:20 +0000 (15:28 -0700)]
Merge mdb_stata into mdb_stat

5 years agoMake sure increases of mapsize are persisted
Howard Chu [Tue, 16 Oct 2012 21:53:25 +0000 (14:53 -0700)]
Make sure increases of mapsize are persisted

5 years agoITS#7377 Errorcheck Windows calls and thread keys.
Hallvard Furuseth [Mon, 15 Oct 2012 15:04:48 +0000 (17:04 +0200)]
ITS#7377 Errorcheck Windows calls and thread keys.

5 years agoExplicitly unlock the MDB lockfile on Windows.
Hallvard Furuseth [Mon, 15 Oct 2012 15:04:43 +0000 (17:04 +0200)]
Explicitly unlock the MDB lockfile on Windows.

5 years agomdb_env_open(): Keep mdb_env_set_flags() flags.
Hallvard Furuseth [Mon, 15 Oct 2012 15:04:11 +0000 (17:04 +0200)]
mdb_env_open(): Keep mdb_env_set_flags() flags.

5 years agoMore for mdb_env_copy().
Hallvard Furuseth [Mon, 15 Oct 2012 15:03:46 +0000 (17:03 +0200)]
More for mdb_env_copy().

Fix #define _GNU_SOURCE = 1 to match any command line -D_GNU_SOURCE.
.gitignore += mdb_copy.

5 years agoFix last commit.
Hallvard Furuseth [Mon, 15 Oct 2012 15:03:33 +0000 (17:03 +0200)]
Fix last commit.

Add flag MDB_ENV_ACTIVE instead of using the state of me_lfd.
Require MDB_RDONLY for MDB_ROFS.  Swap reader/writer mutex lock.

5 years agoSupport read access on read-only media
Howard Chu [Sat, 13 Oct 2012 11:05:00 +0000 (04:05 -0700)]
Support read access on read-only media

5 years agoSilence warning in prev commit
Howard Chu [Thu, 11 Oct 2012 23:47:56 +0000 (16:47 -0700)]
Silence warning in prev commit

5 years agoAdd mdb_copy for backing up a DB environment
Howard Chu [Thu, 11 Oct 2012 19:21:40 +0000 (12:21 -0700)]
Add mdb_copy for backing up a DB environment

5 years agoTweak MDB restrictions
Hallvard Furuseth [Wed, 3 Oct 2012 19:13:21 +0000 (21:13 +0200)]
Tweak MDB restrictions

5 years agoFix mdb_open() off-by-one error in maxdbs check
Hallvard Furuseth [Wed, 3 Oct 2012 16:08:56 +0000 (18:08 +0200)]
Fix mdb_open() off-by-one error in maxdbs check

5 years agoITS#7377 Wrap fcntl F_SETLK in EINTR loop too.
Hallvard Furuseth [Wed, 3 Oct 2012 16:06:29 +0000 (18:06 +0200)]
ITS#7377 Wrap fcntl F_SETLK in EINTR loop too.

This can happen even on local filesystems.