1. 16 Oct, 2018 3 commits
    • Andrei Elkin's avatar
      MDEV-14431 binlog.binlog_flush_binlogs_delete_domain failed in buildbot · d8974ebd
      Andrei Elkin authored
      The test and also rpl_gtid_delete_domain failed on PPC64 platform
      due to an incorrectly specified actual key for searching
      in a gtid domain system hash. While the correct size is 32 bits
      the supplied value was 8 bytes of long int size on the platform.
      The problem became evident thanks to the big endiness which
      cut off the *least* significant part of the value field.
      
      Fixed with correcting a dynamic array initialization to hold
      now uint32 values as well as the values extraction for
      searching in the gtid domain system hash.
      A new added test ensures no overflowed values are accepted
      for deletion which prevents inadvertent action. Notice though
      
      MariaDB [test]> set @@session.gtid_domain_id=(1 << 32) + 1;
      MariaDB [test]> show warnings;
      +---------+------+--------------------------------------------------------+
      | Level   | Code | Message                                                |
      +---------+------+--------------------------------------------------------+
      | Warning | 1292 | Truncated incorrect gtid_domain_id value: '4294967297' |
      +---------+------+--------------------------------------------------------+
      MariaDB [test]> select @@session.gtid_domain_id;
      +--------------------------+
      | @@session.gtid_domain_id |
      +--------------------------+
      |               4294967295 |
      +--------------------------+
      d8974ebd
    • Vladislav Vaintroub's avatar
    • Vladislav Vaintroub's avatar
      remove MYF flags from plugin · 952f394f
      Vladislav Vaintroub authored
      952f394f
  2. 15 Oct, 2018 3 commits
  3. 13 Oct, 2018 3 commits
  4. 10 Oct, 2018 1 commit
  5. 09 Oct, 2018 1 commit
  6. 08 Oct, 2018 1 commit
    • Andrei Elkin's avatar
      MDEV-17346 parallel slave start and stop races to workers disappeared · f517d8c7
      Andrei Elkin authored
      The bug appears as a slave SQL thread hanging in
      rpl_parallel_thread_pool::get_thread() while there are no slave worker
      threads to awake it.
      
      The reason of the hang is that at the parallel slave worker pool
      activation the being stared SQL thread could read the worker pool size
      concurrently with pool deactivation. At reading the SQL thread did not
      employ necessary protection from a race.
      
      Fixed with making the SQL thread at the pool activation first
      to grab the same lock as potential deactivator also does prior
      to access the pool size.
      f517d8c7
  7. 07 Oct, 2018 2 commits
    • Igor Babaev's avatar
      MDEV-17382 Hash join algorithm should not be used to join materialized · 1eca4957
      Igor Babaev authored
                 derived table / view by equality
      
      Now rows of a materialized derived table are always put into a
      temporary table before join operation. If BNLH is used to join this
      table with the result of a partial join then both operands of the
      join are actually put into main memory. In most cases this is not
      efficient.
      We could avoid this by sending the rows of the derived table directly
      to the join operation. However this kind of data flow is not supported
      yet.
      Fixed by not allowing usage of hash join algorithm to join a materialized
      derived table if it's joined by an equality predicate of the form
      f=e where f is a field of the derived table.
      1eca4957
    • Kristian Nielsen's avatar
      Fix accumulation of old rows in mysql.gtid_slave_pos · 2f4a0c5b
      Kristian Nielsen authored
      This would happen especially in optimistic parallel replication, where there
      is a good chance that a transaction will be rolled back (due to conflicts)
      after it has executed record_gtid(). If the transaction did any deletions of
      old rows as part of record_gtid(), those deletions will be undone as well.
      And the code did not properly ensure that the deletions would be re-tried.
      
      This patch makes record_gtid() remember the list of deletions done as part
      of a transaction. Then in rpl_slave_state::update() when the changes have
      been committed, we discard the list. However, in case of error and rollback,
      in cleanup_context() we will instead put the list back into
      rpl_global_gtid_slave_state so that the deletions will be re-tried later.
      
      Probably fixes part of the cause of MDEV-12147 as well.
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      2f4a0c5b
  8. 05 Oct, 2018 2 commits
  9. 04 Oct, 2018 5 commits
  10. 02 Oct, 2018 1 commit
  11. 01 Oct, 2018 3 commits
  12. 23 Sep, 2018 4 commits
  13. 22 Sep, 2018 2 commits
  14. 21 Sep, 2018 8 commits
  15. 20 Sep, 2018 1 commit