1. 23 Jan, 2023 2 commits
    • Andrei's avatar
      MDEV-30423 Deadlock on Replica during BACKUP STAGE BLOCK_COMMIT on XA transactions · dc646c23
      Andrei authored
      The user XA commit execution branch was caught not have been covered
      with MDEV-21953 fixes.
      
      The XA involved deadlock is resolved now to apply the former fixes
      pattern.
      Along the fixes the following changes have been implemented.
      - MDL lock attribute correction
      - dissociation of the externally completed XA from the current
        thread's xid_state in the error branches
      - cleanup_context() preseves the prepared XA
      - wait_for_prior_commit() is relocated to satisfy both
        the binlog ON (log-slave-updates and skip-log-bin)
        and OFF slave execution branches.
      dc646c23
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-30438 innodb.undo_truncate,4k fails when innodb-immediate-scrub-data-uncompressed is enabled · 647a7232
      Thirunarayanan Balathandayuthapani authored
      - InnoDB fails to clear the freed ranges during truncation of innodb
      undo log tablespace. During shutdown, InnoDB flushes the freed page
      ranges and throws the out of bound error.
      
      mtr_t::commit_shrink(): clear the freed ranges while doing undo
      tablespace truncation
      647a7232
  2. 20 Jan, 2023 2 commits
  3. 19 Jan, 2023 1 commit
  4. 18 Jan, 2023 4 commits
  5. 17 Jan, 2023 10 commits
  6. 16 Jan, 2023 1 commit
  7. 15 Jan, 2023 1 commit
  8. 14 Jan, 2023 2 commits
  9. 13 Jan, 2023 8 commits
    • Monty's avatar
      MDEV-30395 Wrong result with semijoin and Federated as outer table · 981a6b70
      Monty authored
      The problem was that federated engine does not support comparable rowids
      which was not taken into account by semijoin code.
      
      Fixed by checking that we don't use semijoin with tables that does not
      support comparable rowids.
      
      Other things:
      - Fixed some typos in the code comments
      981a6b70
    • Monty's avatar
      MDEV-30080 Wrong result with LEFT JOINs involving constant tables · 0595dd0f
      Monty authored
      The reason things fails in 10.5 and above is that test_quick_select()
      returns -1 (impossible range) for empty tables if there are any
      conditions attached.
      
      This didn't happen in 10.4 as the cost for a range was more than for
      a table scan with 0 rows and get_key_scan_params() did not create any
      range plans and thus did not mark the range as impossible.
      
      The code that checked the 'impossible range' conditions did not take
      into account all cases of LEFT JOIN usage.
      
      Adding an extra check if the table is used with an ON condition in case
      of 'impossible range' fixes the issue.
      0595dd0f
    • sjaakola's avatar
      10.4-MDEV-29684 Fixes for cluster wide write conflict resolving · 0ff7f33c
      sjaakola authored
      The rather recent thd_need_ordering_with() function does not take
      high priority transactions' order in consideration. Chaged this
      funtion to compare also transaction seqnos and favor earlier transaction.
      Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
      0ff7f33c
    • sjaakola's avatar
      MDEV-29512 deadlock between commit monitor and THD::LOCK_thd_data mutex · 68cfcf9c
      sjaakola authored
      This commit contains only a mtr test for reproducing the issue in MDEV-29512
      The actual fix will be pushed in wsrep-lib repository
      
      The hanging in MDEV-29512 happens when binlog purging is attempted, and there is
      one local BF aborted transaction waiting for commit monitor.
      
      The test will launch two node cluster and enable binlogging with expire log days,
      to force binlog purging to happen.
      A local transaction is executed so that will become BF abort victim, and has advanced
      to replication stage waiting for commit monitor for final cleanup (to mark position in innodb)
      after that, applier is released to complete the BF abort and due to binlog configuration,
      starting the binlog purging. This is where the hanging would occur, if code is buggy
      Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
      68cfcf9c
    • sjaakola's avatar
      MDEV-30317 Transaction savepoint may cause failure in galera replaying · cd97523d
      sjaakola authored
      Created mtr test for reproducing the crash
      
      Developed actual fix for the issue.
      Setting THD::system_thread_info.rpl_sql_info for replayer thread,
      same way as it is handled for appliers.
      
      Recorded test result, with the fix
      Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
      cd97523d
    • sjaakola's avatar
      MDEV-29684 Fixes for cluster wide write conflict resolving · 66c05326
      sjaakola authored
      Cluster conflict victim's THD is marked with wsrep_aborter.
      THD::wsrep_aorter holds the thread ID of the hight priority tread,
      which is currently carrying out BF aborting for this victim.
      
      However, the BF abort operation is not always successful,
      and in such case the wsrep_aborter mark should be removed.
      In the old code, this wsrep_aborter resetting did not happen,
      and this could lead to a situation where the sticky wsrep_aborter
      mark prevents any further attempt to BF abort this transaction.
      
      This commit fixes this issue, and resets wsrep_aborter after
      unsuccesful BF abort attempt.
      Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
      66c05326
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 73ecab3d
      Marko Mäkelä authored
      73ecab3d
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 71e8e493
      Marko Mäkelä authored
      71e8e493
  10. 12 Jan, 2023 5 commits
  11. 11 Jan, 2023 4 commits
    • Monty's avatar
      MDEV-30345 DML does not find rows it is supposed to · f3d8a546
      Monty authored
      This only happens with 'timestamp_column IN (select ...)
      
      The reason was a missing assignment in Item_cache_timestamp::cache_value()
      f3d8a546
    • Brandon Nesterenko's avatar
      MDEV-25277: mysqlbinlog --verbose cannot read row events with compressed... · b194c83b
      Brandon Nesterenko authored
      MDEV-25277: mysqlbinlog --verbose cannot read row events with compressed columns: Don't know how to handle column type: 140
      
      Problem:
      =======
      Mysqlbinlog cannot show the type of a compressed
      column when two levels of verbosity is provided.
      
      Solution:
      ========
      Extend the log event printing logic to handle and
      tag compressed types.
      
      Behavioral Changes:
      ==================
        Old: When mysqlbinlog is called in verbose mode and
      the database uses compressed columns, an error is
      returned to the user.
      
        New: The output will append “ COMPRESSED” on the
      type of compressed columns
      
      Reviewed By
      ===========
      Andrei Elkin <andrei.elkin@mariadb.com>
      b194c83b
    • Monty's avatar
      MDEV-30373 Wrong result with range access · 7d1df207
      Monty authored
      This issue was caused by the bug fix for
      MDEV-30325 Wrong result upon range query using index condition
      
      The bug could happen in the case of several overlapping key ranges
      with OR
      7d1df207
    • Julius Goryavsky's avatar
      MDEV-30220: rsync SST completely ignores aria-log-dir-path · 53c4be7b
      Julius Goryavsky authored
      This commit adds support for the --aria-log-dir-path
      option on the command line and for the aria-log-dir-path
      option in the configuration file to the SST scripts, since
      before this change these parameters were completely ignored
      during SST - SST scripts assumed that aria logs files are
      always located in the same directory as logs for innodb.
      
      Tests for this change will be added as a separate commit,
      along with tests for MDEV-30157 and MDEV-28669.
      53c4be7b