mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#43733 Select on processlist let the embedded server crash (concurrent_innodb_safelog)
the thread->mysys_var parameter should be empty for the idle embedded-server threads so that working threads can safely free this memory. per-file comments: libmysqld/lib_sql.cc Bug#43733 Select on processlist let the embedded server crash (concurrent_innodb_safelog) set thread->mysys_var= 0 after the query is handled mysql-test/include/concurrent.inc Bug#43733 Select on processlist let the embedded server crash (concurrent_innodb_safelog) enable these for the embedded-server mode sql/sql_show.cc Bug#43733 Select on processlist let the embedded server crash (concurrent_innodb_safelog) show thread lock status in the query result
This commit is contained in:
@ -142,6 +142,8 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
|||||||
if (!skip_check)
|
if (!skip_check)
|
||||||
result= thd->is_error() ? -1 : 0;
|
result= thd->is_error() ? -1 : 0;
|
||||||
|
|
||||||
|
thd->mysys_var= 0;
|
||||||
|
|
||||||
#if defined(ENABLED_PROFILING) && defined(COMMUNITY_SERVER)
|
#if defined(ENABLED_PROFILING) && defined(COMMUNITY_SERVER)
|
||||||
thd->profiling.finish_current_query();
|
thd->profiling.finish_current_query();
|
||||||
#endif
|
#endif
|
||||||
@ -634,6 +636,7 @@ void *create_embedded_thd(int client_flag)
|
|||||||
|
|
||||||
thread_count++;
|
thread_count++;
|
||||||
threads.append(thd);
|
threads.append(thd);
|
||||||
|
thd->mysys_var= 0;
|
||||||
return thd;
|
return thd;
|
||||||
err:
|
err:
|
||||||
delete(thd);
|
delete(thd);
|
||||||
|
@ -25,8 +25,6 @@
|
|||||||
# new wrapper t/concurrent_innodb_safelog.test
|
# new wrapper t/concurrent_innodb_safelog.test
|
||||||
#
|
#
|
||||||
|
|
||||||
--source include/not_embedded.inc
|
|
||||||
|
|
||||||
connection default;
|
connection default;
|
||||||
#
|
#
|
||||||
# Show prerequisites for this test.
|
# Show prerequisites for this test.
|
||||||
|
@ -1888,7 +1888,7 @@ int fill_schema_processlist(THD* thd, TABLE_LIST* tables, COND* cond)
|
|||||||
tmp->mysys_var->current_cond ?
|
tmp->mysys_var->current_cond ?
|
||||||
"Waiting on cond" : NullS);
|
"Waiting on cond" : NullS);
|
||||||
#else
|
#else
|
||||||
val= (char *) "Writing to net";
|
val= (char *) (tmp->proc_info ? tmp->proc_info : NullS);
|
||||||
#endif
|
#endif
|
||||||
if (val)
|
if (val)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user