diff options
author | Alex Gorrod <alexander.gorrod@mongodb.com> | 2017-10-03 11:36:35 +1100 |
---|---|---|
committer | Alex Gorrod <alexander.gorrod@mongodb.com> | 2017-10-03 11:36:35 +1100 |
commit | a7d8f125b9f7db197d20800802016a671d9949c5 (patch) | |
tree | 7084f736abe44c9e57e929d2be08ec28154825de /src/third_party/wiredtiger/src/support/err.c | |
parent | a7efca41eb8b864f38239a77e2816b24c48fa899 (diff) | |
download | mongo-a7d8f125b9f7db197d20800802016a671d9949c5.tar.gz |
Import wiredtiger: 6f561957cb5606f504f9fe5a124c80386b210b1a from branch mongodb-3.6
ref: e2c927fa58..6f561957cb
for: 3.5.14
WT-3230 automatic style checking: function local variable declarations
WT-3252 Remove the reconciliation WT_BOUNDARY structure.
WT-3430 Add statistics tracking transaction ID/timestamp queue usage
WT-3437 Evaluate improvements to tuning of number of eviction workers
WT-3449 Get the Helium software running again.
WT-3457 Enhance checkpoint scrub algorithm
WT-3468 Ensure time comparison is done in thread-safe manner
WT-3474 Extend Python timestamp rollback test case
WT-3510 Add tests to check different sized timestamps and timestamps turned off
WT-3511 Add test for timestamp changing partway during a multi-step transaction
WT-3512 Add tests to catch improper usage of timestamp API
WT-3524 Test format likely to pin cache full when enabling timestamps
WT-3533 eviction handle walk can race with handle re-open
WT-3537 Split pages when nothing can be written
WT-3543 Ensure that failed checkpoints cleanup properly
WT-3555 Streamline open cursor for tables
WT-3556 remove wtstats support from WiredTiger
WT-3557 Make test/format ignore unknown keywords
WT-3561 test/recovery hangs with timestamps disabled
WT-3571 clsm_open_cursors() set incorrct chunk->count
WT-3572 format should limit runs to 6 hours.
WT-3574 timestamp abort does not need to increment with atomic op
WT-3575 ASCII statistics log printing
WT-3576 Update test_timestamp09 to use integer comparison of timestamps
WT-3578 Failed to parse oldest timestamp '0': zero not permitted
WT-3581 format: unexpected checkpoint resolution
WT-3588 test/format references freed memory.
WT-3589 replace return checks and testutil_die() pairs, with testutil_check().
WT-3590 Keep data consistent if writes fail during a clean shutdown
WT-3595 Make sure the Python example gets the right _wiredtiger.so
WT-3601 Coverity 1381365: bt_split.c:__split_ref_move() resource leak
WT-3602 compatible=(release=2.9) is insufficient for downgrading to 2.9
WT-3603 format threads always traverse the same RNG space.
WT-3605 LSM doesn't support type 'r'
WT-3606 reconfigure compatibility error paths leave system in modified state
WT-3609 Coverity 1381438: change __wt_panic to handle a NULL session argument
WT-3610 Relax commit timestamp ordering check
WT-3614 Full-build Friday lint
Diffstat (limited to 'src/third_party/wiredtiger/src/support/err.c')
-rw-r--r-- | src/third_party/wiredtiger/src/support/err.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/third_party/wiredtiger/src/support/err.c b/src/third_party/wiredtiger/src/support/err.c index a6ab328864d..ffbdba0b25b 100644 --- a/src/third_party/wiredtiger/src/support/err.c +++ b/src/third_party/wiredtiger/src/support/err.c @@ -177,10 +177,10 @@ __wt_eventv(WT_SESSION_IMPL *session, bool msg_event, int error, const char *file_name, int line_number, const char *fmt, va_list ap) WT_GCC_FUNC_ATTRIBUTE((cold)) { - WT_EVENT_HANDLER *handler; + struct timespec ts; WT_DECL_RET; + WT_EVENT_HANDLER *handler; WT_SESSION *wt_session; - struct timespec ts; size_t len, remain; const char *err, *prefix; char *p, tid[128]; @@ -512,7 +512,23 @@ __wt_panic(WT_SESSION_IMPL *session) WT_GCC_FUNC_ATTRIBUTE((cold)) WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { - F_SET(S2C(session), WT_CONN_PANIC); + WT_CONNECTION_IMPL *conn; + + /* + * !!! + * This function MUST handle a NULL WT_SESSION_IMPL handle. + */ + if (session != NULL) { + /* + * Panic the connection; if the connection has already been + * marked, just return the error. + */ + conn = S2C(session); + if (F_ISSET(conn, WT_CONN_PANIC)) + return (WT_PANIC); + F_SET(conn, WT_CONN_PANIC); + } + __wt_err(session, WT_PANIC, "the process must exit and restart"); #if defined(HAVE_DIAGNOSTIC) |