Commit ac28ad5d authored by unknown's avatar unknown

Avoid problems on shutdown by shutting down replication slave threads

after normal connection threads. (Bug #11796)


sql/mysqld.cc:
  Move call to end_slave() after first loop through killing threads,
  to minimize chances of 'SHOW SLAVE STATUS' being called between the
  time the slave is shut down and connections are shut down.
parent 31ebc6ef
...@@ -648,7 +648,6 @@ static void close_connections(void) ...@@ -648,7 +648,6 @@ static void close_connections(void)
} }
#endif #endif
end_thr_alarm(0); // Abort old alarms. end_thr_alarm(0); // Abort old alarms.
end_slave();
/* /*
First signal all threads that it's time to die First signal all threads that it's time to die
...@@ -664,6 +663,9 @@ static void close_connections(void) ...@@ -664,6 +663,9 @@ static void close_connections(void)
{ {
DBUG_PRINT("quit",("Informing thread %ld that it's time to die", DBUG_PRINT("quit",("Informing thread %ld that it's time to die",
tmp->thread_id)); tmp->thread_id));
/* We skip slave threads on this first loop through. */
if (tmp->slave_thread) continue;
tmp->killed= 1; tmp->killed= 1;
if (tmp->mysys_var) if (tmp->mysys_var)
{ {
...@@ -680,6 +682,8 @@ static void close_connections(void) ...@@ -680,6 +682,8 @@ static void close_connections(void)
} }
(void) pthread_mutex_unlock(&LOCK_thread_count); // For unlink from list (void) pthread_mutex_unlock(&LOCK_thread_count); // For unlink from list
end_slave();
if (thread_count) if (thread_count)
sleep(2); // Give threads time to die sleep(2); // Give threads time to die
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment