1. 12 Oct, 2021 1 commit
  2. 08 Oct, 2021 1 commit
  3. 06 Oct, 2021 4 commits
  4. 05 Oct, 2021 4 commits
  5. 04 Oct, 2021 6 commits
  6. 03 Oct, 2021 2 commits
    • Vladislav Vaintroub's avatar
      Fix MSVC warning with bison 3.8.2 · d28b118d
      Vladislav Vaintroub authored
      d28b118d
    • Marko Mäkelä's avatar
      MDEV-26720: Optimize single-bit atomic operations on IA-32 and AMD64 · 668a5f3d
      Marko Mäkelä authored
      This is mostly working around a bad compiler optimization.
      
      The Intel 80386 processor introduced some bit operations that would be
      the perfect translation for atomic single-bit read-modify-and-write
      operations. Alas, even the latest compilers as of today
      (GCC 11, clang 13, Microsoft Visual C 19.29) would generate a loop around
      LOCK CMPXCHG instead of emitting the instructions
      LOCK BTS (fetch_or()), LOCK BTR (fetch_and()), LOCK BTC (fetch_xor()).
      
      fil_space_t::clear_closing(): Clear the CLOSING flag.
      
      fil_space_t::set_stopping_check(): Special variant of
      fil_space_t::set_stopping() that will return the old value
      of the STOPPING flag after atomically setting it.
      
      fil_space_t::clear_stopping(): Use fetch_sub() to toggle
      the STOPPING flag. The flag is guaranteed to be set upon
      calling this function, hence we will toggle it to clear it.
      On IA-32 and AMD64, this will translate into
      the 80486 LOCK XADD instruction.
      
      fil_space_t::check_pending_operations(): Replace a Boolean
      variable with a goto label, to allow more compact code
      generation for fil_space_t::set_stopping_check().
      
      trx_rseg_t: Define private accessors ref_set() and ref_reset()
      for setting and clearing the flags.
      
      trx_lock_t::clear_deadlock_victim(), trx_lock_t::set_wsrep_victim():
      Accessors for clearing and setting the flags.
      668a5f3d
  7. 02 Oct, 2021 4 commits
  8. 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
  9. 30 Sep, 2021 7 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.5 into 10.6 · a49e3943
      Marko Mäkelä authored
      a49e3943
    • Marko Mäkelä's avatar
      MDEV-25215 Excessive logging "InnoDB: Cannot close file" · be803f03
      Marko Mäkelä authored
      In commit 45ed9dd9 (MDEV-23855)
      when removing fil_system.LRU we failed to rate-limit the output
      for reporting violations of innodb_open_files or open_files_limit.
      
      If the server is run with a small limit of open files that is
      well below the number of .ibd files that are being accessed by
      the workload, and if at the same time innodb_log_file_size is
      very small so that log checkpoints will occur frequently,
      the process of enforcing the open files limit may be run very often.
      
      fil_space_t::try_to_close(): Display at most one message per call,
      and only if at least 5 seconds have elapsed since the last time a
      message was output.
      
      fil_node_open_file(): Only output a summary message if
      fil_space_t::try_to_close() displayed a message during this run.
      (Note: multiple threads may execute fil_node_open_file() on
      different files at the same time.)
      
      fil_space_t::get(): Do not dereference a null pointer if n & STOPPING.
      This was caught by the test case below.
      
      Unfortunately, it is not possible to create a fully deterministic
      test case (expecting exactly 1 message to be emitted). The following with
      --innodb-open-files=10 --innodb-log-file-size=4m
      would occasionally fail to find the message in the log:
      
      --source include/have_innodb.inc
      --source include/have_partition.inc
      --source include/have_sequence.inc
      
      call mtr.add_suppression("InnoDB: innodb_open_files=10 is exceeded");
      
      CREATE TABLE t1 (pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB
      PARTITION BY key (pk) PARTITIONS 100;
      
      INSERT INTO t1 SELECT * FROM seq_1_to_100;
      --disable_query_log
      let $n=400;
      while ($n)
      {
      BEGIN; DELETE FROM t1; ROLLBACK;
      dec $n;
      }
      --enable_query_log
      
      let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
      let SEARCH_PATTERN= \[Note\] InnoDB: Cannot close file;
      -- source include/search_pattern_in_file.inc
      
      DROP TABLE t1;
      be803f03
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 064cb58e
      Marko Mäkelä authored
      FIXME: Part of the MDEV-20699 test is disabled due to
      nonderterministic result.
      064cb58e
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 57fdd016
      Marko Mäkelä authored
      57fdd016
    • Otto Kekäläinen's avatar
      Misc improvements to the Gitlab-CI pipeline for MariaDB · 260649de
      Otto Kekäläinen authored
      - Add new Ninja and Clang build jobs. This helps to ensure those
        toolchains also work in addition to default CMake/gcc.
      
      - Generate dependencies.dot/png to illustrate the CMake/Make/Ninja
        build dependencies. Viewing this image and identifying bottle necks
        in parallelism can help make the build run faster.
      
      - Enable CUnit tests now as they are fixed on 10.6 (MDEV-25820).
      
      - Limit parallel builds to 2 CPUs (full parallelism needs MDEV-25968) on
        CMake/Make. Now only the Ninja builds run full parallel builds as only
        Ninja is smart enough to prevent builds failing on resource
        over-consumption.
      
      - Enable Gitlab-CI cache for job 'centos8' for ccache so that it builds
        faster. Don't use Gitlab-CI cache for other jobs, as it would too easily
        use up all free tier storage on Gitlab.com and force users to get a paid
        account just for MariaDB builds.
      
      - On other jobs clean away ccache, as it only had a 5% hit rate on single
        builds with no downloaded cache.
      
      - Dump full database contents during the test install so that one can
        use diff to compare the database contents at different stages and thus
        track/debug potential bugs in mariadb-install-db and mariadb-upgrade
        code.
      
      Bugfixes:
      
      - Zero out ccache stats before each run so that 'ccache -s' would actually
        show the stats for the latest run.
      260649de
  10. 29 Sep, 2021 8 commits
  11. 28 Sep, 2021 2 commits