Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.6.4
-
All
Description
Hi, developers, thank you for your checking. It seems the lock thd->ctrl_mutex is not correctly released if it goes to the error, so there is a missing unlock in the *error *branch
pthread_mutex_lock(&thd->ctrl_mutex);
|
|
if (pthread_create(&thd->id, NULL, compress_worker_thread_func, |
thd)) {
|
msg("compress: pthread_create() failed: " |
"errno = %d", errno); |
goto err; |
}
|
}
|
|
/* Wait for the threads to start */ |
for (i = 0; i < n; i++) { |
comp_thread_ctxt_t *thd = threads + i;
|
|
while (thd->started == FALSE) |
pthread_cond_wait(&thd->ctrl_cond, &thd->ctrl_mutex);
|
pthread_mutex_unlock(&thd->ctrl_mutex);
|
}
|
|
return threads; |
|
err:
|
my_free(threads);
|
return NULL; |
}
|
Ryan, did you want to try to submit a code change?
https://mariadb.org/get-involved/getting-started-for-developers/get-code-build-test/
https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request