Fix for memory leaks introduced with the push of patch for bug#22740.
Original patch did not have these leaks, they were introduced later during manual applying of the patch. sql/event_data_objects.cc: Original patch was not aware of the requirement to delete lex.sphead before doing anything else (bug#21856), and that was missed when the patch was applied later. sql/event_scheduler.cc: The line was lost during manual patch applying.
This commit is contained in:
parent
59d9b52fc6
commit
6560c2aa04
@ -1811,16 +1811,21 @@ Event_job_data::compile(THD *thd, MEM_ROOT *mem_root)
|
||||
DBUG_PRINT("error", ("error during compile or thd->is_fatal_error: %d",
|
||||
thd->is_fatal_error));
|
||||
/*
|
||||
Free lex associated resources
|
||||
QQ: Do we really need all this stuff here?
|
||||
The first thing we do after parse error is freeing sp_head to
|
||||
ensure that we have restored original memroot.
|
||||
*/
|
||||
if (lex.sphead)
|
||||
{
|
||||
/* Clean up after failed stored procedure/function */
|
||||
delete lex.sphead;
|
||||
lex.sphead= NULL;
|
||||
}
|
||||
lex.unit.cleanup();
|
||||
|
||||
sql_print_error("SCHEDULER: Error during compilation of %s.%s or "
|
||||
"thd->is_fatal_error: %d",
|
||||
dbname.str, name.str, thd->is_fatal_error);
|
||||
|
||||
lex.unit.cleanup();
|
||||
delete lex.sphead;
|
||||
sphead= lex.sphead= NULL;
|
||||
ret= EVEX_COMPILE_ERROR;
|
||||
goto done;
|
||||
}
|
||||
|
@ -322,6 +322,8 @@ Event_worker_thread::run(THD *thd, Event_queue_element_for_exec *event)
|
||||
job_data->dbname.str, job_data->name.str,
|
||||
job_data->definer.str);
|
||||
else if (ret == EVEX_MICROSECOND_UNSUP)
|
||||
sql_print_information("SCHEDULER: MICROSECOND is not supported");
|
||||
|
||||
end:
|
||||
delete job_data;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user