|
49 | 49 | * stale locks can block further operation.
|
50 | 50 | *
|
51 | 51 | * Fix: Check for stale readers periodically, using the
|
52 |
| - * #mdb_reader_check function or the \ref mdb_stat_1 "mdb_stat" tool. Or just |
53 |
| - * make all programs using the database close it; the lockfile |
54 |
| - * is always reset on first open of the environment. |
| 52 | + * #mdb_reader_check function or the \ref mdb_stat_1 "mdb_stat" tool. |
| 53 | + * Stale writers will be cleared automatically on some systems: |
| 54 | + * - Windows - automatic |
| 55 | + * - Linux, systems using POSIX mutexes with Robust option - automatic |
| 56 | + * - not on BSD, systems using POSIX semaphores. |
| 57 | + * Otherwise just make all programs using the database close it; |
| 58 | + * the lockfile is always reset on first open of the environment. |
55 | 59 | *
|
56 | 60 | * - On BSD systems or others configured with MDB_USE_POSIX_SEM,
|
57 | 61 | * startup can fail due to semaphores owned by another userid.
|
|
106 | 110 | * for stale readers is performed or the lockfile is reset,
|
107 | 111 | * since the process may not remove it from the lockfile.
|
108 | 112 | *
|
| 113 | + * This does not apply to write transactions if the system clears |
| 114 | + * stale writers, see above. |
| 115 | + * |
109 | 116 | * - If you do that anyway, do a periodic check for stale readers. Or
|
110 | 117 | * close the environment once in a while, so the lockfile can get reset.
|
111 | 118 | *
|
@@ -391,7 +398,7 @@ typedef enum MDB_cursor_op {
|
391 | 398 | #define MDB_PAGE_NOTFOUND (-30797)
|
392 | 399 | /** Located page was wrong type */
|
393 | 400 | #define MDB_CORRUPTED (-30796)
|
394 |
| - /** Update of meta page failed, probably I/O error */ |
| 401 | + /** Update of meta page failed or environment had fatal error */ |
395 | 402 | #define MDB_PANIC (-30795)
|
396 | 403 | /** Environment version mismatch */
|
397 | 404 | #define MDB_VERSION_MISMATCH (-30794)
|
|
0 commit comments