1. 16 Aug, 2019 5 commits
    • Aleksey Midenkov's avatar
      MDEV-18154 Deadlock and assertion upon no-op ALTER under LOCK TABLES · 16398736
      Aleksey Midenkov authored
      1. Revert incorrect treatment of m_needs_reopen;
      2. Close single instance of TABLE instead of all instances since
         reopened only those that are marked for reopen.
      16398736
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 395e1dcd
      Marko Mäkelä authored
      395e1dcd
    • Marko Mäkelä's avatar
      MDEV-19200: shutdown timeout on innodb.undo_truncate_recover · fe6eac0c
      Marko Mäkelä authored
      Optimize the test by dropping the table early and by using only
      one undo log thread, so that purge will be doing more useful work
      and less busy work of suspending and resuming the worker threads.
      
      The test used to cause shutdown timeout on 10.4 on buildbot, and
      for me locally when using --mysqld=--innodb-sync-debug.
      With these tweaks, it passes for me with --mysqld=--innodb-sync-debug.
      fe6eac0c
    • Marko Mäkelä's avatar
      MDEV-8588/MDEV-19740: Restore a condition · 555af003
      Marko Mäkelä authored
      It looks like the merge of MySQL 5.7.9 to MariaDB 10.2.2 conflicted with
      earlier changes that were made in MDEV-8588.
      
      row_search_mvcc(): If the page is corrupted, avoid invoking
      btr_cur_store_position(). The caller should not try to fetch
      the next record after a hard error.
      555af003
    • Marko Mäkelä's avatar
      Silence GCC 9.2.1 -Warray-bounds · 130d9490
      Marko Mäkelä authored
      No memory access violated the bounds of fake_extra_buf[],
      but GCC does not like the fact that the pointer fake_extra
      ends up pointing before the array.
      Allocate a dummy element at the start of fake_extra_buf[]
      in order to silence the warning.
      130d9490
  2. 15 Aug, 2019 8 commits
  3. 14 Aug, 2019 5 commits
    • Sujatha's avatar
      MDEV-20348: DROP TABLE IF EXISTS killed on master but was replicated · 29e560cd
      Sujatha authored
      Problem:
      =======
      DROP TABLE IF EXISTS was killed. The table still exists on
      the master but the DDL was still logged.
      
      Analysis:
      =========
      During the execution of DROP TABLE command "ha_delete_table" call is invoked
      to delete the table. If the query is killed at this point, the kill command
      is not handled within the code. This results in two issues.
      1) The table which is not dropped also gets written into the binary log.
      2) The code continues further upon receiving 'KILL QUERY'.
      
      Fix:
      ===
      Upon receiving the KILL command the query should stop its current execution.
      Tables which were successfully dropped prior to KILL command should be
      included in the binary log.
      29e560cd
    • Aleksey Midenkov's avatar
      Merge 10.2 into 10.3 · c23a5e0e
      Aleksey Midenkov authored
      c23a5e0e
    • Aleksey Midenkov's avatar
      MDEV-20301 InnoDB's MVCC has O(N^2) behaviors · 2347ffd8
      Aleksey Midenkov authored
      If there're multiple row versions in InnoDB, reading one row from PK
      may have O(N) complexity and reading from secondary keys may have
      O(N^2) complexity.
      
      The problem occurs when there are many pending versions of the same
      row, meaning that the primary key is the same, but a secondary key is
      different.  The slowdown occurs when the secondary index is
      traversed. This patch creates a helper class for the function
      row_sel_get_clust_rec_for_mysql() which can remember and re-use
      cached_clust_rec & cached_old_vers so that rec_get_offsets() does not
      need to be called over and over for the clustered record.
      
      Corrections by Kevin Lewis <kevin.lewis@oracle.com>
      
      MDEV-20341 Unstable innodb.innodb_bug14704286
      
      Removed test that tested the ability of interrupting long query which
      is not long anymore.
      2347ffd8
    • Aleksey Midenkov's avatar
      MDEV-20336 Assertion bitmap_is_set(read_partitions) upon SELECT FOR UPDATE from versioned table · a20f6f98
      Aleksey Midenkov authored
      Exclude SELECT and INSERT SELECT from vers_set_hist_part(). We cannot
      likewise exclude REPLACE SELECT because it may REPLACE into itself
      (and REPLACE generates history).
      
      INSERT also does not generate history, but we have history
      modification setting which might be interfered.
      a20f6f98
    • Aleksey Midenkov's avatar
      39db1165
  4. 13 Aug, 2019 13 commits
  5. 12 Aug, 2019 7 commits
    • Marko Mäkelä's avatar
      MDEV-17614: After-merge fix · 609ea2f3
      Marko Mäkelä authored
      MDEV-17614 flags INSERT…ON DUPLICATE KEY UPDATE unsafe for statement-based
      replication when there are multiple unique indexes. This correctly fixes
      something whose attempted fix in MySQL 5.7
      in mysql/mysql-server@c93b0d9a972cb6f98fd445f2b69d924350f9128a
      caused lock conflicts. That change was reverted in MySQL 5.7.26
      in mysql/mysql-server@066b6fdd433aa6673622341f1a2f0a3a20018043
      (with a substantial amount of other changes).
      
      In MDEV-17073 we already disabled the unfortunate MySQL change when
      statement-based replication was not being used. Now, thanks to MDEV-17614,
      we can actually remove the change altogether.
      
      This reverts commit 8a346f31 (MDEV-17073)
      and mysql/mysql-server@c93b0d9a972cb6f98fd445f2b69d924350f9128a while
      keeping the test cases.
      609ea2f3
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · be33124c
      Marko Mäkelä authored
      be33124c
    • Monty's avatar
      Fixed issues found by valgrind · fe8181ac
      Monty authored
      - mysqltest didn't free read_command_buf
      - wait_for_slave_param did write different things to the log if valgrind
        was used.
      - Table open cache should not write the initial variable value as it
        can depend on the configuration or if valgrind is used
      - A variable in GetResult was used uninitalized
      fe8181ac
    • Marko Mäkelä's avatar
      Merge 5.5 into 10.1 · 15c1ab52
      Marko Mäkelä authored
      15c1ab52
    • Marko Mäkelä's avatar
      MDEV-17614: Re-record a result · 7a9e1fcd
      Marko Mäkelä authored
      7a9e1fcd
    • Marko Mäkelä's avatar
      Fix -Wimplicit-fallthrough · 1217e4a0
      Marko Mäkelä authored
      1217e4a0
    • Marko Mäkelä's avatar
      b2a387a3
  6. 11 Aug, 2019 2 commits