From 08352afcca24bfc145240a0fac9d28b978ab77f3 Mon Sep 17 00:00:00 2001 From: Ramon Fernandez Date: Thu, 3 Nov 2016 18:10:07 -0400 Subject: Import wiredtiger: b1aab8db7d80e165d5da80aab0c0403772450997 from branch mongodb-3.0 ref: a5c67bd..b1aab8db7d for: 3.0.14 SERVER-26889 Incorrect memory access on 3.0.13 triggers segmentation fault WT-2711 Change statistics log configuration options --- src/third_party/wiredtiger/dist/s_define.list | 2 +- src/third_party/wiredtiger/dist/s_string.ok | 2 ++ src/third_party/wiredtiger/src/btree/bt_split.c | 1 - src/third_party/wiredtiger/src/conn/conn_stat.c | 5 +++-- src/third_party/wiredtiger/src/include/txn.i | 6 +++--- src/third_party/wiredtiger/test/suite/test_stat_log01.py | 7 ------- 6 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/third_party/wiredtiger/dist/s_define.list b/src/third_party/wiredtiger/dist/s_define.list index 1ad29fe21ba..690840e6b3e 100644 --- a/src/third_party/wiredtiger/dist/s_define.list +++ b/src/third_party/wiredtiger/dist/s_define.list @@ -3,6 +3,7 @@ ALIGN_CHECK API_CALL API_CALL_NOCONF API_SESSION_INIT +FLD64_ISSET FLD_MASK LF_MASK LLONG_MAX @@ -31,7 +32,6 @@ WT_STAT_ATOMIC_DECR WT_STAT_ATOMIC_DECRV WT_STAT_ATOMIC_INCR WT_STAT_ATOMIC_INCRV -WT_SESSION_LOCKED_CHECKPOINT WT_STAT_DECR WT_STAT_DECRV WT_STAT_FAST_ATOMIC_DECR diff --git a/src/third_party/wiredtiger/dist/s_string.ok b/src/third_party/wiredtiger/dist/s_string.ok index 4dd42826b55..6b2ed50701d 100644 --- a/src/third_party/wiredtiger/dist/s_string.ok +++ b/src/third_party/wiredtiger/dist/s_string.ok @@ -860,6 +860,7 @@ nowrite np nr nset +nsnap nthread nul nuls @@ -1060,6 +1061,7 @@ tdrop tdump tdumpfile tempty +testutil th thazard tid diff --git a/src/third_party/wiredtiger/src/btree/bt_split.c b/src/third_party/wiredtiger/src/btree/bt_split.c index 28fcb60e95d..beb6774679d 100644 --- a/src/third_party/wiredtiger/src/btree/bt_split.c +++ b/src/third_party/wiredtiger/src/btree/bt_split.c @@ -308,7 +308,6 @@ __split_ref_deepen_move(WT_SESSION_IMPL *session, addr->size = (uint8_t)unpack.size; addr->type = unpack.raw == WT_CELL_ADDR_INT ? WT_ADDR_INT : WT_ADDR_LEAF; - ref->addr = addr; if (!__wt_atomic_cas_ptr(&ref->addr, ref_addr, addr)) { __wt_free(session, addr->addr); __wt_free(session, addr); diff --git a/src/third_party/wiredtiger/src/conn/conn_stat.c b/src/third_party/wiredtiger/src/conn/conn_stat.c index 425d824e756..d39d55810a8 100644 --- a/src/third_party/wiredtiger/src/conn/conn_stat.c +++ b/src/third_party/wiredtiger/src/conn/conn_stat.c @@ -117,8 +117,9 @@ __statlog_config(WT_SESSION_IMPL *session, const char **cfg, bool *runp) sources = NULL; } - WT_ERR(__wt_config_gets(session, cfg, "statistics_log.path", &cval)); - WT_ERR(__wt_nfilename(session, cval.str, cval.len, &conn->stat_path)); + __wt_free(session, conn->stat_path); + WT_ERR(__wt_filename( + session, "WiredTigerStat.%d.%H", &conn->stat_path)); WT_ERR(__wt_config_gets( session, cfg, "statistics_log.timestamp", &cval)); diff --git a/src/third_party/wiredtiger/src/include/txn.i b/src/third_party/wiredtiger/src/include/txn.i index 4cf6653d988..7ded50ad9da 100644 --- a/src/third_party/wiredtiger/src/include/txn.i +++ b/src/third_party/wiredtiger/src/include/txn.i @@ -458,9 +458,9 @@ __wt_txn_cursor_op(WT_SESSION_IMPL *session) * positioned on a value, it can't be freed. */ if (txn->isolation == WT_ISO_READ_UNCOMMITTED) { - if (txn_state->snap_min == WT_TXN_NONE) - txn_state->snap_min = txn_global->last_running; - } else if (!F_ISSET(txn, WT_TXN_HAS_SNAPSHOT)) + if (txn_state->snap_min == WT_TXN_NONE) + txn_state->snap_min = txn_global->last_running; + } else if (!F_ISSET(txn, WT_TXN_HAS_SNAPSHOT)) __wt_txn_get_snapshot(session); } diff --git a/src/third_party/wiredtiger/test/suite/test_stat_log01.py b/src/third_party/wiredtiger/test/suite/test_stat_log01.py index b7e76e9efdd..61e0a96ff12 100644 --- a/src/third_party/wiredtiger/test/suite/test_stat_log01.py +++ b/src/third_party/wiredtiger/test/suite/test_stat_log01.py @@ -53,13 +53,6 @@ class test_stat_log01(wttest.WiredTigerTestCase): time.sleep(2) self.check_stats_file("WiredTigerStat") - def test_stats_log_name(self): - self.conn = wiredtiger.wiredtiger_open( - None, "create,statistics=(fast),statistics_log=(wait=1,path=foo)") - # Wait for the default interval, to ensure stats have been written. - time.sleep(2) - self.check_stats_file("foo") - def test_stats_log_on_close_and_log(self): self.conn = wiredtiger.wiredtiger_open(None, "create,statistics=(fast),statistics_log=(on_close=true,wait=1)") -- cgit v1.2.1