BUG#30274 (Debug server crashes because mutex isn't initialized):
Completion patch, since it is possible that Log_event::write_header() is called with no current thread. When starting the server, there is no thread available, but MYSQL_BIN_LOG::open() is called to initialize the binary log. The function writes a format description log event to the binary log, which means that Log_event::write_header() can be called with no current thread object available.
This commit is contained in:
parent
c8dc63b363
commit
283e9529fc
@ -691,9 +691,19 @@ bool Log_event::write_header(IO_CACHE* file, ulong event_data_length)
|
||||
log_pos= my_b_safe_tell(file)+data_written;
|
||||
}
|
||||
|
||||
/* Set time of we this isn't a query */
|
||||
/*
|
||||
Set time of when to when the query started. Since this function is
|
||||
called from init_server_components() as well, it might be that the
|
||||
current thread is not defined. In that case, we take the current
|
||||
time instead. It is safe to call my_time() here since the first
|
||||
time this line is reached is through the init_server_components()
|
||||
call, which is after the my_init() call in the main() function (or
|
||||
it's replacement, for some platforms).
|
||||
*/
|
||||
THD *thd= current_thd;
|
||||
if (!when)
|
||||
when= current_thd->start_time;
|
||||
when= thd ? thd->start_time : my_time(0);
|
||||
|
||||
/*
|
||||
Header will be of size LOG_EVENT_HEADER_LEN for all events, except for
|
||||
FORMAT_DESCRIPTION_EVENT and ROTATE_EVENT, where it will be
|
||||
|
Loading…
x
Reference in New Issue
Block a user