1. 13 Oct, 2021 3 commits
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · a736a317
      Marko Mäkelä authored
      a736a317
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 4a7dfda3
      Marko Mäkelä authored
      4a7dfda3
    • Marko Mäkelä's avatar
      MDEV-26811: Assertion "log_sys->n_pending_flushes == 1" fails · 2bb8d7c2
      Marko Mäkelä authored
      In commit 1cb218c3 (MDEV-26450)
      we introduced the function log_write_and_flush(), which may
      compete with log_checkpoint() invoking log_write_flush_to_disk_low()
      from another thread.
      
      The assertion n_pending_flushes==1 is too strict.
      There is no possibility of a race condition here, because
      fil_flush() is protected by fil_system->mutex and the
      rest will be protected by log_sys->mutex.
      
      log_write_flush_to_disk_low(), log_write_and_flush():
      Relax the assertions to test for a nonzero count.
      2bb8d7c2
  2. 12 Oct, 2021 2 commits
  3. 11 Oct, 2021 12 commits
  4. 08 Oct, 2021 2 commits
  5. 07 Oct, 2021 5 commits
  6. 06 Oct, 2021 3 commits
    • Brandon Nesterenko's avatar
      Merge branch '10.2' into 10.3 · 00affc32
      Brandon Nesterenko authored
      00affc32
    • Brandon Nesterenko's avatar
      MDEV-25444: mysql --binary-mode is not able to replay some mysqlbinlog outputs · 1ce35c32
      Brandon Nesterenko authored
      Note: This patch backports commits 10cd2818 and 1755ea4b from 10.3.
      
      10cd2818:
      Problem:- Some binary data is inserted into the table using
      Jconnector. When binlog dump of the data is applied using mysql
      client it gives syntax error.
      
      Reason:-
      After investigating it turns out to be a issue of mysql client not
      able to properly handle  \\0 <0 in binary>. In all binary files
      where mysql client fails to insert
      these 2 bytes are common (0x5c00)
      
      Solution:-
      I have changed mysql.cc to include for the possibility that binary
      string can have \\0 in it
      
      1755ea4b:
      Changes on top of Sachin’s patch. Specifically:
       1) Refined the parsing break condition to only change the parser’s
      behavior for parsing strings in binary mode (behavior of \0 outside
      of strings is unchanged).
       2) Prefixed binary_zero_insert.test with ‘mysql_’ to more clearly
      associate the  purpose of the test.
       3) As the input of the test contains binary zeros (0x5c00),
      different text editors can visualize this sequence differently, and
      Github would not display it at all. Therefore, the input itself was
      consolidated into the test and created out of hex sequences to make
      it easier to understand what is happening.
       4) Extended test to validate that the rows which correspond to the
      INSERTS with 0x5c00 have the correct binary zero data.
      
      Reviewed By:
      ============
      Andrei Elkin <andrei.elkin@mariadb.com>
      1ce35c32
    • mkaruza's avatar
      MDEV-22708 Assertion `!mysql_bin_log.is_open() ||... · a75813d4
      mkaruza authored
      MDEV-22708 Assertion `!mysql_bin_log.is_open() || thd.is_current_stmt_binlog_format_row()' failed in Delayed_insert::handle_inserts and in Diagnostics_area::set_eof_status
      
      Function `upgrade_lock_type` should check global binlog_format variable
      instead of thread one.
      Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
      a75813d4
  7. 05 Oct, 2021 2 commits
    • Brandon Nesterenko's avatar
      MDEV-25444: mysql --binary-mode is not able to replay some mysqlbinlog outputs · 1755ea4b
      Brandon Nesterenko authored
      Changes on top of Sachin’s patch. Specifically:
       1) Refined the parsing break condition to only change the parser’s
      behavior for parsing strings in binary mode (behavior of \0 outside
      of strings is unchanged).
       2) Prefixed binary_zero_insert.test with ‘mysql_’ to more clearly
      associate the  purpose of the test.
       3) As the input of the test contains binary zeros (0x5c00),
      different text editors can visualize this sequence differently, and
      Github would not display it at all. Therefore, the input itself was
      consolidated into the test and created out of hex sequences to make
      it easier to understand what is happening.
       4) Extended test to validate that the rows which correspond to the
      INSERTS with 0x5c00 have the correct binary zero data.
      
      Reviewed By:
      ===========
      Andrei Elkin <andrei.elkin@mariadb.com>
      1755ea4b
    • Sachin Kumar's avatar
      MDEV-25444 mysql --binary-mode is not able to replay some mysqlbinlog outputs · 10cd2818
      Sachin Kumar authored
      Problem:- Some binary data is inserted into the table using Jconnector. When
      binlog dump of the data is applied using mysql cleint it gives syntax error.
      
      Reason:-
      After investigating it turns out to be a issue of mysql client not able to properly
      handle  \\\0 <0 in binary>. In all binary files where mysql client fails to insert
      these 2 bytes are commom (0x5c00)
      
      Solution:-
      I have changed mysql.cc to include for the possibility that binary string can
      have \\\0 in it
      10cd2818
  8. 04 Oct, 2021 3 commits
  9. 03 Oct, 2021 1 commit
  10. 01 Oct, 2021 1 commit
    • mkaruza's avatar
      MDEV-22708 Assertion `!mysql_bin_log.is_open() ||... · 86a2e2ba
      mkaruza authored
      MDEV-22708 Assertion `!mysql_bin_log.is_open() || thd.is_current_stmt_binlog_format_row()' failed in Delayed_insert::handle_inserts and in Diagnostics_area::set_eof_status
      
      Variable wsrep_forced_binlog_format has higher priority than
      binlog_format. In situation where STATEMENT is used and DELAYED INSERT
      is executing we should fall back to non-delay INSERT.
      Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
      86a2e2ba
  11. 30 Sep, 2021 3 commits
    • mkaruza's avatar
      MDEV-25883 Galera Cluster hangs while "DELETE FROM mysql.wsrep_cluster" · 2f5ae0da
      mkaruza authored
      Using `innodb_thread_concurrency` will call `wsrep_thd_is_aborting` to
      check WSREP thread state. This call should be protected by taking
      `LOCK_thd_data` before entering function.
      Applier and TOI threads should no be affected with usage of
      `innodb_thread_concurrency` variable so returning before any checks.
      Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
      2f5ae0da
    • sjaakola's avatar
      MDEV-24978 crash with transaction on table with no PK and long fulltext column · d5a15f04
      sjaakola authored
      If a table has no unique indexes, write set key information will be collected on all columns in the table.
      The write set key information has space only for max 3500 bytes for individual column, and if a varchar colummn of such non-primary key table is longer than
       this limit, currently a crash follows.
      The fix in this commit, is to truncate key values extracted from such long varhar columns to max 3500 bytes.
      This may potentially lead to false positive certification failures for transactions, which operate on separate cluster nodes, and update/insert/delete table rows, which differ only in the part of such long columns after 3500 bytes border.
      Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
      d5a15f04
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 57fdd016
      Marko Mäkelä authored
      57fdd016
  12. 29 Sep, 2021 3 commits