summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2021-06-09 17:19:07 +1000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-06-09 07:43:09 +0000
commitba7766f8184a756c8339ce973d19ee6dc8ceef72 (patch)
tree0ce026db66c60d3e2a099049c4cb6d780d67c6a3
parentba289562f3e97028cbff7e466f1c5e7a4d3129c5 (diff)
downloadmongo-r5.0.0-rc1.tar.gz
Import wiredtiger: ccb1fc26d51419846e3185a7c41e5c3052b5bb07 from branch mongodb-5.0r5.0.0-rc1
ref: 8a3206b68b..ccb1fc26d5 for: 5.0.0-rc1 WT-7656 Destroy tiered condvar after thread is joined
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_tiered.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index 17257232902..2a0cc3768a2 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-5.0",
- "commit": "8a3206b68bd7ef048c5805ef3396c408791d668b"
+ "commit": "ccb1fc26d51419846e3185a7c41e5c3052b5bb07"
}
diff --git a/src/third_party/wiredtiger/src/conn/conn_tiered.c b/src/third_party/wiredtiger/src/conn/conn_tiered.c
index 507e1a13fcf..a443802197c 100644
--- a/src/third_party/wiredtiger/src/conn/conn_tiered.c
+++ b/src/third_party/wiredtiger/src/conn/conn_tiered.c
@@ -658,7 +658,6 @@ __wt_tiered_storage_destroy(WT_SESSION_IMPL *session)
__wt_tiered_work_free(session, entry);
}
}
- __wt_cond_destroy(session, &conn->tiered_cond);
if (conn->tiered_session != NULL) {
WT_TRET(__wt_session_close_internal(conn->tiered_session));
conn->tiered_session = NULL;
@@ -671,8 +670,10 @@ __wt_tiered_storage_destroy(WT_SESSION_IMPL *session)
WT_TRET(__wt_thread_join(session, &conn->tiered_mgr_tid));
conn->tiered_mgr_tid_set = false;
}
+ /* Destroy all condition variables after threads have stopped. */
+ __wt_cond_destroy(session, &conn->tiered_cond);
__wt_cond_destroy(session, &conn->tiered_mgr_cond);
- /* This condition variable is last because any internal thread could be using it. */
+ /* The flush condition variable must be last because any internal thread could be using it. */
__wt_cond_destroy(session, &conn->flush_cond);
if (conn->tiered_mgr_session != NULL) {