1. 27 Jun, 2022 6 commits
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · ea847cbe
      Marko Mäkelä authored
      ea847cbe
    • Marko Mäkelä's avatar
      Fix GCC -Og -Wmaybe-uninitialized · 03174cab
      Marko Mäkelä authored
      03174cab
    • Marko Mäkelä's avatar
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 01d75703
      Marko Mäkelä authored
      01d75703
    • Marko Mäkelä's avatar
      MDEV-28389: Simplify the InnoDB corrupted page output · c86b1389
      Marko Mäkelä authored
      buf_page_print(): Dump the buffer page 32 bytes (64 hexadecimal digits)
      per line. In this way, the limitation in mtr
      ("Data too long for column 'line'") will not be triggered.
      
      Also, do not bother decoding the page contents, because everything
      is present in the hexadecimal output.
      
      dict_index_find_on_id_low(): Merge to dict_index_get_if_in_cache_low().
      The direct call in buf_page_print() was prone to crashing, in case the
      table definition was concurrently evicted or dropped from the
      data dictionary cache.
      c86b1389
    • Hirokazu Hata's avatar
      MDEV-28854 Disallow INSERT DELAYED on Spider table · 2c1aaa66
      Hirokazu Hata authored
      Spider supports (or at least allows) INSERT DELAYED but the
      documentation does not specify spider as a storage engine that supports
      "INSERT DELAYED".
      Also, although not mentioned in the documentation, "INSERT DELAYED" is
      not intended to be executed inside a transaction, as can be seen from
      the list of supported storage engines.
      The current implementation allows executing a delayed insert on a
      remote transactional table and this breaks the consistency ensured by
      the transaction.
      
      We too remove "internal_delayed", one of the Spider table parameters.
      Documentation says,
      
      > Whether to transmit existence of delay to remote servers when
      > executing an INSERT DELAYED statement on local server.
      
      This table parameter is only used for "INSERT DELAYED".
      
      Reviewed by: Nayuta Yanagisawa
      2c1aaa66
  2. 24 Jun, 2022 1 commit
  3. 23 Jun, 2022 1 commit
  4. 21 Jun, 2022 2 commits
  5. 20 Jun, 2022 1 commit
  6. 18 Jun, 2022 2 commits
    • Daniel Black's avatar
      MDEV-28884: include kernel information in crashing signal handler · d4539426
      Daniel Black authored
      Recent adventures in liburing and btrfs have shown up some kernel
      version dependent bugs. Having a bug report of accurace kernel version
      can start to correlate these errors sooner.
      
      On Linux, /proc/version contains the kernel version.
      
      FreeBSD has kern.version (per man 8 sysctl), so include that too.
      
      Example output:
      
      Max nice priority         0                    0
      Max realtime priority     0                    0
      Max realtime timeout      unlimited            unlimited            us
      Core pattern: |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h
      
      Kernel version: Linux version 5.19.0-0.rc2.21.fc37.x86_64 (mockbuild@bkernel01.iad2.fedoraproject.org) (gcc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1), GNU ld version 2.38-14.fc37) #1 SMP PREEMPT_DYNAMIC Mon Jun 13 15:27:24 UTC 2022
      
      Segmentation fault (core dumped)
      d4539426
    • Sergei Golubchik's avatar
      remove invalid test · f299351e
      Sergei Golubchik authored
      it starts an EXPLAIN of a multi-table join and tries to KILL it.
      no sync points.
      depending on how fast the hareware is and optimizer development
      it might kill EXPLAIN at some random point in time (generally unrelated
      to the Bug#28598 it was supposed to test) or EXPLAIN might finish
      before the KILL and the test will fail.
      f299351e
  7. 17 Jun, 2022 2 commits
  8. 16 Jun, 2022 1 commit
    • Shunsuke Tokunaga's avatar
      MDEV-21027 Assertion `part_share->auto_inc_initialized ||... · c4f65d8f
      Shunsuke Tokunaga authored
      MDEV-21027 Assertion `part_share->auto_inc_initialized || !can_use_for_auto_inc_init()' failed in ha_partition::set_auto_increment_if_higher
      
      ha_partition::set_auto_increment_if_higher expects
      part_share->auto_inc_initialized is true or can_use_for_auto_inc_init()
      is false (but as the comment of this method says, it returns false
      only if we use Spider engine with DROP TABLE or ALTER TABLE query).
      However, part_share->auto_inc_initialized becomes true only after all
      partitions are opened (since 6dce6aec).
      
      Therefore, I added a conditional expression in order to read all
      partitions when we execute REPLACE on a table that has an
      AUTO_INCREMENT column.           
      
      Reviewed by: Nayuta Yanagisawa
      Reviewed by: Alexey Botchkov
      c4f65d8f
  9. 15 Jun, 2022 4 commits
  10. 14 Jun, 2022 3 commits
    • Julius Goryavsky's avatar
    • Marko Mäkelä's avatar
      MDEV-28828 SIGSEGV in buf_flush_LRU_list_batch · 4849d94f
      Marko Mäkelä authored
      In commit 73fee39e (MDEV-27985)
      a regression was introduced that would cause bpage=nullptr to
      be referenced.
      
      buf_flush_LRU_list_batch(): Always terminate the loop upon
      encountering a null pointer.
      4849d94f
    • Tuukka Pasanen's avatar
      MDEV-28628: Change current Debian package revision scheme · c168e167
      Tuukka Pasanen authored
      Current Debian package revision scheme when using
      debian/autobake-deb.sh script is:
        '1:VERSION+maria~LSBNAME'
      
      For example if VERSION can be like 10.6.8 and LSBNAME is
      buster then version and revision is:
        '1:10.6.8+maria~buster'
      Which can lead to problem as distro code names can be lexical unordered.
      
      For example Debian LSBNAME's can be:
        Codename Buster is Debian version 10
        Codename Bookworm is Debian version 11
      
      This happens because in ASCII table
      Buster first two digits are 'Bu' and they are in hex 0x42 and 0x75
      and Bookworm first digits 'Bo' are they are in hex 0x42 and 0x6F
      When apt is upgrading it  means that:
        1:10.6.8+maria~buster is bigger than 1:10.6.8+maria~bookworm
      and that leads to problems in dist-upgrade process
      
      To solve problem revision format is changed to:
        '1:VERSION+maria~(deb|ubu)LSBVERSION'
      
      Example for Debian 11 is now:
        1:10.6.8+maria~deb11
      
      and for Ubuntu 22.04 is now:
        1:10.6.8+maria~ubu2204
      
      There are new Variables
       * VERSION which contains whole version string
       * LSBVERSION which contains LSB version of distro
       * LSBID which contains LSB ID (Debian or Ubuntu)
      added to debian/autobake-deb.sh.
      
      Also CODENAME is change to LSBNAME as it's more declaritive
      c168e167
  11. 13 Jun, 2022 3 commits
    • Nayuta Yanagisawa's avatar
      MDEV-26127 Assertion `err != DB_DUPLICATE_KEY' failed or InnoDB: Failing... · 06e9ce79
      Nayuta Yanagisawa authored
      MDEV-26127 Assertion `err != DB_DUPLICATE_KEY' failed or InnoDB: Failing assertion: id != 0 on ALTER ... REBUILD PARTITION
      
      During rebuild of partition, the partitioning engine calls
      alter_close_table(), which does not unlock and close some table
      instances of the target table.
      Then, the engine fails to rename partitions because there are table
      instances that are still locked.
      
      Closing all the table instance of the target table fixes the bug.
      06e9ce79
    • Nayuta Yanagisawa's avatar
      MDEV-26127 Assertion `err != DB_DUPLICATE_KEY' failed or InnoDB: Failing... · e077ce2a
      Nayuta Yanagisawa authored
      MDEV-26127 Assertion `err != DB_DUPLICATE_KEY' failed or InnoDB: Failing assertion: id != 0 on ALTER ... REBUILD PARTITION
      
      During rebuild of partition, the partitioning engine calls
      alter_close_table(), which does not unlock and close some table
      instances of the target table.
      Then, the engine fails to rename partitions because there are table
      instances that are still locked.
      
      Closing all the table instance of the target table fixes the bug.
      e077ce2a
    • Tuukka Pasanen's avatar
      MDEV-28642: Suspend obvious false-positive Lintian warnings · d4760d8c
      Tuukka Pasanen authored
      MariaDB codebase is huge and Lintian has lots of test than
      can fire false-positive warnings which leads to situation
      where real problems can't be spotted.
      
      Suspend obvious false-positive Lintian warnings and
      let Lintian problems that needs some love shine
      out.
      
      Suspends in package mariadb-test-data
      
      Supporting BSD family needs to use '/usr/bin/env perl' and not '/usr/bin/perl'
      Perl script are for testing and not for production in mariadb-test-data
      package:
       * incorrect-path-for-interpreter
      
      There is several files with national-encoding which are test file so they
      can't be in unicode charset
       * national-encoding
      
      Serveral test paths are intentionally repeated:
       * repeated-path-segment
      
      Suspends in package mariadb-test
      
      Supporting BSD family needs to use '/usr/bin/env perl' and not '/usr/bin/perl'
      Perl script are for testing and not for production in mariadb-test-data
      package:
       * incorrect-path-for-interpreter
      
      Suspends in package source package
      
      Remade some 'version-substvar-for-external-package' to use
      regex.
      
      MGroonga is missing source file 'jquery-ui-1.8.18.custom.js' correct
      lintian suspend with regex:
       * source-is-missing
      
      There is several files with very long line lenghts. Add suspends
      for those that can't be corrected in several places. Most
      of them are test result files, SQL test files or intentional
      long lines that can't be splitted.
        * very-long-line-length-in-source-file
      
      There is several autogenerated C++ files which probably should not
      be there but they should not do any harm:
       * source-contains-autogenerated-visual-c++-file
      d4760d8c
  12. 10 Jun, 2022 2 commits
    • Mathew Heard's avatar
      MDEV-27766: connect engine; INSERT ignore option, was ignored · b59bc629
      Mathew Heard authored
      Test prior to this change:
      
      CURRENT_TEST: connect.mysql
      mysqltest: At line 485: query 'INSERT IGNORE INTO t3 VALUES (5),(10),(30)' failed: ER_GET_ERRMSG (1296): Got error 122 '(1062) Duplicate entry '10' for key 'PRIMARY' [INSERT INTO `t1` (`a`) VALUES (10)]' from CONNECT
      
      So the ignore table option wasn't getting passed to the remove server.
      Closes #2008
      b59bc629
    • Tuukka Pasanen's avatar
      MDEV-28666: Add correct 'Breaks' to make sure upgrade from 10.2 succeeds · ace2e030
      Tuukka Pasanen authored
      File '/usr/bin/mariadb_config' has been moved from Debian package
      libmariadbd-dev to libmariadb-dev since MariaDB version 10.2
      this leads to situation where upgrade will no succeed but fail
      with this kind of error message
      
       * trying to overwrite '/usr/bin/mariadb_config', which is also in package libmariadbd-dev 1:10.2.44+maria~bionic
      
      Add libmariadbd-dev to libmariadb-dev Debian control files
      'Breaks' solve situation and upgrading won't error anymore
      ace2e030
  13. 09 Jun, 2022 5 commits
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · a9d0bb12
      Marko Mäkelä authored
      a9d0bb12
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · c89e3b70
      Marko Mäkelä authored
      c89e3b70
    • Marko Mäkelä's avatar
      MDEV-28779: ALTER TABLE IMPORT TABLESPACE corrupts an encrypted table · 98293130
      Marko Mäkelä authored
      PageConverter::update_header(): Remove an unnecessary write.
      The field that was originally called FIL_PAGE_FILE_FLUSH_LSN only
      made sense for the first page of the system tablespace
      (initially, for the first page of each file of the system tablespace).
      It never had any meaning for .ibd files, and it lost its original
      meaning in MariaDB Server 10.8.1 when
      commit b07920b6 (MDEV-27199)
      removed the ability to start without ib_logfile0.
      
      If the most significant 32 bits of the LSN are nonzero, this
      unnecessary write would write the wrong encryption key identifier
      to the page. The first page of any file is never encrypted,
      so normally those bytes should be 0 for any .ibd file.
      98293130
    • Daniel Lewart's avatar
      MDEV-25577 mariadb-tzinfo-to-sql generates superfluous warnings · 2cd1edfc
      Daniel Lewart authored
      The zoneinfo directory is littered with non-timezone information files.
      
      These frequently contain extensions, not present in real timezone files.
      
      Alo leapseconds is frequently there and is not a timezone file.
      2cd1edfc
    • GuiXiaoDi's avatar
      mysql.server.sh fix for non-Red Hat platforms · 9c207c88
      GuiXiaoDi authored
      The else condition is meant to be here to define the functions
      if the Red Hat include file isn't there.
      
      Fixes: commit 467011bc / MDEV-26614
      
      RedHat -> Red Hat by Daniel Black
      9c207c88
  14. 08 Jun, 2022 5 commits
    • Tingyao Nian's avatar
      MDEV-22023 Update man page NAME section to say MariaDB instead of MySQL · 41456181
      Tingyao Nian authored
      Continue the effort of a previous commit (PR#2114) which changed the man
      pages titles from MariaDB to MySQL, to further update the man pages.
      
      Update the man page NAME sections to use mariadb-* instead of mysql* for
      MariaDB binaries that are drop-in replacements for MySQL equivalents,
      indicating that the commands are actually of the MariaDB version.
      
      Before:
          NAME
              mysql_upgrade - check tables for MariaDB upgrade
          ...
      
      After:
          NAME
              mariadb-upgrade - check tables for MariaDB upgrade (mysql_upgrade
              is now a symlink to mariadb-upgrade)
          ...
      
      All new code of the whole pull request, including one or several files
      that are either new files or modified ones, are contributed under the
      BSD-new license. I am contributing on behalf of my employer Amazon Web
      Services, Inc.
      41456181
    • Oleg Smirnov's avatar
      MDEV-28747 Index condition pushdown may be configured incorrectly · 5efadf8d
      Oleg Smirnov authored
      ha_innobase::build_template may initialize m_prebuilt->idx_cond
      even if there is no valid pushed_idx_cond_keyno.
      This potentially problematic piece of code was found while
      working on MDEV-27366
      5efadf8d
    • Marko Mäkelä's avatar
      Cleanup: Remove unused error code DB_FORCED_ABORT · 44ab6cba
      Marko Mäkelä authored
      MariaDB never supported this form of preemption via high-priority
      transactions. This error code shold not have been added in the
      first place, in commit 2e814d47.
      44ab6cba
    • Daniel Black's avatar
      MDEV-28243: AIX missing my_gethwaddr implementation · e8b0894d
      Daniel Black authored
      and failing spider partition test.
      
      With some small datatype changes to the Linux/Solaris my_gethwaddr implementation
      the hardware address of AIX can be returned. This is an important aspect
      in Spider (and UUID).
      
      Spider test change reviewed by Nayuta Yanagisawa.
      
      my_gethwaddr review by Monty in #2081
      e8b0894d
    • chansuke's avatar
      MDEV-25273: fix typo (s/strucures/structures/) · 960f0344
      chansuke authored
      960f0344
  15. 07 Jun, 2022 2 commits