1. 20 Sep, 2022 3 commits
  2. 19 Sep, 2022 11 commits
  3. 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
  4. 14 Sep, 2022 12 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
    • Vicențiu Ciorbaru's avatar
      5ad8cd93
    • Vicențiu Ciorbaru's avatar
      MDEV-29458: Role grant commands do not propagate all grants · 7735ba76
      Vicențiu Ciorbaru authored
      There was an issue in updating in-memory role datastructures when
      propagating role grants.
      
      The issue is that changing a particular role's privilege (on any
      privilege level, global, database, etc.)
      was done such that it overwrote the entire set of bits for that
      particular level of privileges.
      
      For example:
      grant select on *.* to r1 -> sets the access bits to r1 to select,
      regardless of what bits were present for role r1 (inherited from any
      other roles).
      
      Before this fix, the rights of role r1 were propagated to any roles r1
      was granted to, however the propagated rights did *not* include the
      complete rights r1 inherited from its own grants.
      
      For example:
        grant r2 to r1;
        grant select on *.* to r2;
        grant insert on *.* to r1; # This command completely disregards the
                                   # select privilege from r2.
      
      In order to correct this, ensure that before rights are propagated
      onwards, that the current's role rights have been updated from its
      grants.
      
      Additionally, the patch exposed a flaw in the DROP ROLE code.
      When deleting a role we removed all its previous grants, but what
      remained was the actual links of roles granted to the dropped role.
      Having these links present when propagating grants meant that we would
      have leftover ACL_xxx entries.
      
      Ensure that the links are removed before propagating grants.
      7735ba76
    • Vicențiu Ciorbaru's avatar
      MDEV-29465: Inherited columns privs for roles wrongly set mysql.tables_priv column · 145932a5
      Vicențiu Ciorbaru authored
      There was a bug in the ACL internal data structures GRANT_TABLE and
      GRANT_COLUMN. The semantics are: GRANT_TABLE::init_cols and
      GRANT_COLUMN::init_privs represent the bits that correspond to the
      privilege bits stored in the physical tables. The other struct members
      GRANT_TABLE::cols and GRANT_COLUMN::privs represent the actual access
      bits, as they may be modified through role grants.
      
      The error in logic was mixing the two fields and thus we ended up
      storing the logical access bits in the physical tables, instead of the
      physical (init_xxx) bits.
      
      This caused subsequent DBUG_ASSERT failures when dropping the involved
      roles.
      145932a5
    • Marko Mäkelä's avatar
      MDEV-18589 Assertion on info.page_size failed in xb_delta_open_matching_space · 3e3cfa89
      Marko Mäkelä authored
      xb_read_delta_metadata(): For ROW_FORMAT=COMPRESSED tables, initialize
      the info.zip_size with the physical page size and let info.page_size
      remain the logical page size, like xb_delta_open_matching_space()
      expects it to be ever since
      commit 0a1c3477 (MDEV-18493).
      3e3cfa89
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-29479 I_S.INNODB_SYS_TABLESPACES doesn't have temporary tablespace information · d7aefc0f
      Thirunarayanan Balathandayuthapani authored
      - innodb_sys_tablespaces view in information schema displays temporary
      tablespace information too.
      d7aefc0f
    • Alexander Barkov's avatar
      A cleanup for MDEV-29446 Change SHOW CREATE TABLE to display default collation · 289105e2
      Alexander Barkov authored
      Recording test results according to MDEV-29446 changes:
      
        mysql-test/suite/galera/r/MDEV-25494.result
        mysql-test/suite/galera/r/galera_ctas.result
        mysql-test/suite/galera/r/galera_schema.result
        mysql-test/suite/galera_3nodes/r/galera_wsrep_schema.result
        mysql-test/suite/galera_sr/r/galera_sr_create_drop.result
      289105e2
  5. 13 Sep, 2022 6 commits
  6. 12 Sep, 2022 3 commits
  7. 09 Sep, 2022 1 commit
    • Andrei's avatar
      MDEV-24660 MYSQL_BIN_LOG::cleanup(): Assertion `b->xid_count == 0' · bc12478a
      Andrei authored
      The shutdown time assert was caused by untimely deactivation of
      the binlog background thread and related structs destruction.
      It could specifically occur when a transaction is replication unsafe
      and has to be completed with a ROLLBACK event in binlog.
      
      This gets fixed with the binlog background thread stop relocation
      to a point and user transactions have been completed.
      A test case is added to binlog.binlog_checkpoint which
      also receives as a bonus a minor correction to reactivate a MDEV-4322 test
      case that originally required a shutdown phase (that ceased to do).
      bc12478a
  8. 08 Sep, 2022 1 commit