Skip to content

Commit

Permalink
Import wiredtiger: e7d742daa2d2500cd94a7061f754a1d0c4aa963c from bran…
Browse files Browse the repository at this point in the history
…ch mongodb-4.2

ref: 9ee7cc6956..e7d742daa2
for: 4.1.4

WT-3995       Enhance timestamp abort to accept more number of threads
WT-4164       Ensure test/format configures a reasonably sized cache
WT-4224       Add statistics for prepared transactions
WT-4315       In rollback_to_stable, only check timestamp order if enforced
WT-4328       Use an internal session handle for schema operations in a txn
WT-4342       Set session max on all configuration strings in timestamp_abort test
WT-4347       Limit the threads spawned by timestamp_abort with default config
WT-4348       Create all tables before spawning threads in random_directio test
  • Loading branch information
lukech committed Oct 4, 2018
1 parent bf4a5f8 commit e80b323
Show file tree
Hide file tree
Showing 22 changed files with 327 additions and 169 deletions.
3 changes: 3 additions & 0 deletions src/third_party/wiredtiger/dist/stat_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -526,6 +526,9 @@ def __init__(self, name, desc, flags=''):
TxnStat('txn_prepare_active', 'prepared transactions currently active'),
TxnStat('txn_prepare_commit', 'prepared transactions committed'),
TxnStat('txn_prepare_rollback', 'prepared transactions rolled back'),
TxnStat('txn_prepared_updates_count', 'Number of prepared updates'),
TxnStat('txn_prepared_updates_lookaside_inserts', 'Number of prepared updates added to cache overflow'),
TxnStat('txn_prepared_updates_resolved', 'Number of prepared updates resolved'),
TxnStat('txn_query_ts', 'query timestamp calls'),
TxnStat('txn_read_queue_empty', 'read timestamp queue insert to empty'),
TxnStat('txn_read_queue_head', 'read timestamp queue inserts to head'),
Expand Down
2 changes: 1 addition & 1 deletion src/third_party/wiredtiger/import.data
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"commit": "9ee7cc6956dda425f3522f6d32ec55c67e9c49f8",
"commit": "e7d742daa2d2500cd94a7061f754a1d0c4aa963c",
"github": "wiredtiger/wiredtiger.git",
"vendor": "wiredtiger",
"branch": "mongodb-4.2"
Expand Down
32 changes: 17 additions & 15 deletions src/third_party/wiredtiger/src/btree/bt_debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -542,11 +542,13 @@ __debug_dsk_cell(WT_DBG *ds, const WT_PAGE_HEADER *dsk)
* Pretty-print information about a page.
*/
static char *
__debug_tree_shape_info(WT_PAGE *page, char *buf, size_t len)
__debug_tree_shape_info(WT_REF *ref, char *buf, size_t len)
{
WT_PAGE *page;
uint64_t v;
const char *unit;

page = ref->page;
v = page->memory_footprint;

if (v > WT_GIGABYTE) {
Expand All @@ -564,7 +566,7 @@ __debug_tree_shape_info(WT_PAGE *page, char *buf, size_t len)

(void)__wt_snprintf(buf, len, "(%p, %" PRIu64
"%s, evict gen %" PRIu64 ", create gen %" PRIu64 ")",
(void *)page, v, unit,
(void *)ref, v, unit,
page->evict_pass_gen, page->cache_create_gen);
return (buf);
}
Expand All @@ -574,27 +576,27 @@ __debug_tree_shape_info(WT_PAGE *page, char *buf, size_t len)
* Dump information about the current page and descend.
*/
static int
__debug_tree_shape_worker(WT_DBG *ds, WT_PAGE *page, int level)
__debug_tree_shape_worker(WT_DBG *ds, WT_REF *ref, int level)
{
WT_REF *ref;
WT_REF *walk;
WT_SESSION_IMPL *session;
char buf[128];

session = ds->session;

if (WT_PAGE_IS_INTERNAL(page)) {
if (WT_PAGE_IS_INTERNAL(ref->page)) {
WT_RET(ds->f(ds, "%*s" "I" "%d %s\n",
level * 3, " ", level,
__debug_tree_shape_info(page, buf, sizeof(buf))));
WT_INTL_FOREACH_BEGIN(session, page, ref) {
if (ref->state == WT_REF_MEM)
__debug_tree_shape_info(ref, buf, sizeof(buf))));
WT_INTL_FOREACH_BEGIN(session, ref->page, walk) {
if (walk->state == WT_REF_MEM)
WT_RET(__debug_tree_shape_worker(
ds, ref->page, level + 1));
ds, walk, level + 1));
} WT_INTL_FOREACH_END;
} else
WT_RET(ds->f(ds, "%*s" "L" " %s\n",
level * 3, " ",
__debug_tree_shape_info(page, buf, sizeof(buf))));
__debug_tree_shape_info(ref, buf, sizeof(buf))));
return (0);
}

