Bug #48388 additional logging for shutting down threads
| Submitted: | 28 Oct 2009 18:43 | Modified: | 25 Apr 2011 19:06 |
|---|---|---|---|
| Reporter: | Lig Isler-Turmelle | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: General | Severity: | S4 (Feature request) |
| Version: | OS: | Any | |
| Assigned to: | Tatiana Azundris Nuernberg | CPU Architecture: | Any |
[28 Oct 2009 18:43]
Lig Isler-Turmelle
[20 Jan 2011 11:47]
Tatiana Azundris Nuernberg
mysqld_main:
...
mysql_mutex_lock(&LOCK_thread_count);
while (!ready_to_exit)
mysql_cond_wait(&COND_thread_count, &LOCK_thread_count);
mysql_mutex_unlock(&LOCK_thread_count);
...
clean_up(1);
mysqld_exit(0);
kill_server_thread:
// created in kill_mysql(). maybe.
handle_shutdown:
// Win only
kill_server:
// called from kill_server_thread() / handle_shutdown() / kill_broken_server()
if MYSQL_KILL_SIGNAL or !signal
print ER_NORMAL_SHUTDOWN
else
print ER_GOT_SIGNAL
close_connections();
if (sig != MYSQL_KILL_SIGNAL &&
sig != 0)
unireg_abort(1); // funky signal -> fail -> abort; terminal
else
unireg_end(); // regular shutdown; terminal
// terminal
unireg_abort:
// called from ... pretty much anywhere, generic fatal handler
clean_up(...)
mysqld_exit() // terminal
unireg_end:
// called from kill_server(), regular shutdown
clean_up(1); // may be terminal ...
pthread_exit(0); // if SIGNALS_DONT_BREAK_READ, this is main thr, exit() instead
// terminal
clean_up:
// called from mysqld_main(), unireg_abort(), unireg_end()
...
print_inf("shutdown complete")
...
MYSQL_CALLBACK(thread_scheduler, end, ());
mysql_client_plugin_deinit();
...
mysql_mutex_lock(&LOCK_thread_count);
DBUG_PRINT("quit", ("got thread count lock"));
ready_to_exit=1;
/* do the broadcast inside the lock to ensure that my_end() is not called */
mysql_cond_broadcast(&COND_thread_count);
mysql_mutex_unlock(&LOCK_thread_count);
rts -- if main thread hasn't killed us ...
mysqld_exit:
// called from unireg_abort(), or mysqld_main() if !EMBEDDED
wait_for_signal_thread_to_end();
...
clean_up_mutexes();
clean_up_error_log_mutex();
...
my_end(opt_endinfo ? MY_CHECK_ERROR | MY_GIVE_INFO : 0);
exit(exit_code); /* purecov: inspected */
// terminal
my_end:
// myISAM debugging mostly
// called from mysqld_exit(), if !EMBEDDED
...
my_thread_end();
my_thread_global_end();
rts
my_thread_global_end:
// wait until all threads have exited, then destroy mutexes
// called from my_end()
rts
[10 Feb 2011 8:33]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/130961 3475 Tatiana Azundris Nurnberg 2011-02-10 [merge] merge & fix Bug#48388
[3 Mar 2011 12:08]
Tatiana Azundris Nuernberg
correcting, pushed for 5.6.2-m5
[25 Apr 2011 19:06]
Paul DuBois
Noted in 5.6.2 changelog. The server now writes thread shutdown messages to the error log during the shutdown procedure. CHANGESET - http://lists.mysql.com/commits/130961
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.070 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.