1. 01 Mar, 2019 4 commits
  2. 28 Feb, 2019 3 commits
  3. 26 Feb, 2019 2 commits
    • Alexander Barkov's avatar
      MDEV-17725 Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())'... · cac14b92
      Alexander Barkov authored
      MDEV-17725 Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failed in Diagnostics_area::set_ok_status upon ALTER failing due to error from engine
      cac14b92
    • Julius Goryavsky's avatar
      MDEV-9519: Data corruption will happen on the Galera cluster size change · 2c734c98
      Julius Goryavsky authored
      If we have a 2+ node cluster which is replicating from an async master
      and the binlog_format is set to STATEMENT and multi-row inserts are executed
      on a table with an auto_increment column such that values are automatically
      generated by MySQL, then the server node generates wrong auto_increment
      values, which are different from what was generated on the async master.
      
      In the title of the MDEV-9519 it was proposed to ban start slave on a Galera
      if master binlog_format = statement and wsrep_auto_increment_control = 1,
      but the problem can be solved without such a restriction.
      
      The causes and fixes:
      
      1. We need to improve processing of changing the auto-increment values
      after changing the cluster size.
      
      2. If wsrep auto_increment_control switched on during operation of
      the node, then we should immediately update the auto_increment_increment
      and auto_increment_offset global variables, without waiting of the next
      invocation of the wsrep_view_handler_cb() callback. In the current version
      these variables retain its initial values if wsrep_auto_increment_control
      is switched on during operation of the node, which leads to inconsistent
      results on the different nodes in some scenarios.
      
      3. If wsrep auto_increment_control switched off during operation of the node,
      then we must return the original values of the auto_increment_increment and
      auto_increment_offset global variables, as the user has set. To make this
      possible, we need to add a "shadow copies" of these variables (which stores
      the latest values set by the user).
      
      https://jira.mariadb.org/browse/MDEV-9519
      2c734c98
  4. 25 Feb, 2019 1 commit
    • Julius Goryavsky's avatar
      MDEV-9519: Data corruption will happen on the Galera cluster size change · 243f829c
      Julius Goryavsky authored
      If we have a 2+ node cluster which is replicating from an async master
      and the binlog_format is set to STATEMENT and multi-row inserts are executed
      on a table with an auto_increment column such that values are automatically
      generated by MySQL, then the server node generates wrong auto_increment
      values, which are different from what was generated on the async master.
      
      In the title of the MDEV-9519 it was proposed to ban start slave on a Galera
      if master binlog_format = statement and wsrep_auto_increment_control = 1,
      but the problem can be solved without such a restriction.
      
      The causes and fixes:
      
      1. We need to improve processing of changing the auto-increment values
      after changing the cluster size.
      
      2. If wsrep auto_increment_control switched on during operation of
      the node, then we should immediately update the auto_increment_increment
      and auto_increment_offset global variables, without waiting of the next
      invocation of the wsrep_view_handler_cb() callback. In the current version
      these variables retain its initial values if wsrep_auto_increment_control
      is switched on during operation of the node, which leads to inconsistent
      results on the different nodes in some scenarios.
      
      3. If wsrep auto_increment_control switched off during operation of the node,
      then we must return the original values of the auto_increment_increment and
      auto_increment_offset global variables, as the user has set. To make this
      possible, we need to add a "shadow copies" of these variables (which stores
      the latest values set by the user).
      
      https://jira.mariadb.org/browse/MDEV-9519
      243f829c
  5. 23 Feb, 2019 4 commits
  6. 22 Feb, 2019 1 commit
    • Marko Mäkelä's avatar
      MDEV-10813: Update buf_page_t::buf_fix_count outside mutex · 2c8d9a4e
      Marko Mäkelä authored
      Since MySQL 5.6.16 (and MariaDB Server 10.0.11), changes of
      buf_page_t::buf_fix_count are atomic memory operations if
      PAGE_ATOMIC_REF_COUNT is defined. Since MySQL 5.7
      (and MariaDB Server 10.2.2), the field is always updated
      by atomic memory operations.
      
      In a few occurrences, updates of the counter were unnecessarily
      surrounded by an acquisition and release of the block mutex
      (buf_block_t::mutex or buf_pool_t::zip_mutex). Remove these
      unnecessary mutex operations.
      2c8d9a4e
  7. 21 Feb, 2019 2 commits
  8. 20 Feb, 2019 5 commits
  9. 19 Feb, 2019 9 commits
  10. 18 Feb, 2019 3 commits
  11. 14 Feb, 2019 2 commits
  12. 13 Feb, 2019 3 commits
  13. 12 Feb, 2019 1 commit