1. 05 Oct, 2021 1 commit
    • Rucha Deodhar's avatar
      MDEV-26611: ERROR_INDEX isn't intuitively clear · d5e606c6
      Rucha Deodhar authored
      Fixup for MDEV-10075
      
      Analysis: ERROR_INDEX implemented in MDEV-10075 was not intuitively clear.
      
      Fix: changed parser to use ROW_NUMBER instead of ERROR_INDEX. Removed
      ERROR_INDEX and ERROR_INDEX_SYM from related files. Changed m_error_index
      to m_row_number.
      d5e606c6
  2. 04 Oct, 2021 1 commit
  3. 01 Oct, 2021 1 commit
    • Daniel Black's avatar
      MDEV-25152: Insert linebreaks in mysqldump --extended-insert · 4930209b
      Daniel Black authored
      Per review by Serg, include start row with new line.
      
      We are hoping we haven't annoyed people that prefered the old
      way.
      
      Adding an option for new lines seems like over-engineering in advance.
      So if there are complaints, let them be known (JIRA), and we'll add
      this under an option.
      
      Test cases updated.
      4930209b
  4. 30 Sep, 2021 7 commits
    • rmfalves's avatar
      MDEV-25152 Insert linebreaks in mysqldump --extended-insert · 586d6a25
      rmfalves authored
      Currently, mysqldump --extended-insert outputs all rows on a single line,
      which makes it difficult to use with various Unix command-line utilities
      such as grep and diff.
      
      We change mysqldump to emit a linebreak between each row, that would make
      it easier to work with, without significantly affecting dump or restore
      performance, or affecting compatibility.
      
      Closes: #1865
      586d6a25
    • Marko Mäkelä's avatar
      Merge 10.6 into 10.7 · b36d6f92
      Marko Mäkelä authored
      b36d6f92
    • 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
  5. 29 Sep, 2021 8 commits
  6. 28 Sep, 2021 5 commits
    • Vladislav Vaintroub's avatar
      MDEV-23306 Fix build dependency · e5a9dcfd
      Vladislav Vaintroub authored
      e5a9dcfd
    • Vicențiu Ciorbaru's avatar
      MTR: loops should divide milliseconds by milliseconds · 27738bd7
      Vicențiu Ciorbaru authored
      timeout is in seconds, sleeptime is in miliseconds. Otherwise we sleep
      for 10 times longer than the timeout.
      27738bd7
    • Marko Mäkelä's avatar
      MDEV-26467: Actually use spinloop on block_lock · e79fa9f5
      Marko Mäkelä authored
      In commit 277ba134
      we accidentally omitted this.
      e79fa9f5
    • Marko Mäkelä's avatar
      MDEV-26467: Universally implement spin loop · d0d4ade9
      Marko Mäkelä authored
      Previously, neither our wrapper of Microsoft Windows SRWLOCK
      nor the futex-less implementation SUX_LOCK_GENERIC supported spin loops.
      
      This was suggested by Vladislav Vaintroub.
      d0d4ade9
    • Marko Mäkelä's avatar
      MDEV-26467: More cache friendliness · 35f59bc4
      Marko Mäkelä authored
      srw_mutex_impl<bool>::wait_and_lock(): In
      commit a73eedbf we introduced
      an std::atomic::fetch_or() in a loop. Alas, on the IA-32 and AMD64,
      that was being translated into a loop around LOCK CMPXCHG.
      To avoid a nested loop, it is better to explicitly invoke
      std::atomic::compare_exchange_weak() in the loop, but only if
      the attempt has a chance to succeed (the HOLDER flag is not set).
      
      It is even more efficient to use LOCK BTS, but contemporary compilers
      fail to translate std::atomic::fetch_or(x) & x into that when x is
      a single-bit constant. On GCC-compatible compilers, we will use
      inline assembler to achieve that.
      
      On other ISA than IA-32 and AMD64, we will continue to use
      std::atomic::fetch_or().
      
      ssux_lock_impl<spinloop>::rd_wait(): Use rd_lock_try().
      A loop around std::atomic::compare_exchange_weak() should be
      cheaper than fetch_add(), fetch_sub() and a wakeup system call.
      
      These deficiencies were pointed out and the use of LOCK BTS was
      suggested by Thiago Macieira.
      35f59bc4
  7. 27 Sep, 2021 7 commits
  8. 24 Sep, 2021 10 commits