summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2023-03-24 07:59:27 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2023-03-24 07:59:27 +0200
commit07460c31e30cc1f6b56dab6e9a54a7618e26050b (patch)
tree8c7cd78420354527a94bbf1f458d43a64398edc9
parent15ca6c5a2f3cc8a0a4bdec016af8748823004797 (diff)
downloadmariadb-git-07460c31e30cc1f6b56dab6e9a54a7618e26050b.tar.gz
MDEV-30900 Crash on macOS due to zero-initialized buf_dblwr.write_cond
buf_dblwr_t::init(), buf_dblwr_t::close(): Cover also write_cond, which was added in commit a55b951e6082a4ce9a1f2ed5ee176ea7dbbaf1f2 without explicit initialization. On GNU/Linux, PTHREAD_COND_INITIALIZER is a zero-initializer. That is why the default zero initialization happened to work on that platform.
-rw-r--r--storage/innobase/buf/buf0dblwr.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/storage/innobase/buf/buf0dblwr.cc b/storage/innobase/buf/buf0dblwr.cc
index 72b1ba5ca2b..c3f221c6f61 100644
--- a/storage/innobase/buf/buf0dblwr.cc
+++ b/storage/innobase/buf/buf0dblwr.cc
@@ -53,6 +53,7 @@ void buf_dblwr_t::init()
active_slot= &slots[0];
mysql_mutex_init(buf_dblwr_mutex_key, &mutex, nullptr);
pthread_cond_init(&cond, nullptr);
+ pthread_cond_init(&write_cond, nullptr);
}
}
@@ -468,6 +469,7 @@ void buf_dblwr_t::close()
ut_ad(!batch_running);
pthread_cond_destroy(&cond);
+ pthread_cond_destroy(&write_cond);
for (int i= 0; i < 2; i++)
{
aligned_free(slots[i].write_buf);