1. 29 Sep, 2022 1 commit
    • Sergei Golubchik's avatar
      correctness assert · 6b685ea7
      Sergei Golubchik authored
      thd_get_ha_data() can be used without a lock, but only from the
      current thd thread, when calling from anoher thread it *must*
      be protected by thd->LOCK_thd_data
      
      * fix group commit code to take thd->LOCK_thd_data
      * remove innobase_close_connection() from the innodb background thread,
        it's not needed after 87775402 and was failing the assert with
        current_thd==0
      6b685ea7
  2. 28 Sep, 2022 4 commits
  3. 26 Sep, 2022 2 commits
  4. 23 Sep, 2022 3 commits
    • Marko Mäkelä's avatar
      Fix build without either ENABLED_DEBUG_SYNC or DBUG_OFF · 3c92050d
      Marko Mäkelä authored
      There are separate flags DBUG_OFF for disabling the DBUG facility
      and ENABLED_DEBUG_SYNC for enabling the DEBUG_SYNC facility.
      Let us allow debug builds without DEBUG_SYNC.
      
      Note: For CMAKE_BUILD_TYPE=Debug, CMakeLists.txt will continue to
      define ENABLED_DEBUG_SYNC.
      3c92050d
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 13eae188
      Marko Mäkelä authored
      13eae188
    • Marko Mäkelä's avatar
      MDEV-29613 Improve WITH_DBUG_TRACE=OFF · a69cf6f0
      Marko Mäkelä authored
      In commit 28325b08
      a compile-time option was introduced to disable the macros
      DBUG_ENTER and DBUG_RETURN or DBUG_VOID_RETURN.
      
      The parameter name WITH_DBUG_TRACE would hint that it also
      covers DBUG_PRINT statements. Let us do that: WITH_DBUG_TRACE=OFF
      shall disable DBUG_PRINT() as well.
      
      A few InnoDB recovery tests used to check that some output from
      DBUG_PRINT("ib_log", ...) is present. We can live without those checks.
      
      Reviewed by: Vladislav Vaintroub
      a69cf6f0
  5. 22 Sep, 2022 3 commits
  6. 21 Sep, 2022 2 commits
    • Alexey Botchkov's avatar
      Backport fix for MDEV-29352 to 10.3-10.5 · f5e4e154
      Alexey Botchkov authored
      The fix for MDEV-29352 was pushed to 10.6+ but the code causing the
      bug is old and the bug is unlikely to be a recent regression in 10.6.
      So, we apply the fix also to older versions, 10.3-10.5.
      
      The original commit message:
      
      MDEV-29352 SIGSEGV's in strlen and unknown location on optimized builds at SHUTDOWN
      
      When the UDF creation frails to write the newly created UDF into
      the related system table, the UDF is still created in memory.
      
      However, as it is now, the related DLL is unloaded in this case right
      in the mysql_create_function. And failure happens when the UDF handle
      is freed and tries to unload the respective DLL which is still unloaded.
      f5e4e154
    • Ian Gilfillan's avatar
      MDEV-29275 Fix server/Docs typos · b9c1c07f
      Ian Gilfillan authored
      b9c1c07f
  7. 20 Sep, 2022 5 commits
    • Brandon Nesterenko's avatar
      MDEV-28986: rpl tests sometimes failing on freebsd builders · b6bf7cd1
      Brandon Nesterenko authored
      The rpl_row_img_sequence test can fail on resource
      constrained buildbot machines due to its high
      space consumption. To reduce this footprint, the
      test is split into three parts, one for each value
      of the binlog_row_img variable.
      b6bf7cd1
    • Sergei Golubchik's avatar
      MDEV-29480 spider group by handler wrong result on order by aggregate alias · fc8a7655
      Sergei Golubchik authored
      when generating a query to send to a remote server, spider generates
      new aliases for all tables in the query (at least in the group_by handler).
      First it walks all the expressions and create a list of new table aliases
      to use for each field. Then - in init_scan() - it actually generates the
      query, taking for each field the next alias from the list.
      
      It dives recursively into functions, for example, for func(f1) it'll
      go in, will see the field f1 and append to the list the new name for
      the table of f1. This works fine for non-aggregate functions and
      for aggregate functions in the SELECT list. But aggregate functions
      in the ORDER BY are always references to the select list, they never
      need to be qualified with a table name. That is, even if there is a
      field name as an argument of an aggregate function in the ORDER BY
      it must not append a table alias to the list. Let's just skip
      aggregate functions when analyzing ORDER BY for table aliases.
      
      This fixes spider/bugfix.mdev_29008
      (was observed on aarch64, x86, ppc64le, and amd64 --rr)
      fc8a7655
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 0792aff1
      Marko Mäkelä authored
      0792aff1
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 0c0a5690
      Marko Mäkelä authored
      0c0a5690
    • Alexander Barkov's avatar
  8. 19 Sep, 2022 11 commits
  9. 15 Sep, 2022 3 commits
    • Alexander Barkov's avatar
      A cleanup for MDEV-29446 Change SHOW CREATE TABLE to display default collation · 23a8654c
      Alexander Barkov authored
      Recording test results according to MDEV-29446 changes:
      
        mysql-test/suite/galera/r/galera_rsu_wsrep_desync.result
        mysql-test/suite/galera/r/galera_sync_wait_show.result
        mysql-test/suite/galera/r/lp1376747-4.result
        mysql-test/suite/s3/replication_partition.result
        mysql-test/suite/s3/replication_stmt.result
      23a8654c
    • Vladislav Vaintroub's avatar
      MDEV-29543 Windows: Unreadable dlerror() message on localized OS · 32bab2ce
      Vladislav Vaintroub authored
      Force using english for error messages (i.e ASCII) to avoid encoding
      mixup.
      32bab2ce
    • Alexander Barkov's avatar
      A cleanup for MDEV-29446 Change SHOW CREATE TABLE to display default collation · 2fd4d25d
      Alexander Barkov authored
      Recording test results according to MDEV-29446 changes:
      
        mysql-test/suite/galera/r/galera-features#117.result
        mysql-test/suite/galera/r/galera_can_run_toi.result
        mysql-test/suite/galera/r/wsrep_strict_ddl.result
        mysql-test/suite/s3/alter.result
        mysql-test/suite/s3/arguments.result
        mysql-test/suite/s3/basic.result
        mysql-test/suite/s3/encryption.result
        mysql-test/suite/s3/innodb.result
        mysql-test/suite/s3/mysqldump.result
        mysql-test/suite/s3/partition.result
        mysql-test/suite/s3/partition_move.result
        mysql-test/suite/s3/replication_delayed.result
        mysql-test/suite/s3/replication_mixed.result
      2fd4d25d
  10. 14 Sep, 2022 6 commits
    • Sergei Golubchik's avatar
      race condition in the test · 35e18c24
      Sergei Golubchik authored
      this test loads sql_errlog plugin. then in a second connection
      it triggers an error, this locks the plugin in that thd.
      then the plugin is uninstalled in the default connection.
      but that doesn't unload the plugin, as it's still locked. it'll
      auto-unload after the foo connection is closed. without an explicit
      disconnect it is closed after mysqltest exits and the post-test check
      might still see sql_errlog not fully unoaded.
      35e18c24
    • Sergei Golubchik's avatar
      MDEV-22647 Assertion `!check_audit_mask(mysql_global_audit_mask, event_class_mask)' · beffef9f
      Sergei Golubchik authored
      
      check_audit_mask(mysql_global_audit_mask, event_class_mask) is tested in
      mysql_audit_general_log() and then assert in mysql_audit_acquire_plugins()
      verifies that the condition still holds.
      But this code path is not protected by LOCK_audit_mask, so
      mysql_global_audit_mask can change its value between the if() and the
      assert. That is, the assert is invalid and will fire if the
      audit plugin is unloaded concurrently with mysql_audit_general_log().
      
      Nothing bad will happen in this case though, we'll just do a useless
      loop over all remaining installed audit plugins.
      
      That is, the fix is simply to remove the assert.
      beffef9f
    • Alexander Barkov's avatar
      A cleanup for MDEV-29446 Change SHOW CREATE TABLE to display default collation · b65ffe15
      Alexander Barkov authored
      Recording test results according to MDEV-29446 changes:
      
        mysql-test/suite/maria/max_length.result
      b65ffe15
    • Anel Husakovic's avatar
      Add missing comment and remove unnecessary initialization · b7928f75
      Anel Husakovic authored
      - Commit c8948b0d introduced `get_one_variable()` - updating missing argument.
      - Remove caller setting of empty string in `rpl_filter`, since underlying functions will do the same
        (commit 9584cbe7 introduced).
      
      Reviewed by: <brandon.nesterenko@mariadb.com>
      b7928f75
    • Alexander Barkov's avatar
      fe844c16
    • Vicențiu Ciorbaru's avatar
      MDEV-29509 execute granted indirectly (via roles) doesn't always work · 16b2bb90
      Vicențiu Ciorbaru authored
      The issue manifests due to a bug in mysql_routine_grant. This was a side
      effect of e46eea86 which fixed the problem of not giving appropriate error
      message (ER_NONEXISTING_PROC_GRANT) when a routine grant existed due to role
      inheritance.
      
      When granting a routine privilege, it is possible to have a GRANT_NAME
      entry already created from an inherited role, but with it's init_privs
      set to 0.
      
      In this case we must not create a *new* grant entry, but we must edit
      this grant entry to set its init_privs.
      
      Note that this case was already covered by MDEV-29458, however due to a
      forgotten "flush privileges;" the actual code path never got hit.
      Remove the flush privilege command as it was never intended to be there
      in the first place.
      16b2bb90