summaryrefslogtreecommitdiff
path: root/mysys/my_thr_init.c
diff options
context:
space:
mode:
authorunknown <davi@mysql.com/endora.local>2008-02-26 12:03:59 -0300
committerunknown <davi@mysql.com/endora.local>2008-02-26 12:03:59 -0300
commitbf9bb656a65c18eb15ee475e5f58412c859ef76a (patch)
tree9599643f40672ed859b5baaf1e060a7b356498ab /mysys/my_thr_init.c
parentfd317533878a4a6537a4ad93c65d9d6b7305dfd1 (diff)
downloadmariadb-git-bf9bb656a65c18eb15ee475e5f58412c859ef76a.tar.gz
Bug#34424 query_cache_debug.test leads to valgrind warnings
Bug#34678 @@debug variable's incremental mode The problem is that the per-thread debugging settings stack wasn't being deallocated before the thread termination, leaking the stack memory. The chosen solution is to push a new state if the current is set to the initial settings and pop it (free) once the thread finishes. dbug/dbug.c: Move dbug parser out of _db_set_ to a separate function and make _db_set_ push a new stack if the corrent one is set to the initial settings. dbug/user.r: Update DBUG_SET description. mysql-test/t/disabled.def: Re-enable test case which triggered the leak. mysys/my_thr_init.c: Pop a pushed state, nop if stack is empty. sql/set_var.cc: Handle incremental debug settings. mysql-test/r/variables_debug.result: Add new test case result for Bug#34678 mysql-test/t/variables_debug.test: Add new test case for Bug#34678
Diffstat (limited to 'mysys/my_thr_init.c')
-rw-r--r--mysys/my_thr_init.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c
index 1ba6e5ac92d..933674fa007 100644
--- a/mysys/my_thr_init.c
+++ b/mysys/my_thr_init.c
@@ -332,6 +332,7 @@ void my_thread_end(void)
/* tmp->dbug is allocated inside DBUG library */
if (tmp->dbug)
{
+ DBUG_POP();
free(tmp->dbug);
tmp->dbug=0;
}