1. 23 Aug, 2022 9 commits
  2. 22 Aug, 2022 10 commits
  3. 19 Aug, 2022 4 commits
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-29250 InnoDB: Failing assertion: table->get_ref_count() == 0 · 7624bf86
      Thirunarayanan Balathandayuthapani authored
      Reason:
      ======
       This issue is caused by race condition between fulltext DDL and
      purge thread. DDL sets the signal to stop the purge thread to
      process the new undo log records and wait for the ongoing
      processed FTS table undo log records to finish.
      
      But in dict_acquire_mdl_shared(),InnoDB release all innodb
      table related locks before acquiring the mdl. At the same time,
      DDL assumes that there are no purge threads working on fts table.
      
      There is a possiblity that purge thread can skip processing the
      valid undo log records if it checks purge_sys.must_wait_FTS() twice
      in different places.
      
      Solution:
      ==========
      
      Add the purge_sys.must_wait_FTS() check in dict_acquire_mdl_shared()
      to avoid the purge thread processing undo log records.
      
      dict_open_table_on_id(): return -1 if the purge thread has to
      wait
      
      dict_acquire_mdl_shared(): Added 1 new parameters to indicate that
      purge thread invoking the function, return -1  if the purge
      thread has to wait.
      7624bf86
    • Marko Mäkelä's avatar
      75c416d3
    • Marko Mäkelä's avatar
      c2df3d30
    • Marko Mäkelä's avatar
      MDEV-29043 mariabackup --compress hangs · a1055ab3
      Marko Mäkelä authored
      Even though commit b817afaa passed
      the test mariabackup.compress_qpress, that test turned out to be
      too small to reveal one more problem that had previously been prevented
      by the existence of ctrl_mutex. I did not realize that there can be
      multiple concurrent callers to compress_write(). One of them is the
      log copying thread; further callers are data file copying threads
      (default: --parallel=1).
      
      By default, there is only one compression worker thread
      (--compress-threads=1).
      
      compress_write(): Fix a race condition between threads that would
      use the same worker thread object. Make thd->data_avail contain the
      thread identifier of the submitter, and add thd->avail_cond to
      notify other compress_write() threads that are waiting for a slot.
      a1055ab3
  4. 18 Aug, 2022 1 commit
    • Marko Mäkelä's avatar
      MDEV-29321 Percona XtraDB 5.7 can't be upgrade to MariaDB 10.6 or above · ec379066
      Marko Mäkelä authored
      In MySQL 5.7, rollback segments 1 to 32 are used for temporary tables,
      which is an unnecessary file format change from MySQL 5.6.
      This format change was avoided in MariaDB Server by
      commit 124bae08 (MDEV-12289).
      
      An upgrade from MySQL 5.7 would crash due to dereferencing a null pointer,
      which is a regression due to
      commit 0b47c126 (MDEV-13542).
      
      trx_rseg_t::get(): Return nullptr if no tablespace exists. This is where
      the upgrade would crash.
      
      trx_rseg_mem_restore(): Return DB_TABLESPACE_NOT_FOUND if the
      undo tablespace does not exist. This is likely dead code.
      ec379066
  5. 17 Aug, 2022 1 commit
  6. 16 Aug, 2022 2 commits
  7. 15 Aug, 2022 10 commits
  8. 13 Aug, 2022 1 commit
    • qggcs's avatar
      MDEV-29264: JSON function overflow error based on LONGTEXT field · 82017511
      qggcs authored
      Analysis: The JSON functions(JSON_ARRAY[OBJECT|ARRAY_APPEND|ARRAY_INSERT|INSERT|SET|REPLACE]) result is truncated when the function is called based on LONGTEXT field. The overflow occurs when computing the result length due to the LONGTEXT max length is same as uint32 max length. It lead to wrong result length.
      Fix: Add static_cast<ulonglong> to avoid uint32 overflow and fix the arguments used.
      82017511
  9. 11 Aug, 2022 1 commit
  10. 10 Aug, 2022 1 commit
    • Addison G's avatar
      MDEV-29222 - Fix mysqld_safe script · b8f6d315
      Addison G authored
      The mysqld_safe script was using bad grep options.
      
      The line that was fixed was likely meant to be 2 separate grep commands,
      piped into each other, with each one removing any lines that matched.
      
      The `-E` option was unneeded, as the command is not using regex.
      b8f6d315