Howard Chu
7f0771a3ed
Merge mdb_stata into mdb_stat
2012-10-16 15:37:29 -07:00
Howard Chu
65d40eb5d2
Make sure increases of mapsize are persisted
2012-10-16 14:53:25 -07:00
Hallvard Furuseth
94965307c8
ITS#7377 Errorcheck Windows calls and thread keys.
2012-10-15 17:04:48 +02:00
Hallvard Furuseth
88b7bb4639
Explicitly unlock the MDB lockfile on Windows.
2012-10-15 17:04:43 +02:00
Hallvard Furuseth
e9d87866c4
mdb_env_open(): Keep mdb_env_set_flags() flags.
2012-10-15 17:04:11 +02:00
Hallvard Furuseth
092f9a5c66
More for mdb_env_copy().
...
Fix #define _GNU_SOURCE = 1 to match any command line -D_GNU_SOURCE.
.gitignore += mdb_copy.
2012-10-15 17:03:46 +02:00
Hallvard Furuseth
462d9dfd10
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.
2012-10-15 17:03:33 +02:00
Howard Chu
e40713b631
Support read access on read-only media
2012-10-13 04:05:00 -07:00
Howard Chu
f037dd2d19
Silence warning in prev commit
2012-10-11 16:47:56 -07:00
Howard Chu
ebb6859ea5
Add mdb_copy for backing up a DB environment
2012-10-11 12:24:01 -07:00
Hallvard Furuseth
756ce8e10c
Tweak MDB restrictions
2012-10-03 21:13:21 +02:00
Hallvard Furuseth
a3f33dd20e
Fix mdb_open() off-by-one error in maxdbs check
2012-10-03 18:08:56 +02:00
Hallvard Furuseth
38fb8e6eb1
ITS#7377 Wrap fcntl F_SETLK in EINTR loop too.
...
This can happen even on local filesystems.
2012-10-03 18:06:29 +02:00
Hallvard Furuseth
ab3fea51dc
ITS#7377 Catch ftruncate() error
2012-10-03 18:06:29 +02:00
Hallvard Furuseth
2b960613e0
ITS#7377 Document caveats/troubeshooting.
2012-10-03 18:04:07 +02:00
Howard Chu
0fc0ccdc0c
Merge remote-tracking branch 'origin/mdb.master'
2012-09-30 10:03:21 -07:00
Howard Chu
7333b6bdc9
Fix prev commit
...
It only worked if the freelist was already non-empty
2012-09-30 10:01:57 -07:00
Howard Chu
b0ad9e76c7
Merge remote-tracking branch 'origin/mdb.master'
2012-09-30 07:50:56 -07:00
Howard Chu
cd228b4722
Fix mdb_drop
...
if it was the only operation in a txn, it would be ignored.
2012-09-30 07:49:30 -07:00
Howard Chu
a1c2dc66db
Merge remote-tracking branch 'origin/mdb.master'
2012-09-27 05:07:24 -07:00
Howard Chu
0c4c6fe72a
ITS#7385, check further for bad splits
...
More for 48ef27b6f5
Our definition of "large" data item needs to be smaller to
handle more cases where a bad split is possible
2012-09-27 05:06:23 -07:00
Howard Chu
2a68553ec1
Merge remote-tracking branch 'origin/mdb.master'
2012-09-19 06:16:36 -07:00
Howard Chu
ba6c3281a1
Add MDB_GET_CURRENT
...
return whatever the cursor is currently pointing at
2012-09-19 06:15:09 -07:00
Howard Chu
c264d70fbe
Merge remote-tracking branch 'origin/mdb.master'
2012-09-18 12:37:59 -07:00
Howard Chu
d13ca0de4f
ITS#7394 ignore WRITEMAP if RDONLY
2012-09-18 12:36:54 -07:00
Howard Chu
b8e48e95fb
Merge remote-tracking branch 'origin/mdb.master'
2012-09-17 08:21:20 -07:00
Howard Chu
0a359fb629
More for 48ef27b6f5
...
page_split with newindex > split_indx
2012-09-17 07:02:41 -07:00
Howard Chu
5ef56b437e
More for ab04c50a32
...
Use explicit MDB_RDONLY flag
2012-09-17 07:01:28 -07:00
Hallvard Furuseth
c67ea9c060
ITS#7377 Catch MDB user errors.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
c0f3d9b9a8
ITS#7377 Catch MDB setup errors and clean up.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
fe1b3794de
ITS#7364 Limit mdb lock upgrade before sem_unlink.
...
Do not try shared lock when closing or after error. Track file lock
state to decide. Change meaning of *excl to reflect file lock state.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
c760e536ec
ITS#7364 Always sem_unlink() in mdb_env_open().
...
Drop the sem_unlink() error checks, which could prevent the 2nd
unlink. Instead use O_EXCL in sem_open().
This makes "open+close the database" the API for trying to clean
away the old semaphores, if they were left behind by a previous run.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
31be24896b
ITS#7377 Wrap sem_wait & file locks in EINTR loops
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
a35f9b2a53
Remove mdb data races. Use (txnid_t)-1 as "no ID".
...
Avoid race between numreaders++ and reading numreaders at cleanup. Make
the un-mutexed reset of reader table entry, atomic: Reset mr_pid only.
Instead check mr_pid != 0 in mdb_page_alloc()'s scan for readers.
(txnid_t)-1 as "no ID"-mark avoids a check for mr_txnid != 0.
The scan can stop when seeing an old reader.
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
38cc1e96b4
Save pid in MDB_env instead of repeating getpid().
...
An open MDB environment does not survive or catch fork(),
so repeating getpid() was pointless.
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
20a216fcc9
MDB_WRITEMAP needs no DSYNC descriptor (me_mfd)
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
588a84a5ae
ITS#7363 Preprocessor namespace cleanup.
...
Rename USE_POSIX_SEM to MDB_USE_POSIX_SEM.
Separate MDB_FDATASYNC from MDB_USE_POSIX_SEM.
2012-09-17 15:42:14 +02:00
Howard Chu
8bb10add24
More for ab04c50a32
...
Fix typos, error code ranges
2012-09-17 06:35:03 -07:00
Howard Chu
acbff5b1ea
Add mdb_cursor_renew()
...
Allow cursors on read-only txns to be reused with later txns.
2012-09-17 04:41:13 -07:00
Howard Chu
076b2b36a9
Shared lib should depend on pthread
2012-09-17 03:48:54 -07:00
Howard Chu
c542442c9f
Add MDB_SET_KEY cursor op
...
Overwrites the passed in key with the DB's key
2012-09-17 02:17:25 -07:00
Howard Chu
ad79308d5a
Merge remote-tracking branch 'origin/mdb.master'
2012-09-14 06:52:37 -07:00
Howard Chu
ab04c50a32
ITS#7383 More explicit error codes
2012-09-14 06:51:31 -07:00
Howard Chu
c2bd7e630d
Merge remote-tracking branch 'origin/mdb.master'
2012-09-12 10:47:36 -07:00
Howard Chu
48ef27b6f5
ITS#7385 fix mdb_page_split (again)
...
More for d793594173 ITS#7229
2012-09-12 10:45:51 -07:00
Howard Chu
c56ede7781
Merge remote-tracking branch 'origin/mdb.master'
2012-09-07 13:42:52 -07:00
Howard Chu
de77882898
Update comments, bump version
...
Note read-write vs read-only mmap tradeoffs.
2012-09-07 13:40:07 -07:00
Howard Chu
2e677bcb99
msync should default to fully synchronous
2012-09-06 11:17:25 -07:00
Howard Chu
1c733bdc4e
Add msync support for WRITEMAP option
2012-09-05 08:40:17 -07:00
Howard Chu
d8a89464cd
Add MDB_WRITEMAP to use a writable mmap
2012-09-05 08:39:46 -07:00
Howard Chu
14a08f877f
More for 57b5fbea49
...
Fix abort of child txn
2012-09-04 06:02:26 -07:00
Hallvard Furuseth
4608cd9552
libmdb: Fix P_INVALID when pgno_t != unsigned long
2012-08-29 06:43:35 +02:00
Hallvard Furuseth
3e3c785034
libmdb: Check sem_open() against SEM_FAILED.
2012-08-29 06:42:52 +02:00
Howard Chu
d7dd1bdb82
Merge remote-tracking branch 'origin/mdb.master'
2012-08-27 14:45:58 -07:00
Howard Chu
4bc18a5dd3
In mdb_audit, change assert to fprintf
2012-08-27 14:45:16 -07:00
Howard Chu
85ae5011e7
Fix mdb_audit()
...
due to a0993354a6
2012-08-26 11:05:45 -07:00
Howard Chu
f980c64cb6
Merge remote-tracking branch 'origin/mdb.master'
2012-08-24 05:34:29 -07:00
Ondrej Kuznik
bd92b570a8
ITS#7369 mdb_stat: cleanup in case something went wrong.
2012-08-24 05:33:46 -07:00
Howard Chu
a2d1b42e39
ITS#7369 abort txn before exiting
2012-08-24 05:23:55 -07:00
Howard Chu
67dd10ed2c
Merge remote-tracking branch 'origin/mdb.master'
2012-08-22 23:02:48 -07:00
Howard Chu
916995236e
ITS#7364 also close the mutexes as needed
...
Otherwise a process that opens and closes an env more than once
will leak mutex handles. (WIN32/BSD)
2012-08-22 23:01:19 -07:00
Chris Mikkelson
46cf442700
ITS#7364 Remove POSIX semaphores when the last user closes the mdb environment.
2012-08-22 22:55:01 -07:00
Rich Megginson
a0e48e7246
ITS#7360 accept nss certname in the form of tokenname:certnickname
...
There are cases where the user may want to force the use of a particular
PKCS11 device to use for a given certificate. Allow the user to do this
with MozNSS by specifying the cert as "tokenname:certnickname" where
token name is the name of a token/slot in a PKCS11 device and certnickname
is the nickname of a certificate on that device.
2012-08-22 14:21:23 -07:00
Howard Chu
1ebf95c31b
ITS#7359 cleanup for loop
2012-08-22 14:13:10 -07:00
Jan Vcelak
6833b8717a
ITS#7359 MozNSS: fix whitespaces in all my changes
...
To be compliant with OpenLDAP coding standards.
2012-08-22 14:12:01 -07:00
Howard Chu
d377f353b7
Merge remote-tracking branch 'origin/mdb.master'
2012-08-22 14:09:56 -07:00
Chris Mikkelson
9f983b7999
ITS#7363 Use posix semaphores on apple and bsd systems.
2012-08-22 14:09:08 -07:00
Jan Vcelak
46dc6c424b
ITS#7359 MozNSS: prefer unlocked slot when getting private key
2012-08-21 13:32:34 -07:00
Howard Chu
68c3cf9795
ITS#7358 fix ITS#7270 patch
...
commit 8bb9e88d5f breaks Visual C
(as well as our own coding rules)
2012-08-21 13:22:19 -07:00
Howard Chu
a787eb641f
Merge commit 'd53644f6'
2012-08-21 12:18:10 -07:00
Howard Chu
f114fec545
Loop thru all DBs and show their stats
...
This is quick and dirty, should be integrated into mdb_stat.
2012-08-16 10:25:40 -07:00
Howard Chu
d53644f682
Minor cleanup
2012-08-02 16:03:10 -07:00
Howard Chu
d1120fbccc
Write optimization: avoid copying unused portions of pages.
2012-07-31 16:03:48 -07:00
Jan Vcelak
f425a07d02
ITS#7331 MozNSS: ignore untrusted issuer error when verifying server cert
...
Untrusted issuer error can appear with self-signed PEM certificates.
2012-07-26 10:16:39 -07:00
Howard Chu
8fe328dd51
Merge remote-tracking branch 'origin/mdb.master'
2012-07-26 08:43:57 -07:00
Howard Chu
234cd9dfb5
Fix txn_commit error check
2012-07-26 08:42:41 -07:00
Howard Chu
0e3fa1ee14
Merge remote-tracking branch 'origin/mdb.master'
2012-07-26 07:25:07 -07:00
Howard Chu
23219ed32a
Fix 205bb17793
...
Ignore current cursor pos if it's out of bounds.
2012-07-26 07:22:52 -07:00
Howard Chu
d1a7fa267b
Update sub-DBs before updating free list
2012-07-26 06:25:31 -07:00
Howard Chu
4317c7ce54
Merge remote-tracking branch 'origin/mdb.master'
2012-07-25 12:32:28 -07:00
Howard Chu
d3990eb2f8
Append mode should also detect keys that are too small
2012-07-25 12:31:08 -07:00
Howard Chu
cf74dfbb2d
Merge remote-tracking branch 'origin/mdb.master'
2012-07-24 10:18:40 -07:00
Howard Chu
5da67968af
Fix root split check in mdb_page_split
2012-07-24 08:50:42 -07:00
Mat Booth
e6d190c7de
ITS#7332 Changes required to build with Microsoft Visual Studio
2012-07-23 08:29:39 -07:00
Howard Chu
205bb17793
Skip unneeded calls to mdb_page_get in mdb_page_search
2012-07-23 04:23:49 -07:00
Howard Chu
832f7de6ae
Merge remote-tracking branch 'origin/mdb.master'
2012-07-22 17:58:39 -07:00
Howard Chu
ccc4d23e74
Leave extra space when creating a fake page
...
Minimizes the number of memcpy's if additional dups are stored.
2012-07-22 17:45:50 -07:00
Howard Chu
05ec98d119
Append mode still needs to detect duplicates
2012-07-22 17:45:50 -07:00
Emily Backes
c453a236fc
Update name information
2012-07-22 07:08:35 -07:00
Howard Chu
2b1b64f021
Merge remote-tracking branch 'origin/mdb.master'
2012-07-21 06:21:36 -07:00
Howard Chu
14fb1f59c7
Append tweaks, page_split fixes
...
Append mode now does no key comparisons, input must be in sorted order.
page_split was not updating cursor parents correctly.
2012-07-21 06:19:09 -07:00
Howard Chu
accd19edbc
Merge remote-tracking branch 'origin/mdb.master'
2012-07-18 14:19:19 -07:00
Howard Chu
7e9a6134fd
Make sure cursor's DB is init'd if STALE.
2012-07-17 04:04:52 -07:00
Howard Chu
a0993354a6
Don't use env-private copy of DB root nodes.
...
Just lookup the DB roots as needed. When many DBs are in use,
most of the copies won't be referenced in a given txn, and
there's a bad race condition in the copy routine.
2012-07-13 15:48:26 -07:00
Howard Chu
0ea56294f1
Fix darwin sem_open() names
...
Must begin with '/'
2012-07-13 14:14:36 -07:00
Howard Chu
1a9775dc5a
Fix ID -> MDB_ID due to 20baad4a20
2012-07-13 14:14:36 -07:00
Howard Chu
248fd1c7b8
Windows thread callback support
2012-07-13 14:14:36 -07:00
Howard Chu
43d47c46a7
ITS#6262 fix gettime() regression
...
Add a mutex in ldap_pvt_gettime(), delete the mutex comment
since it's no longer relevant (and was ignored anyway). This
could only ever affect multi-processor machines.
2012-07-11 16:53:33 -07:00
Howard Chu
113538806f
Merge remote-tracking branch 'origin/mdb.master'
2012-07-09 08:44:12 -07:00
Howard Chu
e562f53e10
Drop me_toggle, unused
2012-07-08 18:43:45 -07:00