Commit graph

909 commits

Author SHA1 Message Date
Hallvard Furuseth
404697b369 mdb_env_set_flags(): Reject CHANGELESS flags.
Reverts part of a2ac10107e.
MDB_ROBUST needed to be accepted, but that flag is gone.
2015-01-14 08:12:50 +01:00
Howard Chu
71741a6b08 Fix potential null deref (coverity) 2015-01-13 19:19:09 +00:00
Hallvard Furuseth
d711e357da Whitespace (align with mdb.RE) 2015-01-12 21:02:29 +01:00
Hallvard Furuseth
631970e485 Make SysV semaphores robust. Cleanup MDB_ROBUST. 2015-01-12 21:02:29 +01:00
Hallvard Furuseth
9441012435 ITS#8021 doc: Don't mix MDB_WRITEMAP + non-WRITEMAP 2015-01-12 12:19:51 +01:00
Howard Chu
8b6c4250b1 More cleanup for fdatasync hack 2015-01-12 10:42:26 +00:00
Howard Chu
ea89e3d269 Tweak conditionals for fdatasync hack 2015-01-11 11:37:37 +00:00
Howard Chu
f83f62a7ae ITS#8021 env_sync is invalid in RDONLY env 2015-01-09 11:25:52 +00:00
Howard Chu
462dc09745 fdatasync hack, again
Check for ext3/ext4 fs, then check kernel version.
2015-01-08 12:54:14 +00:00
Howard Chu
e86072a9c7 Revert "Note MDB_SAFE_FDATASYNC"
This reverts commit 293d6bb47f.

Revert "Simpler fdatasync hack"

This reverts commit 9585c01233.
2015-01-08 12:17:58 +00:00
Howard Chu
293d6bb47f Note MDB_SAFE_FDATASYNC 2015-01-08 11:43:57 +00:00
Howard Chu
9585c01233 Simpler fdatasync hack 2015-01-08 11:42:08 +00:00
Howard Chu
0ef1e0b16d Revert "Fix prev commit for env_sync0"
This reverts commit 985bbbbdd5.

Revert "Hack for potential ext3/ext4 corruption issue"

