summaryrefslogtreecommitdiff
path: root/sql/event_data_objects.cc
diff options
context:
space:
mode:
authorunknown <kostja@vajra.(none)>2007-05-16 15:35:18 +0400
committerunknown <kostja@vajra.(none)>2007-05-16 15:35:18 +0400
commit7c472868af278cf5725d3a3f94c7f6c905386c06 (patch)
tree084c6a6a16209ddc42119d2e6e4168aaa827c406 /sql/event_data_objects.cc
parentc51b89052701b96ef575854f5fd94c6ccc7b2869 (diff)
downloadmariadb-git-7c472868af278cf5725d3a3f94c7f6c905386c06.tar.gz
Make a stab at events_bugs.test failure under valgrind (no
open bug report, reproduced in the runtime team tree). sql/event_data_objects.cc: Make a stub at fixing a race in event_bugs.test under valgrind: read of uninitialized byte in SHOW PROCESSLIST from an event thread.
Diffstat (limited to 'sql/event_data_objects.cc')
-rw-r--r--sql/event_data_objects.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/sql/event_data_objects.cc b/sql/event_data_objects.cc
index 4b788a8f7d8..41f2f89db24 100644
--- a/sql/event_data_objects.cc
+++ b/sql/event_data_objects.cc
@@ -1913,6 +1913,11 @@ Event_job_data::execute(THD *thd, bool drop)
thd->variables.sql_mode= sql_mode;
thd->variables.time_zone= time_zone;
+ /*
+ Peculiar initialization order is a clutch to avoid races in SHOW
+ PROCESSLIST which reads thd->{query/query_length} without a mutex.
+ */
+ thd->query_length= 0;
thd->query= sp_sql.c_ptr_safe();
thd->query_length= sp_sql.length();
@@ -1968,6 +1973,11 @@ end:
ret= 1;
else
{
+ /*
+ Peculiar initialization order is a clutch to avoid races in SHOW
+ PROCESSLIST which reads thd->{query/query_length} without a mutex.
+ */
+ thd->query_length= 0;
thd->query= sp_sql.c_ptr_safe();
thd->query_length= sp_sql.length();
if (Events::drop_event(thd, dbname, name, FALSE))