Expand All @@ -604,7 +606,7 @@ __debug_tree_shape_worker(WT_DBG *ds, WT_PAGE *page, int level)
*/
int
__wt_debug_tree_shape(
WT_SESSION_IMPL *session, WT_PAGE *page, const char *ofile)
WT_SESSION_IMPL *session, WT_REF *ref, const char *ofile)
{
WT_DBG *ds, _ds;
WT_DECL_RET;
Expand All @@ -614,12 +616,12 @@ __wt_debug_tree_shape(
ds = &_ds;
WT_RET(__debug_config(session, ds, ofile));

/* A NULL page starts at the top of the tree -- it's a convenience. */
if (page == NULL)
page = S2BT(session)->root.page;
/* A NULL WT_REF starts at the top of the tree -- it's a convenience. */
if (ref == NULL)
ref = &S2BT(session)->root;

WT_WITH_PAGE_INDEX(session,
ret = __debug_tree_shape_worker(ds, page, 1));
ret = __debug_tree_shape_worker(ds, ref, 1));

WT_TRET(__debug_wrapup(ds));
return (ret);
Expand Down
12 changes: 9 additions & 3 deletions src/third_party/wiredtiger/src/cache/cache_las.c
Original file line number Diff line number Diff line change
Expand Up @@ -622,7 +622,7 @@ __wt_las_insert_block(WT_CURSOR *cursor,
WT_SESSION_IMPL *session;
WT_TXN_ISOLATION saved_isolation;
WT_UPDATE *upd;
uint64_t insert_cnt;
uint64_t insert_cnt, prepared_insert_cnt;
uint64_t las_counter, las_pageid;
uint32_t btree_id, i, slot;
uint8_t *p;
Expand All @@ -632,7 +632,7 @@ __wt_las_insert_block(WT_CURSOR *cursor,
conn = S2C(session);
WT_CLEAR(las_timestamp);
WT_CLEAR(las_value);
insert_cnt = 0;
insert_cnt = prepared_insert_cnt = 0;
btree_id = btree->id;
local_txn = false;

Expand Down Expand Up @@ -763,6 +763,8 @@ __wt_las_insert_block(WT_CURSOR *cursor,
*/
WT_ERR(cursor->update(cursor));
++insert_cnt;
if (upd->prepare_state == WT_PREPARE_INPROGRESS)
++prepared_insert_cnt;
} while ((upd = upd->next) != NULL);
}

Expand All @@ -774,9 +776,13 @@ __wt_las_insert_block(WT_CURSOR *cursor,
WT_TRET(__wt_txn_rollback(session, NULL));

/* Adjust the entry count. */
if (ret == 0)
if (ret == 0) {
(void)__wt_atomic_add64(
&conn->cache->las_insert_count, insert_cnt);
WT_STAT_CONN_INCRV(session,
txn_prepared_updates_lookaside_inserts,
prepared_insert_cnt);
}
}

__las_restore_isolation(session, saved_isolation);
Expand Down
4 changes: 3 additions & 1 deletion src/third_party/wiredtiger/src/include/extern.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ extern int __wt_debug_addr(WT_SESSION_IMPL *session, const uint8_t *addr, size_t
extern int __wt_debug_offset_blind(WT_SESSION_IMPL *session, wt_off_t offset, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_debug_offset(WT_SESSION_IMPL *session, wt_off_t offset, uint32_t size, uint32_t checksum, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_debug_disk(WT_SESSION_IMPL *session, const WT_PAGE_HEADER *dsk, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_debug_tree_shape(WT_SESSION_IMPL *session, WT_PAGE *page, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_debug_tree_shape(WT_SESSION_IMPL *session, WT_REF *ref, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_debug_tree_all(void *session_arg, WT_BTREE *btree, WT_REF *ref, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_debug_tree(void *session_arg, WT_BTREE *btree, WT_REF *ref, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_debug_page(void *session_arg, WT_BTREE *btree, WT_REF *ref, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
Expand Down Expand Up @@ -644,6 +644,8 @@ extern int __wt_range_truncate(WT_CURSOR *start, WT_CURSOR *stop) WT_GCC_FUNC_DE
extern int __wt_schema_range_truncate(WT_SESSION_IMPL *session, WT_CURSOR *start, WT_CURSOR *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_schema_backup_check(WT_SESSION_IMPL *session, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern WT_DATA_SOURCE *__wt_schema_get_source(WT_SESSION_IMPL *session, const char *name);
extern int __wt_schema_internal_session(WT_SESSION_IMPL *session, WT_SESSION_IMPL **int_sessionp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_schema_session_release(WT_SESSION_IMPL *session, WT_SESSION_IMPL *int_session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_str_name_check(WT_SESSION_IMPL *session, const char *str) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_name_check(WT_SESSION_IMPL *session, const char *str, size_t len) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_exclusive_handle_operation(WT_SESSION_IMPL *session, const char *uri, int (*file_func)(WT_SESSION_IMPL *, const char *[]), const char *cfg[], uint32_t open_flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
Expand Down
3 changes: 3 additions & 0 deletions src/third_party/wiredtiger/src/include/stat.h
Original file line number Diff line number Diff line change
Expand Up @@ -624,6 +624,9 @@ struct __wt_connection_stats {
int64_t page_sleep;
int64_t page_del_rollback_blocked;
int64_t child_modify_blocked_page;
int64_t txn_prepared_updates_count;
int64_t txn_prepared_updates_lookaside_inserts;
int64_t txn_prepared_updates_resolved;
int64_t txn_commit_queue_walked;
int64_t txn_commit_queue_empty;
int64_t txn_commit_queue_head;
Expand Down
1 change: 1 addition & 0 deletions src/third_party/wiredtiger/src/include/txn.i
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,7 @@ __wt_txn_resolve_prepared_op(
#endif

op->u.op_upd = upd;
WT_STAT_CONN_INCR(session, txn_prepared_updates_resolved);

for (; upd != NULL; upd = upd->next) {
if (upd->txnid != txn->id)
Expand Down
108 changes: 57 additions & 51 deletions src/third_party/wiredtiger/src/include/wiredtiger.in
Original file line number Diff line number Diff line change
Expand Up @@ -5652,123 +5652,129 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1309
/*! thread-yield: page reconciliation yielded due to child modification */
#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1310
/*! transaction: Number of prepared updates */
#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COUNT 1311
/*! transaction: Number of prepared updates added to cache overflow */
#define WT_STAT_CONN_TXN_PREPARED_UPDATES_LOOKASIDE_INSERTS 1312
/*! transaction: Number of prepared updates resolved */
#define WT_STAT_CONN_TXN_PREPARED_UPDATES_RESOLVED 1313
/*! transaction: commit timestamp queue entries walked */
#define WT_STAT_CONN_TXN_COMMIT_QUEUE_WALKED 1311
#define WT_STAT_CONN_TXN_COMMIT_QUEUE_WALKED 1314
/*! transaction: commit timestamp queue insert to empty */
#define WT_STAT_CONN_TXN_COMMIT_QUEUE_EMPTY 1312
#define WT_STAT_CONN_TXN_COMMIT_QUEUE_EMPTY 1315
/*! transaction: commit timestamp queue inserts to head */
#define WT_STAT_CONN_TXN_COMMIT_QUEUE_HEAD 1313
#define WT_STAT_CONN_TXN_COMMIT_QUEUE_HEAD 1316
/*! transaction: commit timestamp queue inserts total */
#define WT_STAT_CONN_TXN_COMMIT_QUEUE_INSERTS 1314
#define WT_STAT_CONN_TXN_COMMIT_QUEUE_INSERTS 1317
/*! transaction: commit timestamp queue length */
#define WT_STAT_CONN_TXN_COMMIT_QUEUE_LEN 1315
#define WT_STAT_CONN_TXN_COMMIT_QUEUE_LEN 1318
/*! transaction: number of named snapshots created */
#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1316
#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1319
/*! transaction: number of named snapshots dropped */
#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1317
#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1320
/*! transaction: prepared transactions */
#define WT_STAT_CONN_TXN_PREPARE 1318
#define WT_STAT_CONN_TXN_PREPARE 1321
/*! transaction: prepared transactions committed */
#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1319
#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1322
/*! transaction: prepared transactions currently active */
#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1320
#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1323
/*! transaction: prepared transactions rolled back */
#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1321
#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1324
/*! transaction: query timestamp calls */
#define WT_STAT_CONN_TXN_QUERY_TS 1322
#define WT_STAT_CONN_TXN_QUERY_TS 1325
/*! transaction: read timestamp queue entries walked */
#define WT_STAT_CONN_TXN_READ_QUEUE_WALKED 1323
#define WT_STAT_CONN_TXN_READ_QUEUE_WALKED 1326
/*! transaction: read timestamp queue insert to empty */
#define WT_STAT_CONN_TXN_READ_QUEUE_EMPTY 1324
#define WT_STAT_CONN_TXN_READ_QUEUE_EMPTY 1327
/*! transaction: read timestamp queue inserts to head */
#define WT_STAT_CONN_TXN_READ_QUEUE_HEAD 1325
#define WT_STAT_CONN_TXN_READ_QUEUE_HEAD 1328
/*! transaction: read timestamp queue inserts total */
#define WT_STAT_CONN_TXN_READ_QUEUE_INSERTS 1326
#define WT_STAT_CONN_TXN_READ_QUEUE_INSERTS 1329
/*! transaction: read timestamp queue length */
#define WT_STAT_CONN_TXN_READ_QUEUE_LEN 1327
#define WT_STAT_CONN_TXN_READ_QUEUE_LEN 1330
/*! transaction: rollback to stable calls */
#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE 1328
#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE 1331
/*! transaction: rollback to stable updates aborted */
#define WT_STAT_CONN_TXN_ROLLBACK_UPD_ABORTED 1329
#define WT_STAT_CONN_TXN_ROLLBACK_UPD_ABORTED 1332
/*! transaction: rollback to stable updates removed from cache overflow */
#define WT_STAT_CONN_TXN_ROLLBACK_LAS_REMOVED 1330
#define WT_STAT_CONN_TXN_ROLLBACK_LAS_REMOVED 1333
/*! transaction: set timestamp calls */
#define WT_STAT_CONN_TXN_SET_TS 1331
#define WT_STAT_CONN_TXN_SET_TS 1334
/*! transaction: set timestamp commit calls */
#define WT_STAT_CONN_TXN_SET_TS_COMMIT 1332
#define WT_STAT_CONN_TXN_SET_TS_COMMIT 1335
/*! transaction: set timestamp commit updates */
#define WT_STAT_CONN_TXN_SET_TS_COMMIT_UPD 1333
#define WT_STAT_CONN_TXN_SET_TS_COMMIT_UPD 1336
/*! transaction: set timestamp oldest calls */
#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1334
#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1337
/*! transaction: set timestamp oldest updates */
#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1335
#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1338
/*! transaction: set timestamp stable calls */
#define WT_STAT_CONN_TXN_SET_TS_STABLE 1336
#define WT_STAT_CONN_TXN_SET_TS_STABLE 1339
/*! transaction: set timestamp stable updates */
#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1337
#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1340
/*! transaction: transaction begins */
#define WT_STAT_CONN_TXN_BEGIN 1338
#define WT_STAT_CONN_TXN_BEGIN 1341
/*! transaction: transaction checkpoint currently running */
#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1339
#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1342
/*! transaction: transaction checkpoint generation */
#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1340
#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1343
/*! transaction: transaction checkpoint max time (msecs) */
#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1341
#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1344
/*! transaction: transaction checkpoint min time (msecs) */
#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1342
#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1345
/*! transaction: transaction checkpoint most recent time (msecs) */
#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1343
#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1346
/*! transaction: transaction checkpoint scrub dirty target */
#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1344
#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1347
/*! transaction: transaction checkpoint scrub time (msecs) */
#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1345
#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1348
/*! transaction: transaction checkpoint total time (msecs) */
#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1346
#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1349
/*! transaction: transaction checkpoints */
#define WT_STAT_CONN_TXN_CHECKPOINT 1347
#define WT_STAT_CONN_TXN_CHECKPOINT 1350
/*!
* transaction: transaction checkpoints skipped because database was
* clean
*/
#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1348
#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1351
/*! transaction: transaction failures due to cache overflow */
#define WT_STAT_CONN_TXN_FAIL_CACHE 1349
#define WT_STAT_CONN_TXN_FAIL_CACHE 1352
/*!
* transaction: transaction fsync calls for checkpoint after allocating
* the transaction ID
*/
#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1350
#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1353
/*!
* transaction: transaction fsync duration for checkpoint after
* allocating the transaction ID (usecs)
*/
#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1351
#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1354
/*! transaction: transaction range of IDs currently pinned */
#define WT_STAT_CONN_TXN_PINNED_RANGE 1352
#define WT_STAT_CONN_TXN_PINNED_RANGE 1355
/*! transaction: transaction range of IDs currently pinned by a checkpoint */
#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1353
#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1356
/*!
* transaction: transaction range of IDs currently pinned by named
* snapshots
*/
#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1354
#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1357
/*! transaction: transaction range of timestamps currently pinned */
#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1355
#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1358
/*! transaction: transaction range of timestamps pinned by a checkpoint */
#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1356
#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1359
/*!
* transaction: transaction range of timestamps pinned by the oldest
* timestamp
*/
#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1357
#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1360
/*! transaction: transaction sync calls */
#define WT_STAT_CONN_TXN_SYNC 1358
#define WT_STAT_CONN_TXN_SYNC 1361
/*! transaction: transactions committed */
#define WT_STAT_CONN_TXN_COMMIT 1359
#define WT_STAT_CONN_TXN_COMMIT 1362
/*! transaction: transactions rolled back */
#define WT_STAT_CONN_TXN_ROLLBACK 1360
#define WT_STAT_CONN_TXN_ROLLBACK 1363
/*! transaction: update conflicts */
#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1361
#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1364

/*!
* @}
Expand Down
9 changes: 6 additions & 3 deletions src/third_party/wiredtiger/src/schema/schema_alter.c
Original file line number Diff line number Diff line change
Expand Up @@ -250,9 +250,12 @@ __wt_schema_alter(WT_SESSION_IMPL *session,
const char *uri, const char *newcfg[])
{
WT_DECL_RET;
WT_SESSION_IMPL *int_session;

WT_RET(__wt_meta_track_on(session));
ret = __schema_alter(session, uri, newcfg);
WT_TRET(__wt_meta_track_off(session, true, ret != 0));
WT_RET(__wt_schema_internal_session(session, &int_session));
WT_ERR(__wt_meta_track_on(int_session));
ret = __schema_alter(int_session, uri, newcfg);
WT_TRET(__wt_meta_track_off(int_session, true, ret != 0));
err: WT_TRET(__wt_schema_session_release(session, int_session));
return (ret);
}
Loading

0 comments on commit e80b323

Please sign in to comment.