diff options
Diffstat (limited to 'storage/xtradb/srv/srv0srv.cc')
-rw-r--r-- | storage/xtradb/srv/srv0srv.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/storage/xtradb/srv/srv0srv.cc b/storage/xtradb/srv/srv0srv.cc index 0ec49ab39e3..3e3b44d9106 100644 --- a/storage/xtradb/srv/srv0srv.cc +++ b/storage/xtradb/srv/srv0srv.cc @@ -86,6 +86,12 @@ ibool innobase_get_slow_log(); in the server */ UNIV_INTERN ulint srv_activity_count = 0; +#include <my_service_manager.h> + +#ifdef WITH_WSREP +extern int wsrep_debug; +extern int wsrep_trx_is_aborting(void *thd_ptr); +#endif /* The following is the maximum allowed duration of a lock wait. */ UNIV_INTERN ulong srv_fatal_semaphore_wait_threshold = DEFAULT_SRV_FATAL_SEMAPHORE_TIMEOUT; @@ -3225,6 +3231,9 @@ srv_purge_should_exit(ulint n_purged) } /* Slow shutdown was requested. */ if (n_purged) { + service_manager_extend_timeout( + INNODB_EXTEND_TIMEOUT_INTERVAL, + "InnoDB " ULINTPF " pages purged", n_purged); /* The previous round still did some work. */ return(false); } @@ -3429,7 +3438,6 @@ srv_do_purge( (++count % TRX_SYS_N_RSEGS) == 0); *n_total_purged += n_pages_purged; - } while (!srv_purge_should_exit(n_pages_purged) && n_pages_purged > 0 && purge_sys->state == PURGE_STATE_RUN); |