1. 13 Oct, 2018 1 commit
  2. 07 Oct, 2018 1 commit
    • 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
  3. 23 Sep, 2018 4 commits
  4. 22 Sep, 2018 2 commits
  5. 21 Sep, 2018 8 commits
  6. 20 Sep, 2018 3 commits
  7. 19 Sep, 2018 4 commits
  8. 18 Sep, 2018 1 commit
    • Sergey Vojtovich's avatar
      MDEV-14410 - Assertion `table->pos_in_locked_tables == __null || · 327b2717
      Sergey Vojtovich authored
                   table->pos_in_locked_tables->table == table'
                   failed in mark_used_tables_as_free_for_reuse
      
      Assertion failure can be triggered by some DDL executed under LOCK TABLES
      that holds lock for DDL target table multiple times (either explicitly or
      implcitly).
      
      When closing all table instances for given table (e.g. when preparing for
      table removal during CREATE OR REPLACE), only one instance was removed
      from m_locked_tables list.
      
      Later we attempt to re-insert one of the instances in mysql_create_table()/
      add_back_last_deleted_lock(), which wasn't actually removed. This leads
      to m_locks_tables corruption, specifically loss of all following elements.
      
      Then UNLOCK TABLE won't reset some table instances properly (specifically
      pos_in_locked_tables), since they're not present in m_locked_tables.
      
      Eventually such table instance gets released to table cache and then
      re-used by subsequent statement, which triggers this assertion failure.
      327b2717
  9. 17 Sep, 2018 4 commits
  10. 14 Sep, 2018 3 commits
  11. 13 Sep, 2018 4 commits
    • Jacob Mathew's avatar
      MDEV-16912: Spider Order By column[datatime] limit 5 returns 3 rows · 6c47c1c4
      Jacob Mathew authored
      The problem occurs in 10.2 and earlier releases of MariaDB Server because the
      Partition Engine was not pushing the engine conditions to the underlying
      storage engine of each partition.  This caused Spider to return the first 5
      rows in the table with the data provided by the customer.  2 of the 5 rows
      did not qualify the WHERE clause, so they were removed from the result set by
      the server.
      
      To fix the problem, I have back-ported support for engine condition pushdown
      in the Partition Engine from MariaDB Server 10.3.
      
      Author:
        Jacob Mathew.
      
      Reviewer:
        Kentoku Shiba.
      
      Cherry-Picked:
        Commit eb2ca3d4 on branch bb-10.2-MDEV-16912
      6c47c1c4
    • Oleksandr Byelkin's avatar
      try to fix version detection · c9d6728c
      Oleksandr Byelkin authored
      c9d6728c
    • Jan Lindström's avatar
      Merge pull request #865 from grooverdan/MDEV-17173-wsrep_sst · ec457c08
      Jan Lindström authored
      MDEV-17173: correct parsing of 12.13.14.15:4444/xtrabackup_sst leavin…
      ec457c08
    • Daniel Black's avatar
      MDEV-17173: correct parsing of 12.13.14.15:4444/xtrabackup_sst leaving LSN/SST_VER blank · b96d3634
      Daniel Black authored
      Correcting commit e78e308e
      $ . scripts/wsrep_sst_common.sh --address 12.13.14.15:4444/xtrabackup_sst ; set | grep WSREP_SST
      WSREP_SST_OPT_ADDR=12.13.14.15:4444/xtrabackup_sst
      WSREP_SST_OPT_ADDR_PORT=4444
      WSREP_SST_OPT_AUTH=
      WSREP_SST_OPT_BINLOG=
      WSREP_SST_OPT_BINLOG_INDEX=
      WSREP_SST_OPT_BYPASS=0
      WSREP_SST_OPT_CONF='  '
      WSREP_SST_OPT_DATA=
      WSREP_SST_OPT_DEFAULT=
      WSREP_SST_OPT_EXTRA_DEFAULT=
      WSREP_SST_OPT_HOST=12.13.14.15
      WSREP_SST_OPT_HOST_UNESCAPED=12.13.14.15
      WSREP_SST_OPT_LSN=
      WSREP_SST_OPT_MODULE=xtrabackup_sst
      WSREP_SST_OPT_PATH=xtrabackup_sst
      WSREP_SST_OPT_PORT=4444
      WSREP_SST_OPT_PSWD=
      WSREP_SST_OPT_SST_VER=
      WSREP_SST_OPT_SUFFIX_DEFAULT=
      WSREP_SST_OPT_SUFFIX_VALUE=
      WSREP_SST_OPT_USER=
      
      . scripts/wsrep_sst_common.sh --address 12.13.14.15:4444/xtrabackup_sst/1234/5676 ; set | grep WSREP_SST
      WSREP_SST_OPT_ADDR=12.13.14.15:4444/xtrabackup_sst/1234/5676
      WSREP_SST_OPT_ADDR_PORT=4444
      WSREP_SST_OPT_AUTH=
      WSREP_SST_OPT_BINLOG=
      WSREP_SST_OPT_BINLOG_INDEX=
      WSREP_SST_OPT_BYPASS=0
      WSREP_SST_OPT_CONF='  '
      WSREP_SST_OPT_DATA=
      WSREP_SST_OPT_DEFAULT=
      WSREP_SST_OPT_EXTRA_DEFAULT=
      WSREP_SST_OPT_HOST=12.13.14.15
      WSREP_SST_OPT_HOST_UNESCAPED=12.13.14.15
      WSREP_SST_OPT_LSN=1234
      WSREP_SST_OPT_MODULE=xtrabackup_sst
      WSREP_SST_OPT_PATH=xtrabackup_sst/1234/5676
      WSREP_SST_OPT_PORT=4444
      WSREP_SST_OPT_PSWD=
      WSREP_SST_OPT_SST_VER=5676
      WSREP_SST_OPT_SUFFIX_DEFAULT=
      WSREP_SST_OPT_SUFFIX_VALUE=
      WSREP_SST_OPT_USER=
      b96d3634
  12. 12 Sep, 2018 5 commits