This reverts commit 0018eeb2c3.
2015-01-08 11:29:30 +00:00
Howard Chu
985bbbbdd5 Fix prev commit for env_sync0 2014-12-21 00:13:50 +00:00
Howard Chu
0018eeb2c3 Hack for potential ext3/ext4 corruption issue
Use regular fsync() if we think this commit grew the DB file.
2014-12-18 04:38:53 +00:00
Howard Chu
7ce29b9edb Fix MDB_APPEND doc
We actually compare the new key against the last key, to prevent
corruption.
2014-12-15 20:40:59 +00:00
Hallvard Furuseth
6c71173258 make clean: remove *.lo 2014-12-13 20:35:08 +01:00
Hallvard Furuseth
cccc947b4a Try to avoid an invalid datafile after failed init 2014-12-08 09:56:36 +01:00
Howard Chu
9cc04f604f 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-08 03:21:09 +00:00
Hallvard Furuseth
03ddbcf37d C90-compatible code for SysV semaphores 2014-12-05 21:00:21 +01:00
Leo Yuriev
1a7243b3f4 ITS#7987 fix excessive space for single write txn 2014-12-05 19:30:31 +00:00
Howard Chu
c36c167cc4 ITS#7994 fix prev commit
Strip docs promising behaviors that we don't promise to hold.
Strip MDB_txnid_t typedef.
2014-12-05 19:18:01 +00:00
David Barbour
b660491d3f ITS#7994 Access to current transaction ID.
I, David Barbour, hereby place the following modifications to OpenLDAP
Software (and only these modifications) into the public domain. Hence,
these modifications may be freely used and/or redistributed for any
purpose with or without attribution and/or other notice.
2014-12-05 19:17:52 +00:00
Hallvard Furuseth
1413de3a04 Fix SysV semaphores - repair mti_txnid.
Similar to 443a7e40c4.
2014-12-05 18:18:53 +01:00
Hallvard Furuseth
3e6ac6ef6b For ITS#7789: Ensure mapsize >= pages in use.
Check new mapsizes against mm_last_pg.  Move
mdb_env_init_meta0() so it can set mm_last_pg earlier.
2014-12-03 12:37:55 +01:00
Hallvard Furuseth
c306423adf Fix WIN32 -> _WIN32 2014-12-03 12:27:53 +01:00
Hallvard Furuseth
0697869d92 mdb_strerror: Silence warning @ Windows 2014-12-01 08:59:29 +01:00
Hallvard Furuseth
4376a19c5c Fix comments 2014-12-01 08:59:29 +01:00
Hallvard Furuseth
4bda1d2461 Clean up SysV semaphore code.
Change MDB_LOCK_FORMAT to differ from Posix semaphores/mutexes.
Do not use array/member length 0 for MDB_txninfo.mt2.
2014-12-01 08:59:29 +01:00
Hallvard Furuseth
443a7e40c4 Fix robust mutexes - repair mti_txnid.
Broken by e3b6c359a9, if
commit() crashes in write_meta before setting mti_txnid.
2014-12-01 08:59:29 +01:00
Hallvard Furuseth
42110d83a9 Simplify recent changes a bit. 2014-12-01 08:59:29 +01:00
Hallvard Furuseth
9a72292ac1 ITS#7961,#7987 Re-fix txn init.
More fallout from 4d02c741b1:
Don't modify another thread's write txn. Reinit me_txn0 fully.
2014-11-28 16:32:23 +00:00
leo@yuriev.ru
9a8eb95674 ITS#7971 LMDB: clarification in mdb_txn_renew0(). 2014-10-18 07:00:52 +01:00
leo@yuriev.ru
bd6d2e6f2c ITS#7970 LMDB: Critical Heisenbug
Inconsistent reading & SIGSEGV due to the race condition.
2014-10-18 06:57:58 +01:00
leo@yuriev.ru
9a80a8a8e8 ITS#7969 LMDB: volatile & __synchronize().
Globally shared fields of meta-data are not 'volatile'.
2014-10-18 06:53:53 +01:00
Howard Chu
925e7805a5 ITS#7959 fix prev commit
fstat returns -1, not an errno. Move code into its own function
for reuse.
2014-10-08 19:25:27 +01:00
Howard Chu
d72b2f5d15 ITS#7961 fix txn init
More fallout from 4d02c741b1
2014-10-04 21:48:49 +01:00
Jean-Christophe DUBOIS
d77e3ddb4d ITS#7959 Check fstat return value
Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>
2014-10-03 21:10:49 +01:00
Leo Yuriev
461d9c8f34 ITS#7841 trivial cleanup
TRIVIA - lmdb: clean testdb-dir while "make test".
2014-10-02 23:43:57 +01:00
Howard Chu
56c2c160be ITS#7956 fix compact of empty env 2014-10-02 22:11:43 +01:00
Howard Chu
bfe297da47 ITS#7955, #7671 fix MDB_PREV_DUP 2014-10-02 21:58:20 +01:00
Howard Chu
61dd017808 ITS#7953 .gitignore *.lo 2014-10-02 21:35:15 +01:00
Howard Chu
fd0315d6e5 ITS#7952 .gitignore mdb_dump/load 2014-10-02 21:34:55 +01:00
Howard Chu
8bec53fdfd Don't use -fPIC for static lib 2014-10-01 21:00:03 +01:00
Howard Chu
e3b6c359a9 Use robust mutexes by default
Making it optional on pthreads just complicates things;
they're always robust on other implementations
2014-10-01 20:58:15 +01:00
Howard Chu
58ddb5527b Use SysV semaphores instead of POSIX
Since they can cleanup after themselves on process exit
2014-10-01 20:37:25 +01:00
Howard Chu
a53716ed96 Must do dlist_free before releasing Wmutex 2014-10-01 20:36:37 +01:00
Hallvard Furuseth
ec6cf4e40f MDB_ROBUST: Use MDB_PID_T. Drop a wmutex variable. 2014-10-01 20:36:21 +01:00
Howard Chu
f6add293a7 Free write mutex earlier in txn_reset0 2014-10-01 20:36:11 +01:00
Hallvard Furuseth
a2ac10107e Add MDB_ROBUST 2014-10-01 20:35:12 +01:00