Comment 1 for bug 1109969

Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote :

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.