1) That is from galera worked thread in galera_service_thd.cpp
=====================
if (!exit)
{
if (data.act_ & A_LAST_COMMITTED)
{ ssize_t const ret(st->gcs_.set_last_applied(data.last_committed_));
if (gu_unlikely(ret < 0))
{ log_warn << "Failed to report last committed " << data.last_committed_ << ", " << ret << " (" << strerror (-ret) << ')'; // @todo: figure out what to do in this case
} else
{ log_debug << "Reported last committed: " << data.last_committed_;
}
}
}
==================
kill_mysql and kill_server in turn call wsrep_stop_replication,
which call wsrep_close_client_connections(TRUE), but the TRUE
here indicates a graceful shutdown where it waits for all threads
to exit and then there is also
/* wait until appliers have stopped */
wsrep_wait_appliers_close(thd);
So, may be something can be changed here if possible. (The
unireg_abort calls wsrep_close_client_connections(FALSE) to not
wait for close).
2) Having said that, I noticed that after it transitions to
JOINER and is undergoing IST, it doesn't handle SIGQUIT/SIGKILL
signals well, until it has reached a JOINED state.
You can see it here -- http://sprunge.us/hPGU -- during " InnoDB:
DEBUG: update_statistics for sbtest/sbtest1. " it won't stop with
mysqladmin shutdown or SIGQUIT.
1) That is from galera worked thread in galera_ service_ thd.cpp
======= ======= =======
ssize_ t const ret(st- >gcs_.set_ last_applied( data.last_ committed_ ));
if (!exit)
{
if (data.act_ & A_LAST_COMMITTED)
{
if (gu_unlikely(ret < 0))
log_ warn << "Failed to report last committed "
<< data.last_ committed_ << ", " << ret
<< " (" << strerror (-ret) << ')';
/ / @todo: figure out what to do in this case
else
log_ debug << "Reported last committed: "
<< data.last_ committed_ ;
{
}
{
}
}
}
==================
kill_mysql and kill_server in turn call wsrep_stop_ replication, client_ connections( TRUE), but the TRUE
which call wsrep_close_
here indicates a graceful shutdown where it waits for all threads
to exit and then there is also
/* wait until appliers have stopped */ wait_appliers_ close(thd) ;
wsrep_
So, may be something can be changed here if possible. (The client_ connections( FALSE) to not
unireg_abort calls wsrep_close_
wait for close).
2) Having said that, I noticed that after it transitions to
JOINER and is undergoing IST, it doesn't handle SIGQUIT/SIGKILL
signals well, until it has reached a JOINED state.
You can see it here -- http:// sprunge. us/hPGU -- during " InnoDB:
DEBUG: update_statistics for sbtest/sbtest1. " it won't stop with
mysqladmin shutdown or SIGQUIT.