1. 25 Sep, 2020 10 commits
    • Monty's avatar
      Reverted wrong patch for mysql_upgrade · 6a137625
      Monty authored
      The original code was correct. mysql_upgrade calls the mysql client to
      talk with MariaDB. It doesn't call itself!
      6a137625
    • Monty's avatar
      Added asssert to init_of_queries() to make it more safe · 71a7b79b
      Monty authored
      Part of review of 10.4 code by Sergei.
      
      Other things:
      
      - Changed return type if is_active() from my_bool to bool as this is
        only used by C++ code.
      71a7b79b
    • Monty's avatar
      MDEV-23296 Assertion `block->type == PAGECACHE_EMPTY_PAGE.. with aria_max_sort_file_size=0 · bb2c9581
      Monty authored
      When maria_drop_all_indexes() reset the key files, it didn't flush
      the page cache. This confused the cache as there where old key blocks
      marked with LSN in it and repair tried to overwrite these with PLAIN
      blocks which is not allowed.
      bb2c9581
    • Monty's avatar
      MDEV-17665 Assertion `!share and other errors on concurrent Aria operations · 92b5a8bb
      Monty authored
      Fixes also:
      MDEV-22674 Server crash in compare_bin ... restore_table_state_after_repair
      
      The bug was that the 'can_enable_index' variable in MyISAM and Aria was
      not properly set and reset for bulk insert.
      Because of this, insert...select was trying to recreate indexes while
      another thread was using it, causing crashes in page cache.
      92b5a8bb
    • Monty's avatar
      MDEV-23318 Assertion `cache_empty(keycache)' failed in prepare_resize_simple_key_cache · 8819b5ee
      Monty authored
      The reason was that during MyISAM parallel repair two threads used the
      same changed TABLE object to compute virtual columns
      
      Fixed by adding a mutex in compute_vcols()
      8819b5ee
    • Monty's avatar
      MDEV-21470 ASAN heap-use-after-free in my_hash_sort_bin · 0b73ef06
      Monty authored
      The problem was that the server was calling virtual functions on a record
      that was not initialized with new data.
      This happened when fill_record() was aborted in the middle because an
      error in save_val() or save_in_field()
      0b73ef06
    • Monty's avatar
      Fix for timeout in rpl.rpl_parallel_retry · 895e9950
      Monty authored
      MDEV-17109 rpl.rpl_parallel_retry fails in buildbot with timeout
      
      I was not able to prove that this fix works, but at least it simplifies
      the problem as it removes some possible timing issues.
      895e9950
    • Monty's avatar
      MDEV-23586 Mariabackup: GTID saved for replication in 10.4.14 is wrong · 16ea692e
      Monty authored
      MDEV-21953 deadlock between BACKUP STAGE BLOCK_COMMIT and parallel
      replication
      
      Fixed by partly reverting MDEV-21953 to put back MDL_BACKUP_COMMIT locking
      before log_and_order.
      
      The original problem for MDEV-21953 was that while a thread was waiting in
      for another threads to commit in 'log_and_order', it had the
      MDL_BACKUP_COMMIT lock. The backup thread was waiting to get the
      MDL_BACKUP_WAIT_COMMIT lock, which blocks all new MDL_BACKUP_COMMIT locks.
      This causes a deadlock as the waited-for thread can never get past the
      MDL_BACKUP_COMMIT lock in ha_commit_trans.
      
      The main part of the bug fix is to release the MDL_BACKUP_COMMIT lock while
      a thread is waiting for other 'previous' threads to commit. This ensures
      that no transactional thread keeps MDL_BACKUP_COMMIT while waiting, which
      ensures that there are no deadlocks anymore.
      16ea692e
    • Monty's avatar
      Fixed BUILD script to make plugin-file_key_management DYNAMIC · 3cdbaa04
      Monty authored
      This ensures that all tests can be run.
      Before this patch some encryption test failed
      3cdbaa04
    • Monty's avatar
      Backported setting of transcation.on=1 in THD::reset_for_reuse() · 920824c2
      Monty authored
      This is to ensure code in 10.4 and 10.5 is logically identical for this
      variable
      920824c2
  2. 24 Sep, 2020 1 commit
  3. 23 Sep, 2020 2 commits
  4. 22 Sep, 2020 14 commits
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 61df98f9
      Marko Mäkelä authored
      61df98f9
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · d9d9c30b
      Marko Mäkelä authored
      d9d9c30b
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 9d0ee2dc
      Marko Mäkelä authored
      9d0ee2dc
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 55e48b77
      Marko Mäkelä authored
      55e48b77
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · fde3d895
      Marko Mäkelä authored
      fde3d895
    • Marko Mäkelä's avatar
      MDEV-22939: Restore an AUTO_INCREMENT check · 78efa109
      Marko Mäkelä authored
      It turns out that we must check for DISCARD TABLESPACE both
      when the table is being rebuilt and when the AUTO_INCREMENT
      value of the table is being added.
      
      This was caught by the test innodb.alter_missing_tablespace.
      Somehow I failed to run all tests. Sorry!
      78efa109
    • Marko Mäkelä's avatar
      MDEV-22939 Server crashes in row_make_new_pathname() · 3eb81136
      Marko Mäkelä authored
      The statement ALTER TABLE...DISCARD TABLESPACE is problematic,
      because its designed purpose is to break the referential integrity
      of the data dictionary and make a table point to nowhere.
      
      ha_innobase::commit_inplace_alter_table(): Check whether the
      table has been discarded. (This is a bit late to check it, right
      before committing the change.) Previously, we performed this check
      only in a specific branch of the function commit_set_autoinc().
      
      Note: We intentionally allow non-rebuilding ALTER TABLE even if
      the tablespace has been discarded, to remain compatible with MySQL.
      (See the various tests with "wl5522" in the name, such as
      innodb.innodb-wl5522.)
      
      The test case would crash starting with 10.3 only, but it does not hurt
      to minimize the code and test difference between 10.2 and 10.3.
      3eb81136
    • Marko Mäkelä's avatar
      Make DISCARD TABLESPACE more robust · e5e83daf
      Marko Mäkelä authored
      dict_load_table_low(): Copy the 'discarded' flag to file_unreadable.
      This allows to avoid a potentially harmful call to dict_stats_init()
      in ha_innobase::open().
      e5e83daf
    • Marko Mäkelä's avatar
      MDEV-23776: Re-apply the fix and make the test more robust · 2af8f712
      Marko Mäkelä authored
      The test that was added in commit e05650e6
      would break a subsequent run of a test encryption.innodb-bad-key-change
      because some pages in the system tablespace would be encrypted with
      a different key.
      
      The failure was repeatable with the following invocation:
      
      ./mtr --no-reorder \
      encryption.create_or_replace,cbc \
      encryption.innodb-bad-key-change,cbc
      
      Because the crash was unrelated to the code changes that we reverted
      in commit eb38b1f7
      we can safely re-apply those fixes.
      2af8f712
    • Jan Lindström's avatar
      98f03e5a
    • Jan Lindström's avatar
      MDEV-21170 : Galera test failure on galera_sr.GCF-1043[A|B] · 98ac2d42
      Jan Lindström authored
      Add error printout when mysql.wsrep_streaming_log lock
      fails. However, tests are very undeterministic and not
      suitable for mtr environment. Thus, they are removed.
      98ac2d42
    • Marko Mäkelä's avatar
      MDEV-23705 Assertion 'table->data_dir_path || !space' · 732cd7fd
      Marko Mäkelä authored
      After DISCARD TABLESPACE, the tablespace of a table will no longer
      exist, and dict_get_and_save_data_dir_path() would invoke
      dict_get_first_path() to read an entry from SYS_DATAFILES.
      For some reason, DISCARD TABLESPACE would not to remove the entry
      from there.
      
      dict_get_and_save_data_dir_path(): If the tablespace has been
      discarded, do not bother trying to read the name.
      
      Side note: The tables SYS_TABLESPACES and SYS_DATAFILES are
      redundant and subject to removal in MDEV-22343.
      732cd7fd
    • Marko Mäkelä's avatar
      Revert "MDEV-23776 Test encryption.create_or_replace fails with a warning" · eb38b1f7
      Marko Mäkelä authored
      This reverts commit e33f7b6f.
      The change seems to have introduced intermittent failures of the test
      encryption.innodb-bad-key-change on many platforms.
      
      The failure that we were trying to address was not reproduced on 10.2.
      It could be related to commit a7dd7c89
      (MDEV-23651) or de942c9f (MDEV-15983)
      or other changes that reduced contention on fil_system.mutex in 10.3.
      
      The fix that we are hereby reverting from 10.2 seems to work fine
      on 10.3 and 10.4.
      eb38b1f7
    • Daniel Black's avatar
      systemd: mariadb@bootstrap - clear ExecStartPre and ExecStartPost · 4c192279
      Daniel Black authored
      This is just to make sure no ExecStartPre/Post actions from the
      multi-instance MariaDB service definition are executed
      when a user attempts to start mariadb@bootstrap.
      
      Fixes: 3723c70a
      4c192279
  5. 21 Sep, 2020 13 commits