summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/block/block_ext.c
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2018-11-01 11:13:55 +1100
committerLuke Chen <luke.chen@mongodb.com>2018-11-01 11:13:55 +1100
commit3d60283fad14b4c62274bbd4bc61a9b606929cdb (patch)
treee7268c77b1e35d2ad5c4008f2425253e3c49faec /src/third_party/wiredtiger/src/block/block_ext.c
parent8c1de7e08de30a38f3d878118248735e6e2ea72a (diff)
downloadmongo-3d60283fad14b4c62274bbd4bc61a9b606929cdb.tar.gz
Import wiredtiger: 45b751a54fb181d1995684f7c807bbbc142d3c90 from branch mongodb-3.6
ref: 0d4bc746f2..45b751a54f for: 3.6.9 WT-3276 Add recover=salvage to recover from a corrupted log file WT-3735 Add a workgen workload that generates a lot of page splits WT-3736 Add statistics to measure contention on lookaside cursor WT-3839 Document the undefined behavior when a range truncate overlaps with inserts WT-3856 Create a test that runs recovery to different points of time with schema operations WT-3879 Disallow checkpoint from evicting metadata pages WT-3894 Timestamp queue implementation and statistics improvements WT-3917 Enhance WT_CURSOR::reserve documentation around commit visibility WT-3943 Include full error message when a python test asserts WT-3955 Add verbose option to log more messages on error returns WT-3963 Add a schema intensive abort testing WT-3968 Use compression ratio to tune page sizes WT-4010 Simplify test/format timestamp handling. WT-4024 Fix a race between split and next/prev WT-4026 Add implementation for existing file extension configuration API WT-4048 Generalize timing_stress_for_test split functionality WT-4067 Enhance LSM to not pin as much history in cache WT-4090 Low priority reads WT-4101 Don't abort the eviction server during session verify when oldest_timestamp is held back WT-4104 Fix test/format failure during comparing data content with berkeley db WT-4111 Improve checkpoint scrubbing algorithm WT-4119 Avoid restarts updating / removing during a column store scan WT-4125 Ensure that subsequent checkpoints with stable timestamp don't read too much WT-4131 Rename lookaside to cache overflow WT-4133 Coverity 1393445, 1393446 Dereference before null check WT-4134 Rework assertion that we don't discard required history WT-4136 Add a new timing stress flag that yields during tree search WT-4138 Add an option to timeout waiting for space in the cache WT-4139 rename the cursor restart statistic to match implementation WT-4140 Cursor walk limits quick eviction page selection unnecessarily. WT-4141 Enhance checkpoint with timestamps to unblock eviction sooner WT-4143 Use WiredTiger.turtle.set if it exists but WiredTiger.turtle does not WT-4144 Fix rollback_to_stable with lookaside history WT-4145 Only include the checkpoint timestamp during checkpoints WT-4146 Coverity 1393639, unused variable WT-4147 Log recovery should not ignore corruption outside of log records in a log file WT-4152 Save return value for later comparison in transaction code WT-4154 Surface the oldest read timestamp WT-4156 Add new wiredtiger_salvage top level API WT-4160 Restore performance when timestamps are not in use WT-4163 Lint WT-4168 Update upgrading documentation for 3.1.0 release WT-4169 Fix wt verify dump-pages failure WT-4171 Enabling tree walk timing stress causes excessive slowdown WT-4172 Add diagnostic hazard pointer checks in more places before freeing refs WT-4174 Do not access the lookaside file in rollback_to_stable when running with in_memory=true WT-4176 Expose a WT_SESSION.query_timestamp method WT-4177 Backup cursor open should force a log file switch WT-4178 Fixes for wt_btree_immediately_durable needed for in-memory WT-4179 Expose WiredTiger crc32c functions WT-4182 Use conservative approach for log checksum errors WT-4183 Extend verbose option to log more messages on error returns WT-4185 Don't remove all lookaside entries when reading a page WT-4186 Log recovery should detect and report corruption within log records WT-4187 Coverity: unused value complaints WT-4188 Coverity: unchecked return value complaints WT-4189 Potential infinite loop in __async_flush_wait(). WT-4191 Fix Coverity static analysis errors WT-4193 test/format snapshot-isolation search mismatch WT-4194 Improve fairness of eviction with multiple tables WT-4195 When encountering an illegal value, log the value that failed WT-4196 Make log corruption checking work regardless of the machine byte order WT-4198 Some supported MongoDB architectures don't support crc32 hardware WT-4199 Fix an incorrect report of log corruption WT-4201 Fix Coverity static analysis issues WT-4206 Fix error handling in cursor close routines WT-4207 Coverity #1394567: null pointer dereference WT-4208 tree walks can be interrupted by locked internal pages WT-4210 schema abort child process failing prematurely WT-4211 Add automated test for long running prepared transactions WT-4212 Update lookaside schema to handle prepared transactions WT-4213 Rename lock statistics that have redundant or misleading text WT-4215 Allow recovery of backup without salvage WT-4216 Use separate counters for page_swap yield and sleep WT-4218 Change eviction to evict prepared updates WT-4225 Automate a backup test that simulates volume snapshot via dd WT-4226 test/format LSM configurations can misconfigure prepare and timestamps WT-4229 Lint WT-4231 Fix ctags index of functions with attributes WT-4233 Change log corruption errors to warnings and truncate log WT-4234 Remove documentation mention of legacy tool statlog.py WT-4235 Fix workgen tracking of table state across workloads WT-4239 Don't allow checkpoints to perform insert-splits in the tree WT-4241 GNU-stack section should never be conditionally compiled out WT-4242 New log file extension Python test failure WT-4246 Change transaction update list to support indirect references WT-4248 Fix checkpoints in schema_abort for slow machines WT-4249 Attempt to discard dirty page during verify operation WT-4251 Prepared updates cannot be discarded WT-4252 Btree debug functions can leak scratch buffers on error. WT-4253 Btree debug function to do blind reads doesn't handle row-store internal pages WT-4256 Loosen check during rollback_to_stable WT-4257 Don't assume timestamps from lookaside are aligned in memory WT-4259 Restore ref to the previous state rather than MEM when eviction fails WT-4261 Test salvage of out-of-sync metadata/turtle files WT-4262 Lock deleted children in eviction of internal pages WT-4263 Use the right tree when copying a key for a lookaside write WT-4264 Compaction can race with page modifications WT-4267 fixed-length column store operations can corrupt data WT-4268 Random abort should wait until record files exist before starting timer WT-4270 Add an operation field to know where threads hang WT-4272 Increase startup timeout to 30 seconds for slow I/O systems WT-4274 Fix memory leak in wt4156_metadata_salvage test WT-4277 Make truncate in column stores more efficient WT-4281 Shorten runtime of Python test suite WT-4282 Don't transition pages from limbo to mem unless required WT-4283 Restore WT_ERROR and use a corrupt flag WT-4284 Print a verbose message in recovery on error too WT-4285 Fix wt4156_metadata_salvage Coverity/lint complaints WT-4286 Column store should skip end-of-table checks if there's an exact match WT-4288 Don't let return value of closing conn overwrite WT_TRY_SALVAGE WT-4289 Update WT_DATA_CORRUPTION to WT_TRY_SALVAGE in test_txn19.py WT-4291 Fix test_txn19.py error detection by looking for WT_ERROR WT-4292 Add call to testutil_cleanup to avoid memory leak WT-4300 Setting the update timestamp can overwrite the WT_REF.addr field WT-4301 WT_CURSOR.reserve operations can leak memory when committed WT-4305 Add a gating variable for long running prepare support WT-4306 Fix mode if metadata pages need eviction WT-4308 Insert split during sync should not free blocks WT-4321 Disable the random direct I/O test WT-4325 Add a WiredTiger-local version of the qsort(3) call
Diffstat (limited to 'src/third_party/wiredtiger/src/block/block_ext.c')
-rw-r--r--src/third_party/wiredtiger/src/block/block_ext.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/src/block/block_ext.c b/src/third_party/wiredtiger/src/block/block_ext.c
index 3995fdb4c94..a7b55985fa1 100644
--- a/src/third_party/wiredtiger/src/block/block_ext.c
+++ b/src/third_party/wiredtiger/src/block/block_ext.c
@@ -505,6 +505,9 @@ __wt_block_alloc(
WT_EXT *ext, **estack[WT_SKIP_MAXDEPTH];
WT_SIZE *szp, **sstack[WT_SKIP_MAXDEPTH];
+ /* If a sync is running, no other sessions can allocate blocks. */
+ WT_ASSERT(session, WT_SESSION_BTREE_SYNC_SAFE(session, S2BT(session)));
+
/* Assert we're maintaining the by-size skiplist. */
WT_ASSERT(session, block->live.avail.track_size != 0);
@@ -622,6 +625,9 @@ __wt_block_off_free(
{
WT_DECL_RET;
+ /* If a sync is running, no other sessions can free blocks. */
+ WT_ASSERT(session, WT_SESSION_BTREE_SYNC_SAFE(session, S2BT(session)));
+
/*
* Callers of this function are expected to have already acquired any
* locks required to manipulate the extent lists.