- 21 Sep, 2022 2 commits
-
-
Alexey Botchkov authored
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.
-
Marko Mäkelä authored
Update the result of a ./mtr --ps-protocol test
-
- 20 Sep, 2022 5 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Alexander Barkov authored
-
Marko Mäkelä authored
-
- 19 Sep, 2022 13 commits
-
-
Vlad Lesin authored
The test is unstable because 'UPDATE t SET b = 100' latches a page and waits for 'upd_cont' signal in lock_trx_handle_wait_enter sync point, then purge requests RW_X_LATCH on the same page, and then 'SELECT * FROM t WHERE a = 10 FOR UPDATE' requests RW_S_LATCH, waiting for RW_X_LATCH requested by purge. 'UPDATE t SET b = 100' can't release page latch as it waits for upd_cont signal, which must be emitted after 'SELECT * FROM t WHERE a = 10 FOR UPDATE' acquired RW_S_LATCH. So we have a deadlock, which is resolved by finishing the debug sync point wait by timeout, and the 'UPDATE t SET b = 100' releases it's record locks rolling back the transaction, and 'SELECT * FROM t WHERE a = 10 FOR UPDATE' is finished successfully instead of finishing by lock wait timeout. The fix is to forbid purging during the test by opening read view in a separate connection before the first insert into the table. Besides, 'lock_wait_end' syncpoint is not needed, as it enough to wait the end of the SELECT execution to let the UPDATE to continue.
-
Daniel Bartholomew authored
-
Andrew Hutchings authored
* MDEV-29426 Fix memory leak in CONNECT JSON/BSON If information is being gathered on JSON/BSON tables we leak the heap allocated to the table class. With this fix we close and cleanup instead, just as we do for XML tables.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The reason why mysql/mysql-server@8020cfac20c55a870a874446870d5e90bdc181ed split the files was some unit tests that never existed in the MariaDB Server code base. The storage/innobase/unittest/ works just fine with this file. This is reverting part of 2e814d47 which applied InnoDB changes from MySQL 5.7.9.
-
Marko Mäkelä authored
The futex system calls were introduced in Linux 2.6.0, which was released in December 2003. It should be safe to assume that the system calls are always available on the Linux kernels that MariaDB Server 10.3 would run on.
-
Marko Mäkelä authored
There should be no point to disable branch prediction hints or prefetch.
-
Marko Mäkelä authored
Let us use the normal platform-specific preprocessor symbols __linux__, __sun__, _AIX instead of some homebrew ones. The preprocessor symbol UNIV_HPUX must have lost its meaning by f6deb00a (note: the symbol UNIV_HPUX10 is being checked for, but only UNIV_HPUX is defined).
-
Marko Mäkelä authored
log_phys_t::apply(): When parsing an INSERT_HEAP_DYNAMIC record, allow ll==rlen to hold for the last part. A secondary index record may inherit all preceding bytes from the infimum pseudo-record. For INSERT_HEAP_REDUNDANT, some header bytes will always be present because the header will never be copied from the page infimum. We will tolerate ll==rlen also in that case to be consistent with the parsing of INSERT_HEAP_DYNAMIC.
-
Marko Mäkelä authored
Thanks to Thirunarayanan Balathandayuthapani for spotting this.
-
Daniel Black authored
-
Ian Gilfillan authored
-
Ian Gilfillan authored
-
- 15 Sep, 2022 4 commits
-
-
Daniel Black authored
To make it possible to update the HELP text of UPDATE without changing this test every time, the test is changed to look for a faked help topic. A non-existant help topic generates different metadata and wasn't suitable as a test. Requested by Ian Gilfillan. Reviewed by Dmitry Shulga
-
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
-
Vladislav Vaintroub authored
Force using english for error messages (i.e ASCII) to avoid encoding mixup.
-
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
-
- 14 Sep, 2022 12 commits
-
-
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.
-
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.
-
Alexander Barkov authored
Recording test results according to MDEV-29446 changes: mysql-test/suite/maria/max_length.result
-
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>
-
Alexander Barkov authored
-
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.
-
Vicențiu Ciorbaru authored
-
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.
-
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.
-
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).
-
Thirunarayanan Balathandayuthapani authored
- innodb_sys_tablespaces view in information schema displays temporary tablespace information too.
-
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
-
- 13 Sep, 2022 4 commits
-
-
Sergei Golubchik authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_lift_page_up(): If the leaf page only contains a hidden metadata record for MDEV-11369 instant ADD COLUMN, convert the table to the canonical format like we are supposed to do whenever the table becomes empty.
-
Alexander Barkov authored
Recording test results according to MDEV-29446 changes: storage/rocksdb/mysql-test/rocksdb/r/use_direct_io_for_flush_and_compaction.result
-