summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2023-04-29 20:39:50 +0300
committerMonty <monty@mariadb.org>2023-05-02 23:43:07 +0300
commit4f7317579e700a8ac4375b3b85e5fb1a91a1a20f (patch)
treed9c2b03da820e48fb48e478c5b657305febe4584
parent4cb0d43ac63761174a39cea892c176b9cfa6edfc (diff)
downloadmariadb-git-4f7317579e700a8ac4375b3b85e5fb1a91a1a20f.tar.gz
Fixed "Trying to lock uninitialized mutex' in parallel replication
The problem was that mutex_init() was called after the worker was put into the domain_hash, which allowed other threads to access it before mutex was initialized.
-rw-r--r--sql/rpl_parallel.cc4
1 files changed, 1 insertions, 3 deletions
diff --git a/sql/rpl_parallel.cc b/sql/rpl_parallel.cc
index 746c923ba44..96b319c5f4a 100644
--- a/sql/rpl_parallel.cc
+++ b/sql/rpl_parallel.cc
@@ -2317,9 +2317,7 @@ rpl_parallel::find(uint32 domain_id)
mysql_cond_init(key_COND_parallel_entry, &e->COND_parallel_entry, NULL);
if (my_hash_insert(&domain_hash, (uchar *)e))
{
- mysql_cond_destroy(&e->COND_parallel_entry);
- mysql_mutex_destroy(&e->LOCK_parallel_entry);
- my_free(e);
+ free_rpl_parallel_entry(e);
return NULL;
}
}