summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/conn/conn_dhandle.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/src/conn/conn_dhandle.c')
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_dhandle.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/third_party/wiredtiger/src/conn/conn_dhandle.c b/src/third_party/wiredtiger/src/conn/conn_dhandle.c
index 07d4cce40f5..8ff54ec2a6d 100644
--- a/src/third_party/wiredtiger/src/conn/conn_dhandle.c
+++ b/src/third_party/wiredtiger/src/conn/conn_dhandle.c
@@ -486,6 +486,7 @@ __wt_conn_btree_apply_single(WT_SESSION_IMPL *session,
bucket = hash % WT_HASH_ARRAY_SIZE;
SLIST_FOREACH(dhandle, &conn->dhhash[bucket], hashl)
if (F_ISSET(dhandle, WT_DHANDLE_OPEN) &&
+ !F_ISSET(dhandle, WT_DHANDLE_DEAD) &&
(hash == dhandle->name_hash &&
strcmp(uri, dhandle->name) == 0) &&
((dhandle->checkpoint == NULL && checkpoint == NULL) ||
@@ -500,7 +501,8 @@ __wt_conn_btree_apply_single(WT_SESSION_IMPL *session,
* still open.
*/
__wt_spin_lock(session, &dhandle->close_lock);
- if (F_ISSET(dhandle, WT_DHANDLE_OPEN)) {
+ if (F_ISSET(dhandle, WT_DHANDLE_OPEN) &&
+ !F_ISSET(dhandle, WT_DHANDLE_DEAD)) {
WT_WITH_DHANDLE(session, dhandle,
ret = func(session, cfg));
}