1. 15 Apr, 2022 2 commits
  2. 12 Apr, 2022 1 commit
    • Alexander Barkov's avatar
      MDEV-26128 type_set and type_enum are broken · e41500e4
      Alexander Barkov authored
      The problem was not with the server behavior,
      it was with wrong test results recorded.
      
      Enabling both type_set and type_enum.
      
      type_set.result was OK. The test did not fail.
      
      type_enum.result was incorrectly recorded in this commit:
        eb483c51
      
      Recording correct results.
      e41500e4
  3. 11 Apr, 2022 1 commit
  4. 10 Apr, 2022 1 commit
  5. 09 Apr, 2022 1 commit
  6. 08 Apr, 2022 1 commit
    • Nayuta Yanagisawa's avatar
      MDEV-27239 Spider: Assertion `thd->transaction->stmt.ha_list == __null ||... · d8463b64
      Nayuta Yanagisawa authored
      MDEV-27239 Spider: Assertion `thd->transaction->stmt.ha_list == __null || trans == &thd->transaction->stmt' failed in ha_commit_trans on BEGIN WORK after FTWRL
      
      The check on the SQL command type, in ha_spider::external_lock() is deleted
      by e954d9de. This resulted in the wrong call of spider_internal_start_trx()
      (and thus Ha_trx_info::register_ha()).
      
      I reverted the check and refactored ha_spider::external_lock().
      d8463b64
  7. 07 Apr, 2022 8 commits
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 6645b1d2
      Marko Mäkelä authored
      6645b1d2
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 7b957316
      Marko Mäkelä authored
      7b957316
    • Daniel Black's avatar
      deb: make --output-sync=target · dea4e178
      Daniel Black authored
      Rather than Debian logs containing a barely decipherable mix
      of build command and the output of some other command, we
      use the make option --output-sync=target. This make the compile
      line and the output stay together in the output stream.
      
      This option exists even in the make version in debian;stretch
      so should work everywhere.
      
      Test on debian:stretch, ubuntu:18.04, the two lowest version that
      use the debian/rules.
      dea4e178
    • Daniel Black's avatar
      MDEV-28153: Debian autobake to generate control · 8990ffe6
      Daniel Black authored
      Without doing the full build.
      
      Autobake now includes a dependency on lsb-release.
      
      As the BB CI images
      (https://github.com/MariaDB/mariadb.org-tools/blob/master/buildbot.mariadb.org/ci_build_images/debian.Dockerfile)
      have explicit dependencies, there's no point maintaining them in
      two places. We don't want do the full autobake-deb.sh there, just enough
      to have the control file containing the correct dependencies.
      
      Helps: https://github.com/MariaDB/mariadb.org-tools/pull/130
      8990ffe6
    • Jan Lindström's avatar
      MDEV-28247 : Disable background ibuf merge during Galera SST · 3c99a48d
      Jan Lindström authored
      This failure was caused by MDEV-25975, which removed the parameter
      innodb_disallow_writes.
      
      Added a check for wsrep_sst_disable_writes to the function
      ibuf_merge_in_background().
      3c99a48d
    • Daniel Black's avatar
      MDEV-28250 aix test case failure innodb_zip.innochecksum_3,4k,crc32,innodb · 4ee00a29
      Daniel Black authored
      As discovered by tracing, but also presenting in AIX fseeko
      documentation, seeking beyond the EOF is acceptable, as you can write
      there.
      
      To display the same error in AIX to other implementations that return
      errors on seek, we take the EFBIG error code on reading and error the
      same way.
      
      An AIX truss of an aspect of the test:
      
      truss extra/innochecksum --page=18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd
      
        statx("./mysql-test/var/log/innodb_zip.innochecksum_3-4k,crc32,innodb/mysqld.1/data//test/tab1.ibd", 0x0FFFFFFFFFFFF610, 176, 010) = 0
        kopen("./mysql-test/var/log/innodb_zip.innochecksum_3-4k,crc32,innodb/mysqld.1/data//test/tab1.ibd", O_RDONLY|O_LARGEFILE) = 3
        kfcntl(3, 12, 0x00000001100006C8)               = 0
        kfcntl(3, F_GETFL, 0x00000001100A6CF8)          = 67108864
        kioctl(3, 22528, 0x0000000000000000, 0x0000000000000000) Err#25 ENOTTY
        klseek(3, 0, 1, 0x0FFFFFFFFFFFF3F0)             = 0
        kioctl(3, 22528, 0x0000000000000000, 0x0000000000000000) Err#25 ENOTTY
        kread(3, "DEADBEEF\0\0\0\0FFFFFFFF".., 4096)    = 4096
        klseek(3, 0, 1, 0x0FFFFFFFFFFFF450)             = 0
        klseek(3, 17592186040320, 0, 0x0FFFFFFFFFFFF450) = 0
        klseek(3, 0, 1, 0x0FFFFFFFFFFFF3F0)             = 0
        kread(3, "DEADBEEF\0\0\0\0FFFFFFFF".., 4096)    Err#27 EFBIG
      
      An equivalent Linux trace:
      
      ltrace extra/innochecksum --page=18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd
      
        stat64(0x7fff10ea2dc3, 0x7fff10ea0670, 88, 0x8026be41)         = 0
        open64("./mysql-test/var/log/innodb_zip."..., 0, 02072403160)  = 3
        fcntl64(3, 6, 0x139f180, 1)                                    = 0
        fgetpos64(0x615000000080, 0x7fff10ea0760, 1, 0)                = 0
        fseeko64(0x615000000080, 0xffffffff000, 0, 5 <unfinished ...>
        pthread_getspecific(0, 0x4d0eb8, 0x7fff10ea0490, 0)            = 0x7f7b2806d000
        <... fseeko64 resumed> )                                       = 0
        fgetpos64(0x615000000080, 0x7fff10ea0760, 1, 1)                = 0
        feof(0x615000000080)                                           = 0
        feof(0x615000000080)                                           = 1
        Error: Unable to seek to necessary offset
      4ee00a29
    • Daniel Black's avatar
      e84e134a
    • Alexander Barkov's avatar
  8. 06 Apr, 2022 10 commits
  9. 05 Apr, 2022 4 commits
  10. 04 Apr, 2022 7 commits
    • Monty's avatar
      Fixed that mysql_upgrade doesn't give errors about mariadb.sys · c4ebb2bd
      Monty authored
      The reason for this fix was that when I tried to run mysql_upgrade
      at home to update an old 10.5 installation, mysql_upgrade failed
      with warnings about mariadb.sys user not existing.
      
      If the server was started with --skip-grants, there would be no warnings
      from mysql_upgrade, but in some cases running mysql_upgrade again could
      produce new warnings.
      
      The reason for the warnings was that any access of the mysql.user view
      will produce a warning if the mariadb.sys user does not exists.
      
      Fixed with the following changes:
      - Disable warnings about mariadb.sys user not existing
      - Don't overwrite old mariadb.sys entries in tables_priv and global_priv
      - Ensure that tables_priv has an entry for mariadb.sys if the user exists.
        This fixes an issue that tables_priv would not be updated if there
        was a failure directly after global_priv was updated.
      c4ebb2bd
    • Monty's avatar
      Fixed double free issue in events · 09c7f78c
      Monty authored
      Server crashed during shutdown with:
      "corrupted double-linked list"
      when running mysql_upgrade multiple times against the server.
      
      Reason was that db_repostitory could be freed twice.
      09c7f78c
    • Julius Goryavsky's avatar
      MDEV-28204: The tr utility does not work as expected on rsync SST · daed558b
      Julius Goryavsky authored
      This commit contains a fix to use modern syntax for selecting
      character classes in the tr utility options.
      
      Also one of the tests for SST via rsync (galera_sst_rysnc2) is made
      more reliable (to avoid rare failures during automatic testing).
      daed558b
    • Vlad Lesin's avatar
      MDEV-26322 Last binlog file and position are "empty" in mariabackup --prepare output · 6a3545dd
      Vlad Lesin authored
      The issue is caused by 59a0236d commit.
      The initial intention of the commit was to speed up
      "mariabackup --prepare".
      
      The call stack of binlog position reading is the following:
      ▾ trx_rseg_mem_restore
        ▾ trx_rseg_array_init
            ▾ trx_lists_init_at_db_start
                  ▸ srv_start
      Both trx_lists_init_at_db_start() and trx_rseg_mem_restore() contain
      special cases for srv_operation == SRV_OPERATION_RESTORE condition, and
      on this condition only rseg headers are read to parse binlog position.
      Performance impact is not so big.
      
      The solution is to revert 59a0236d.
      6a3545dd
    • Daniel Black's avatar
      MDEV-28231: innodb: format string warning on aix UINT64PFx (ib_id_t) · 7f5a3cd2
      Daniel Black authored
      ib_id_t is a uint64. On AIX this isn't a long long unsigned and to
      prevent the compile warnings and potential wrong type, the UINT64PFx
      defination is corrected.
      
      As INT64PF is unused (last use, xtradb in 10.2), it is removed to
      remove the confusion that INT64PF and UINT64PFx would be different
      types otherwise.
      7f5a3cd2
    • Alexander Barkov's avatar
      Adding a "const" qualifier to arguments of create_func(), create_native() etc · 0ffaf19c
      Alexander Barkov authored
      The "const" qualifier was obviously forgotten.
      
      This change will also simpily fixing of MDEV-27744.
      0ffaf19c
    • Alexander Barkov's avatar
      MDEV-28224 error: cannot initialize return object of type 'bool' with an rvalue of type 'nullptr_t' · d271fbd3
      Alexander Barkov authored
      Fixing a typo in the fix for MDEV-19804, wrong return value in a bool function:
       < return NULL;
       > return true;
      
      The problem was found because it did not compile on some platforms.
      
      Strangley, it did not have visible problems on other platforms,
      which did not fail to compile, although "return NULL" should compile to
      "return false" rather than "return true".
      d271fbd3
  11. 03 Apr, 2022 1 commit
    • Daniel Black's avatar
      MDEV-26136: Correct AIX/macOS cast warning (my_time.h) · 75b9014f
      Daniel Black authored
      tv_usec is a (suseconds_t) so we cast to it. Prevents the AIX(gcc-10) warning:
      
      include/my_time.h: In function 'void my_timeval_trunc(timeval*, uint)':
      include/my_time.h:249:65: warning: conversion from 'long int' to 'suseconds_t' {aka 'int'} may change value [-Wconversion]
        249 |   tv->tv_usec-= my_time_fraction_remainder(tv->tv_usec, decimals);
            |
      
      macOS is: conversion from 'long int' to '__darwin_suseconds_t' {aka 'int'} may change value
      
      On Windows suseconds_t isn't defined so we use the existing
      long return type of my_time_fraction_remainder.
      
      Reviewed by Marko Mäkelä
      
      Closes: #2079
      75b9014f
  12. 02 Apr, 2022 1 commit
    • Dmitry Shulga's avatar
      MDEV-28220: Assert failure in sp_head::~sp_head on parsing a syntax incorrect... · 8c169f5e
      Dmitry Shulga authored
      MDEV-28220: Assert failure in sp_head::~sp_head on parsing a syntax incorrect statement CREATE SEQUENCE ... RESTART inside CREATE PROCEDURE/CREATE FUNCTION
      
      This bug report is about the same issue as MDEV-28129 and MDEV-21173.
      The issue is that the macros YYABORT is called instead of MYSQL_YYABORT
      on parse error. In result the method LEX::cleanup_lex_after_parse_error
      is not called to clean up data structures created on parsing of
      the statement.
      8c169f5e
  13. 01 Apr, 2022 2 commits