- 13 Dec, 2022 2 commits
-
-
Jan Lindström authored
galera.galera_bf_abort_at_after_statement disabled by Daniel Black
-
Daniel Black authored
-
- 12 Dec, 2022 3 commits
-
-
Daniel Black authored
-
Daniel Black authored
Hide the errors related to missing innodb stats tables in bootstrap mode on the assumption that because we are in bootstrap mode they are going to be created.
-
Daniel Black authored
-
- 10 Dec, 2022 1 commit
-
-
Julius Goryavsky authored
This commit fixes the test system hanging due to the galera_var_notify_ssl_ipv6 test and also brings the wsrep_notify[_ssl].sh files in line with each other between the user template and the mtr suite. Quotes are also added here to avoid problems if the user specifies the value of one of the variables at the beginning of the file containing shell-specific characters, for example, if the password or username specified in the PSWD and USER variables will contain the "$" character. Also fixed an issue with automatic --ssl-verify-server-cert option substitution when the corresponding value is set by the user to "1" or "on". Also fixed some tests here to avoid joining one of the nodes to another cluster when the nodes are restarted from the mtr side, which can lead to random failures when testing with buildbot.
-
- 08 Dec, 2022 1 commit
-
-
Tuukka Pasanen authored
Convert minimal amount of Lintian overrides to make Lintian test pass also with Debian Sid latest Lintian 2.115 version. Old style overrides are kept so they can be used with older versions of Lintian. Introduce minimal Lintian overrides which are common from MariaDB version 10.5 up-to to 10.8. Overrides added files: * debian/mariadb-test-data.lintian-overrides - MariaDB installs some shared objects to test-suite directory and not in '/usr/lib' or similar. Share objects is pam_mariadb_mtr.so. Tags are arch-dependent-file-in-usr-share and arch-independent-package-contains-binary-or-object Lintia * debian/mariadb-test.lintian-overrides - MariaDB installs some some binaries to test-sute directory and in mariadb-test package they are my_safe_process and wsrep_check_version. Tags is arch-dependent-file-in-usr-share * debian/source/lintian-overrides - In source there is some source files missing which should be addressed sql/share/charsets/languages.html and and storage/rocksdb/rocksdb/docs/_includes/footer.html. Tags is source-is-missing - Add Lintian override for missing: storage/columnstore/columnstore/utils/jemalloc/libjemalloc.so.2 - Add Lintian override for substvar external resources: ${source:Version} libmariadb-dev -> libmysqlclient-dev [debian/control:66] ${source:Version} libmariadb-dev -> libmysqld-dev [debian/control:66] ${source:Version} libmariadbd-dev -> libmariadbclient-dev [debian/control:216]
-
- 07 Dec, 2022 1 commit
-
-
Jan Lindström authored
* Delete tests that are not supported and not going to be supported any time soon * Fix result set on tests that are not run on bb * Fix tests that fail because of auto increment offset * Make sure that disabled tests have open bug report
-
- 05 Dec, 2022 1 commit
-
-
Monty authored
This could happen if one did a DML with a moved table that one had done an external zerofill on. The crash happend because a message that was supposed to be sent to a repair report was instead sent to the result, which caused an ASSERT
-
- 02 Dec, 2022 1 commit
-
-
Thirunarayanan Balathandayuthapani authored
- Mariabackup fails to open the undo tablespaces while applying delta files to the corresponding data file. Mariabackup opens the undo tablespaces first time in srv_undo_tablespaces_init() and does tries to open the undo tablespaces in xtrabackup_apply_deltas() with conflicting mode and leads to the failure. - Mariabackup should close the undo tablespaces before applying the incremental delta files.
-
- 01 Dec, 2022 1 commit
-
-
Marko Mäkelä authored
This fixes up 4eb8e51c which missed a second parent.
-
- 30 Nov, 2022 3 commits
-
-
Jan Lindström authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Some builders in our CI, most notably FreeBSD and IBM AIX, do not support sparse files. Also, Microsoft Windows requires special means for creating sparse files. Since these platforms do not run ./mtr --big-test, we will for now simply move the test to a separate file that requires that option.
-
- 29 Nov, 2022 5 commits
-
-
sjaakola authored
This commit contains only a mtr test for reproducing the issue in MDEV-29512 The actual fix will be pushed in wsrep-lib repository The hanging in MDEV-29512 happens when binlog purging is attempted, and there is one local BF aborted transaction waiting for commit monitor. The test will launch two node cluster and enable binlogging with expire log days, to force binlog purging to happen. A local transaction is executed so that will become BF abort victim, and has advanced to replication stage waiting for commit monitor for final cleanup (to mark position in innodb) after that, applier is released to complete the BF abort and due to binlog configuration, starting the binlog purging. This is where the hanging would occur, if code is buggy Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
Daniele Sciascia authored
Test MDEV-26575 fails when it runs after MDEV-25389. This is because the latter simulates a failure while an applier thread is created in `start_wsrep_THD()`. The failure was not handled correctly and would not cleanup the created THD from the global `server_threads`. A subsequent shutdown would hang and eventually fail trying to close this THD. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
Daniele Sciascia authored
Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
Daniele Sciascia authored
Fix `wsrep_table_accessible_when_detached()` so that commands that access no tables are rejected while a node is disconnected from a cluster. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
Jan Lindström authored
-
- 28 Nov, 2022 5 commits
-
-
Daniel Black authored
Prevent wsrep files from being installed if WITH_WSREP=OFF. Reviewed by Daniel Black Additionally excluded #include wsrep files and galera* files along with galera/wsrep tests. mysql-test/include/have_wsrep.inc remainds as its used by a few isolated tests. Co-authored-by: Chris Ross <cross2@cisco.com>
-
Marko Mäkelä authored
recv_log_recover_10_4(): Widen the operand of bitwise and to 64 bits, so that the upgrade check will work when the redo log record is located more than 4 gigabytes from the start of the first file.
-
Marko Mäkelä authored
ibuf_init_at_db_start(): Validate the change buffer root page. A later version may stop creating a change buffer, and this validation check will prevent a downgrade from such later versions. ibuf_max_size_update(): If the change buffer was not loaded, do nothing. dict_boot(): Merge the local variable "error" to "err". Ignore failures of ibuf_init_at_db_start() if innodb_force_recovery>=4.
-
Marko Mäkelä authored
In commit a03dd94b as well as mysql/mysql-server@6ef8c343445a26aaf9ebd76d72cf57db44b481f5 the iterations were changed so that the variable "scanned" would remain 0 when the first list item qualifies for eviction. buf_LRU_free_from_unzip_LRU_list(), buf_LRU_free_from_common_LRU_list(): Increment "scanned" when a block can be freed. buf_LRU_free_from_common_LRU_list(): Remove a redundant condition. Whenever this function is invoked, buf_pool.LRU should be nonempty, hence something should always be scanned. Thanks to Jean-François Gagné for reporting this.
-
Daniel Black authored
The very lightest of load would decimate any buffer pool loading to ~1 page per second. As seen in MDEV-29343 this resulting in a load taking over an hour on a high end system. Since MDEV-26547 the fetching is asynchronous, however the loading has equal access to the IO as the SQL queries.
-
- 26 Nov, 2022 6 commits
-
-
Weijun-H authored
-
Weijun-H authored
-
Weijun-H authored
-
Weijun-H authored
Signed-off-by: Weijun-H <huangweijun1001@gmail.com>
-
Weijun-H authored
-
Weijun-H authored
Signed-off-by: Weijun-H <huangweijun1001@gmail.com>
-
- 25 Nov, 2022 3 commits
-
-
Brandon Nesterenko authored
Problem: ======== There is a race condition in binlog.binlog_checkpoint between the binlog background thread creating a binlog checkpoint event, and the connection thread binlogging a query event for creating a table. Because the test outputs the events for validation, the order between these two events can be different, resulting in a failed test. Solution: ======== Instead of outputting the binlog events, use assert_grep to validate the content of the binlog is correct. Reviewed By: ============ Andrei Elkin <andrei.elkin@mariadb.com>
-
Daniel Black authored
A few query cache functions don't use THD pointer so its removed from their interface.
-
Daniel Black authored
Fix the regression introduced in dfb41fdd. In the restructure of mysql_rm_table_no_locks the early condition of !frm_error that enabled non_tmp_table_deleted, and hence the query cache invalidation, was removed. The query_cache_invalidate1(thd, dbnorm) called after mysql_rm_table_no_locks depends on the query cache removal (for unexamined reasons). Under DROP DATABASE, in mysql_rm_table_no_locks, dont_log_query is true preventing the late setting of non_tmp_table_deleted (which retained one of its purposes as a replication deletion of temporary tables, but not query cache invalidation). The non_temp_tables_count however can still be used to invalidate the query cache.
-
- 23 Nov, 2022 2 commits
-
-
lrf141 authored
This is a DELETE only case. Normally this statement doesn't make inserts, but DELETE ... FOR PORTION changes it. UPDATE and INSERT initializes autoinc by calling handler::info(HA_STATUS_AUTO). Also myisam and innodb can lazily initialize it in their update_create_info overrides. The solution is to initialize autoinc during delete preparation, if period (DELETE FOR PORTION) is specified. The initial work has been done by Kento Takeuchi by his PR #2048, however this commit also holds a few technical modifications by Nikita Malyavin
-
Marko Mäkelä authored
The InnoDB change buffer (ibuf.index, stored in the system tablespace) and the change buffer bitmaps in persistent tablespaces could get out of sync with each other: According to the bitmap, no changes exist for a page, while there actually exist buffered entries in ibuf.index. InnoDB performs lazy deletion of buffered changes. When a secondary index leaf page is freed (possibly as part of DROP INDEX), any buffered changes will not be deleted. Instead, they would be deleted on a subsequent buf_page_create_low(). One scenario where InnoDB failed to delete buffered changes is as follows: 1. Some changes were buffered for a secondary index leaf page. 2. The index page had been freed. 3. ibuf_read_merge_pages() invoked ibuf_merge_or_delete_for_page(), which noticed that the page had been freed, and reset the change buffer bits, but did not delete the records from ibuf.index. 4. The index page was reallocated for something else. 5. The index page was removed from the buffer pool. 6. Some changes were buffered for the newly created page. 7. Finally, the buffered changes from both 1. and 6. were merged. 8. The index is corrupted. An alternative outcome is: 4. Shutdown with innodb_fast_shutdown=0 gets into an infinite loop. An alternative scenario is: 3. ibuf_set_bitmap_for_bulk_load() reset the IBUF_BITMAP_BUFFERED bit but did not delete the ibuf.index records for that page number. The shutdown hang was already once fixed in commit d7a24017, refactored for 10.5 in commit 77e8a311 and disabled in commit 310dff5d due to corruption. We will fix this as follows: ibuf_delete_recs(): Delete all ibuf.index entries for the specified page. ibuf_merge_or_delete_for_page(): When the change buffer bitmap bits were set and the page had been freed, and the page does not belong to ibuf.index itself, invoke ibuf_delete_recs(). This prevents the corruption from occurring when a DML operation is allocating a previously freed page for which changes had been buffered. ibuf_set_bitmap_for_bulk_load(): When the change buffer bitmap bits were set, invoke ibuf_delete_recs(). This prevents the corruption from occurring when CREATE INDEX is reusing a previously freed page. ibuf_read_merge_pages(): On slow shutdown, remove the orphan records by invoking ibuf_delete_recs(). This fixes the hang when the change buffer had become corrupted. We also remove the dops[] accounting, because nothing can monitor it during shutdown. We invoke ibuf_delete_recs() if: (a) buf_page_get_gen() failed to load the page or merge changes (b) the page is not a valid index leaf page (c) the page number is out of tablespace bounds srv_shutdown(): Invoke ibuf_max_size_update(0) to ensure that the race condition that motivated us to disable the code in ibuf_read_merge_pages() in commit 310dff5d is no longer possible. That is, during slow shutdown, both the rollback of transactions and the purge of history will return early from ibuf_insert_low(). ibuf_merge_space(), ibuf_delete_for_discarded_space(): Cleanup: Do not allocate a memory heap. This was implemented by Thirunarayanan Balathandayuthapani and tested with innodb_change_buffering_debug=1 by Matthias Leich.
-
- 22 Nov, 2022 4 commits
-
-
Julius Goryavsky authored
This patch adds the correct setting of the "--tls-version" and "--ssl-verify-server-cert" options in the client-side utilities such as mysqltest, mysqlcheck and mysqlslap, as well as the correct setting of the "--ssl-crl" option when executing queries on the slave side, and also the correct option codes in the "sslopts-logopts.h" file (in the latter case, incorrect values are not a problem right now, but may cause subtle test failures in the future, if the option handling code changes).
-
Marko Mäkelä authored
-
Marko Mäkelä authored
fil_name_process(): If fil_ibd_load() returns FIL_LOAD_INVALID, display the file name and the tablespace identifier.
-
Alexander Barkov authored
Also fixes: MDEV-27768 MDEV-25440: Assertion `(cs->state & 0x20000) == 0' failed in my_strnncollsp_nchars_generic_8bit The "strnncollsp_nchars" virtual function pointer for tis620_thai_nopad_ci was incorrectly initialized to a generic function my_strnncollsp_nchars_generic_8bit(), which crashed on assert. Implementing a tis620 specific function version.
-
- 21 Nov, 2022 1 commit
-
-
Marko Mäkelä authored
During crash recovery, recv_sys.apply(true) invokes mlog_init.mark_ibuf_exist(), which in turn may invoke recv_sys.apply(true) via the buf_flush_sync() call in buf_page_get_low(). The simplest fix is to disable the innodb_change_buffering_debug=1 instrumentation during crash recovery.
-