mirror of
https://github.com/MariaDB/server.git
synced 2025-08-12 13:31:36 +02:00
![]() Problem: ======= - There are two failures occurs for this test case: (1) set global innodb_buf_flush_list_now=1 doesn't make sure that pages are being flushed. (2) InnoDB page cleaner thread aborts while writing the checkpoint information. Problem is that When InnoDB startup aborts, InnoDB changes the shutdown state to SRV_SHUTDOWN_EXIT_THREADS. By changing the shutdown state, InnoDB doesn't advance the log_sys.lsn (avoids fil_names_clear()). After InnoDB shutdown(innodb_shutdown()) is being initiated, shutdown state again changed to SRV_SHUTDOWN_INITIATED. This leads the page cleaner thread to fail with assertion ut_ad(srv_shutdown_state > SRV_SHUTDOWN_INITIATED) in log_write_checkpoint_info() Solution: ========= (1) In order to avoid (1) failure, InnoDB can make the variable innodb_max_dirty_pages_pct_lwm, innodb_max_dirty_pages_pct to 0. Also make sure that InnoDB doesn't have any dirty pages in buffer pool by adding wait_condition. (2) Avoid changing the srv_shutdown_state to SRV_SHUTDOWN_EXIT_THREADS when the InnoDB startup aborts |
||
---|---|---|
.. | ||
srv0mon.cc | ||
srv0srv.cc | ||
srv0start.cc |