Hallvard Furuseth
e539654051
ITS#8504 Fix prev commit: mc_error, #ifdef SIGPIPE
...
Never clear mc_error, we could lose a failure in the other thread.
8 years ago
Lorenz Bauer
3e7a8e26e6
ITS#8504 mdb_env_copyfd2(): Don't abort on SIGPIPE
...
Return EPIPE instead.
8 years ago
Hallvard Furuseth
65e95ffccf
ITS#7377 Catch mdb_cursor_sibling() error
8 years ago
Hallvard Furuseth
d78c80d902
Clean up and comment C_UNTRACK
...
Don't use it as a "cursor is tracked" hint in mdb_pages_xkeep().
It's been harmless so far, but would break after mdb_cursor_copy().
Checking m0 directly short-circuits better anyway.
8 years ago
Hallvard Furuseth
1fb0822b40
ITS#8355 cleanup
...
Drop ~C_EOF, pointless after 8c215aa970
8 years ago
Hallvard Furuseth
c0ff9a267a
MDB_VL32 cleanup: MDB_env.mm_mapsize type
8 years ago
Hallvard Furuseth
e1be73c771
ITS#8542 mdb_dbi_open(): Protect mainDB cursors
8 years ago
Hallvard Furuseth
ffd13db3f8
Cleanup: Add flag DB_DUPDATA, drop DB_DIRTY hack
8 years ago
Hallvard Furuseth
ef066598b5
MDB_CP_COMPACT comments
8 years ago
Hallvard Furuseth
3dda2bfa4a
doxygen cleanup
8 years ago
Hallvard Furuseth
72f875b48a
Note functions which must set MDB_TXN_ERROR on failure
...
Other functions depend on them to do so.
For mdb_node_read(), instead remove such a dependence.
8 years ago
Hallvard Furuseth
08e4684d37
MDB_VL32 mdb_page_get(): Set MDB_TXN_ERROR on failure.
8 years ago
Hallvard Furuseth
a70200f15f
Fix mdb_env_open() with MDB_VL32
...
Init me_rpmutex independently of MDB_NOLOCK.
Plug leaks on mdb_env_open() failure.
Tweak mdb_env_close0() to handle the rearranged mdb_env_open().
8 years ago
Hallvard Furuseth
f3ab0d23a4
Factor out refreshing sub-page pointers
8 years ago
Howard Chu
fa83b25ec5
More for ITS#8406
...
xcursor fixup depends on init state
8 years ago
Howard Chu
e58db7d556
More for ITS#8406
...
Revert excess cursor fixup
8 years ago
Hallvard Furuseth
f7e85d7804
Only set me_mfd if needed. Drop unused read access.
8 years ago
Hallvard Furuseth
77845345ca
ITS#8505 Clarify fork() caveat, mdb_env_get_fd(), flock->fcntl.
8 years ago
Hallvard Furuseth
6355dade31
ITS#8505 Protect parent from fork()-pthread_exit()
8 years ago
Hallvard Furuseth
04acac634a
ITS#8505 Set FD_CLOEXEC for me_mfd,env_copy as well
8 years ago
Hallvard Furuseth
15666878af
Move opening files to mdb_fopen()
...
No change in functionality.
8 years ago
Hallvard Furuseth
cdc3f9cc2d
Factor filename handling out to mdb_fname_*()
...
No change in functionality, except needs less mallocing.
8 years ago
Hallvard Furuseth
67fb3c746a
ITS#7992 Tighter utf8_to_utf16(), fix errcodes
...
The 0xFFFD check seems due to misleading MultiByteToWideChar() doc.
Bad UTF-8 gives 0xFFFD in the output string, not the return value.
8 years ago
Hallvard Furuseth
d87ee20e0b
Clean up strange fcntl result check
...
...and check !MDB_CLOEXEC in an 'if' rather than '#if'
to match its non-zero usage.
8 years ago
Hallvard Furuseth
3dd2d207d7
Drop spurious Errcode() call
8 years ago
Hallvard Furuseth
cdcf9da600
ITS#7682 F_NOCACHE: Allow error, skip any O_DIRECT
...
We can run without F_NOCACHE if it fails. And we do not know
what combining it with O_DIRECT means, if a system has both.
8 years ago
Hallvard Furuseth
26e226b2a8
Silence warning for initializer "mdb_copy my = {0}"
...
1st struct member was not a scalar.
8 years ago
Howard Chu
45a88275d2
ITS#8489 reset cursor EOF flag in cursor_set
...
It usually gets done anyway, but one of the fastpath shortcuts
bypassed this step.
8 years ago
Hallvard Furuseth
da4443a9b3
Clean up MDB_USE_ROBUST #defines
...
Make explicit and default nonzero equivalent. Parenthesize.
8 years ago
Hallvard Furuseth
36d374ba9e
Fix mdb_page_list() message
8 years ago
Howard Chu
c6510147ce
ITS#8481 make shared lib suffix overridable
8 years ago
Howard Chu
7e2290c52b
MDB_VL32 plug rpage leak
...
mdb_cursor_set wasn't unref'ing as intended.
8 years ago
Hallvard Furuseth
77d522d151
Comment MDB_page
8 years ago
Hallvard Furuseth
8670805b4f
Doc fixes: VALID_FLAGS, mm_last_pg, mt_loose_count
8 years ago
Hallvard Furuseth
58b0ce50b3
mdb_size comments
8 years ago
Hallvard Furuseth
4d47e89f4d
MDB_VL32: Switch to mdb_size_t formats PRIu64 & co
...
Drop macro Y=MDB_FMT_Y, add Yu/Yd=MDB_PRIy(). Replace
Y"d..." -> Yd"...", Y"u..." -> Yu"..." / MDB_SCNy(u)"...".
8 years ago
Hallvard Furuseth
65d9791ada
Refactor mdb_page_get()
8 years ago
Hallvard Furuseth
a43fcad8c6
MDB_VL32: Match mdb_size_t type with format modifier.
...
When using format modifier "ll" or "I64", use the matching
type unsigned <long long / __int64> rather than uint64_t.
8 years ago
Hallvard Furuseth
f25d716513
Fix MDB_INTEGERKEY doc of integer types
8 years ago
Hallvard Furuseth
0842f998ee
Use mdb_size_t for line numbers in mdb_load
...
This matches the mdb_size_t entry counts.
8 years ago
Hallvard Furuseth
12ad38d67f
Fix size_t/formats -> mdb_size_t for MDB_VL32
8 years ago
Hallvard Furuseth
dff8bafb36
Factor some MDB_VL32-related '#if's out to macros
...
Add MC_OVPG() + MC_SET_OVPG(), NEED_CMP_CLONG(), MDB_CURSOR_UNREF().
8 years ago
Hallvard Furuseth
32764bcb52
Factor out MDB_SIZE_MAX, MDB_FMT_Y, MDB_FMT_Z
8 years ago
Hallvard Furuseth
84610e65da
Add error MDB_PROBLEM, replace some MDB_CORRUPTED
...
When problem is most likely in txn, not on disk.
8 years ago
Hallvard Furuseth
291c69ddbd
ITS#8209 Tweak previous fixes
...
Some _aligned_malloc() doc seems to think arg NULL = user error.
Don't know if posix_memalign() pointer is defined after failure.
9 years ago
Hallvard Furuseth
5ea12b0be8
ITS#8209 MDB_CP_COMPACT: Handle empty or broken DB
...
Preserve DB flags (use metapage#1) when main DB is empty.
Fail if metapage root != actual root in output file.
9 years ago
Hallvard Furuseth
eb7bbed967
ITS#8209 MDB_CP_COMPACT fixes
...
Handle errors. Fix cond_wait condition so mc_new
is the sole control var. Drop specious cond_waits.
Do not look at 'mo' while copythr writes it.
9 years ago
Hallvard Furuseth
c4c7833d24
mdb_env_setup_locks: Plug mutexattr leak on error
9 years ago
Hallvard Furuseth
53a0fdf1be
Init "locked" flag for SysV semaphores
9 years ago
Howard Chu
c367c1f696
ITS#8339 Solaris 10/11 robust mutex fixes
...
Check for PTHREAD_MUTEX_ROBUST_NP definition (this doesn't work
on Linux/glibc because they used an enum). Zero out mutex before
initing.
9 years ago