- 29 Sep, 2022 1 commit
-
-
Aleksey Midenkov authored
Usually when we get into finalize_locked_tables() with error m_locked_tables_count was not decremented. m_locked_tables_count is decremented when we drop the original table and if we failed that m_locked_tables_count is expected intact. The bug comes from the fact that finalize_atomic_replace() violates the above contract. It does HA_EXTRA_PREPARE_FOR_DROP and decrements m_locked_tables_count. Then it tries rename_table_and_triggers() and fails. With decremented m_locked_tables_count reopen_tables() does nothing and we don't get new value for pos_in_locked_tables->table. The test case demonstrates ER_ERROR_ON_RENAME where non-atomic CREATE OR REPLACE would not fail. The original RENAME TABLE fails under such broken environment, so nothing is wrong with atomic CREATE OR REPLACE failing there too.
-
- 26 Sep, 2022 1 commit
-
-
Sergei Golubchik authored
-
- 23 Sep, 2022 1 commit
-
-
Sergei Golubchik authored
-
- 21 Sep, 2022 7 commits
-
-
Monty authored
The benefit of this is that one can remove the READ ONLY ADMIN privilege from all users and this way ensure that no one can do any changes on any non-temporary tables. This is good option to use on slaves when one wants to ensure that the slave is kept identical to the master.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
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 16 commits
-
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
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
-
- 16 Sep, 2022 1 commit
-
-
Marko Mäkelä authored
recv_scan_log(): Do not dereference the first byte of the log record before recv_sys.parse_pmem() (or recv_sys_t::parse_mtr()) returns OK. In the case of the failure that was analyzed, we had recv_sys.offset == recv_sys.len and recv_sys_t::parse_mtr() would return PREMATURE_EOF. This would lead us to reading more data and parsing again. When a memory-mapped interface to the log is being used, that is, log_sys.is_pmem() holds, recv_sys.offset cannot point past the end of the memory-mapped log_sys.buf[]. This is guaranteed by log_sys.calc_lsn_offset(). Thanks to Nayuta Yanagisawa for providing a core dump for analysis.
-
- 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 4 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>
-