1. 11 Aug, 2017 3 commits
    • Daniele Sciascia's avatar
      MW-336 Avoid slave threads leaking · 364b15c0
      Daniele Sciascia authored
      This patch fixes two problems that may arise when changing the
      value of wsrep_slave_threads:
      
      1) Threads may be leaked if wsrep_slave_threads is changed
         repeatedly. Specifically, when changing the number of slave
         threads, we keep track of wsrep_slave_count_change, the
         number of slaves to start / stop. The problem arises when
         wsrep_slave_count_change is updated before slaves had a
         chance to exit (threads may take some time to exit, as they
         exit only after commiting one more replication event).
         The fix is to update wsrep_slave_count_change such that it
         reflects the number of threads that already exited or are
         scheduled to exit.
      
      2) Attempting to set out of range value for wsrep_slave_threads
         (below 1 / above 512) results in wsrep_slave_count_change to
         be computed based on the out of range value, even though a
         warning is generated and wsrep_slave_threads is set to a
         truncated value. wsrep_slave_count_change is computed in
         wsrep_slave_threads_check(), which is called before mysql
         checks for valid range. Fix is to update wsrep_count_change
         whenever wsrep_slave_threads is updated with a valid value.
      364b15c0
    • Philip Stoev's avatar
    • Daniele Sciascia's avatar
      MW-357 Reset thd->wsrep_apply_toi regardless of applier exiting · 77f5b188
      Daniele Sciascia authored
      Applier does not reset thd->wsrep_apply_toi if applier thread decides
      to exit by setting 'exit= true'. The problem is that galera side may
      decide not to kill the applier thread: for instance if we try to
      SET wsrep_slave_threads = 0; then galera refuses to kill the last
      applier thread. If this happens we are left with a thd which has not
      been reset to the initial state.
      This patch ensures that the thd is reset regardless of the applier
      thread exiting or not.
      77f5b188
  2. 10 Aug, 2017 1 commit
    • Jan Lindström's avatar
      MDEV-13471: Test failure on innodb.log_file_size,4k · 391b1af0
      Jan Lindström authored
      Problem was that 4k page size is not really supported in
      Galera. For reference see:
      	codership/galera#398
      
      Page size 4k is problematic because WSREP XID info location
      that was set to constant UNIV_PAGE_SIZE - 3500 and that is conflicting
      with rseg undo slots location if there is lot of undo tablespaces.
      Undo tablespace identifiers and page numbers require
      at least 126*8=1024 bytes starting from offset 56. Therefore,
      WSREP XID startig from offset 596 would overwrite several
      space_id,page_no pairs starting from 72th undo log tablespace
      space_id,page_no pair at offset 594.
      This will cause InnoDB startup failure seen as
      [ERROR] InnoDB: Unable to open undo tablespace './undo30579'.
      
      Originally, the undo tablespace ID would always be between
      0 and 127. Starting with MySQL 5.6.36 which introduced
      Bug #25551311 BACKPORT BUG #23517560 REMOVE SPACE_ID RESTRICTION
      FOR UNDO TABLESPACES (merged to MariaDB 10.0.31)
      it is possible for an undo tablespace ID to be 0x7773. But in
      this case, the page number should be 3, not 0x72650003.
      This is just the first collision. The WSREP XID data would
      overwrite subsequent slots.
      
      trx0sys.h
      
      trx0sys.cc
      	Code formatting and add comments.
      391b1af0
  3. 09 Aug, 2017 1 commit
  4. 04 Aug, 2017 2 commits
  5. 03 Aug, 2017 8 commits
  6. 02 Aug, 2017 2 commits
  7. 01 Aug, 2017 9 commits
  8. 30 Jul, 2017 5 commits
  9. 29 Jul, 2017 3 commits
  10. 27 Jul, 2017 5 commits
  11. 24 Jul, 2017 1 commit