1. 22 Apr, 2022 3 commits
  2. 13 Apr, 2022 2 commits
  3. 12 Apr, 2022 7 commits
  4. 11 Apr, 2022 5 commits
    • Tuukka Pasanen's avatar
      MDEV-27033: Clean lintian 'duplicate-override-context' warnings · e858fc89
      Tuukka Pasanen authored
      Fix Debian lintian warnings:
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 12 13) [debian/source/lintian-overrides:13]
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 14 15) [debian/source/lintian-overrides:15]
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 16 17) [debian/source/lintian-overrides:17]
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 18 19) [debian/source/lintian-overrides:19]
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 20 21) [debian/source/lintian-overrides:21]
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 4 5) [debian/source/lintian-overrides:5]
      by removing duplicate override lines
      e858fc89
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-26578 ERROR: AddressSanitizer: heap-use-after-free around dict_table_t::is_temporary_name · f61f58e7
      Thirunarayanan Balathandayuthapani authored
      - Purge thread is trying to access the table name when other thread
      does rename of the table name. It leads to heap use after free error
      by purge thread. purge thread should check whether the table name
      is temporary while holding dict_sys.mutex.
      f61f58e7
    • Marko Mäkelä's avatar
      MDEV-28289 fts_optimize_sync_table() is acquiring dict_sys.latch while holding it · 840bab85
      Marko Mäkelä authored
      dict_acquire_mdl_shared(): Invoke the correct variant
      dict_table_t::parse_name<true>() also when trylock=true,
      that is, we are being called from fts_optimize_sync_table().
      
      Ever since commit 82b7c561 (MDEV-24258)
      this code was prone to a hang. If another thread requested an
      exclusive dict_sys.latch between the time
      dict_acquire_mdl_shared<trylock=true>() acquired a shared dict_sys.latch
      and dict_table_t::parse_name<false>() was trying to acquire another
      shared dict_sys.latch, InnoDB would get into an infinite livelock
      of threads, because the futex-based srw-lock implementation prioritizes
      exclusive latch requests.
      
      dict_table_t::parse_name(): Rename the template parameter dict_locked
      into dict_frozen.
      840bab85
    • Marko Mäkelä's avatar
      MDEV-28274 Assertion s <= READ_FIX failed in buf_page_t::set_state · 7bccf3dd
      Marko Mäkelä authored
      buf_page_t::set_state(): Relax a debug assertion. It is fine to update
      a read-fixed block descriptor to be both read-fixed and buffer-fixed.
      
      buf_pool_t::watch_unset(): Fix some incorrect logic that was implemented
      in commit e9e6db93.
      
      Thanks to Elena Stepanova for the test case.
      7bccf3dd
    • Vladislav Vaintroub's avatar
      MDEV-10183 implement service_manager_extend_timeout on Windows · 5a4a3707
      Vladislav Vaintroub authored
      The implementation calls SetServiceStatus() with updated
      SERVICE_STATUS::dwHint and SERVICE_STATUS::dwCheckpoint
      5a4a3707
  5. 10 Apr, 2022 2 commits
  6. 09 Apr, 2022 2 commits
  7. 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
  8. 07 Apr, 2022 9 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
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-27783 InnoDB: Failing assertion: table->get_ref_count() == 0 upon ALTER... · 27b0030b
      Thirunarayanan Balathandayuthapani authored
      MDEV-27783 InnoDB: Failing assertion: table->get_ref_count() == 0 upon ALTER TABLE ... MODIFY COLUMN
      
      - There is a race condition occurs between purge thread and DDL.
      So purge thread can increment n_ref_count even after DDL does
      purge_sys_t::stop_FTS().
      
      - dict_table_open_on_id for purge thread should check
      purge_sys.must_wait_FTS() before acquring the table.
      
      - purge_sys.stop_FTS() does acquire dict_sys.latch for setting
      the purge system flag and check table ref count on auxilary tables.
      27b0030b
    • Alexander Barkov's avatar
  9. 06 Apr, 2022 9 commits
    • Daniel Black's avatar
      deb: test restrictions missed in merge · e2e4aa29
      Daniel Black authored
      Affects Salsa autopkgtest.
      e2e4aa29
    • Marko Mäkelä's avatar
      Merge 10.7 into 10.8 · b2baeba4
      Marko Mäkelä authored
      b2baeba4
    • Marko Mäkelä's avatar
      Merge 10.6 into 10.7 · 2d8e38bc
      Marko Mäkelä authored
      2d8e38bc
    • Marko Mäkelä's avatar
      MDEV-26781 InnoDB hangs when using SUX_LOCK_GENERIC · 4e1ca388
      Marko Mäkelä authored
      The Shared/Update/Exclusive locks that were introduced in
      commit 03ca6495 (MDEV-24142)
      did not work correctly when a futex-like system call interface
      was not available.
      
      On all tested implementations (IBM AIX as well as FreeBSD and GNU/Linux
      with the futex interface artificially disabled), the old implementation
      would cause hangs in some SPATIAL INDEX tests (innodb_gis suite).
      On FreeBSD, a hang was also observed in an encryption test.
      
      We will simply emulate the futex system calls with a single mutex
      and two condition variables, one for each wait queue. The condition
      variables basically shadow the lock words and are used as wait queues,
      just like the futex system calls would be.
      
      The storage overhead of ssux_lock_impl will be increased by 32 bits
      when using SUX_LOCK_GENERIC. Compared to the futex-based implementation,
      the SUX_LOCK_GENERIC implementation has an overhead of
      sizeof(pthread_mutex_t)+2*sizeof(pthread_cond_t).
      
      rw_lock: Remove all SUX_LOCK_GENERIC extensions.
      
      pthread_mutex_wrapper: A simple wrapper of pthread_mutex that
      implements srw_spin_mutex and srw_mutex for SUX_LOCK_GENERIC.
      
      srw_mutex_impl: Define this also for SUX_LOCK_GENERIC, but in
      that case add the fields mutex, cond.
      
      ssux_lock_impl: Define for SUX_LOCK_GENERIC with a minimal difference:
      adding readers_cond.
      4e1ca388
    • Marko Mäkelä's avatar
      MDEV-25975: Merge 10.5 into 10.6 · ff994138
      Marko Mäkelä authored
      ff994138
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 9d94c60f
      Marko Mäkelä authored
      9d94c60f
    • Marko Mäkelä's avatar
      MDEV-13005 after-merge fixup · fd6a464a
      Marko Mäkelä authored
      fd6a464a
    • Marko Mäkelä's avatar
      MDEV-25975: Merge 10.4 into 10.5 · 5d8dcfd8
      Marko Mäkelä authored
      5d8dcfd8
    • Marko Mäkelä's avatar
      MDEV-25975 merge fixup · cbdf62ae
      Marko Mäkelä authored
      cbdf62ae