Commit graph

3472 commits

Author SHA1 Message Date
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