summaryrefslogtreecommitdiff
path: root/sql/wsrep_server_service.cc
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'upstream/10.4' into 10.5Vicențiu Ciorbaru2021-09-101-1/+12
|\
| * MDEV-25718 Assertion `transaction.is_streaming()' failedDaniele Sciascia2021-09-061-1/+12
| | | | | | | | | | | | | | * Update wsrep-lib which contains the fix * Add deterministic test case that reproduces the assertion Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
* | Merge branch 'bb-10.4-release' into bb-10.5-releaseSergei Golubchik2021-02-151-2/+7
|\ \ | |/
| * MDEV-23328 Server hang due to Galera lock conflict resolutionSergei Golubchik2021-02-121-2/+7
| | | | | | | | adaptation of 29bbcac0ee8 for 10.4
* | Merge 10.4 into 10.5Marko Mäkelä2021-01-111-4/+7
|\ \ | |/
| * Update wsrep-lib (new logger interface)Alexey Yurchenko2021-01-071-4/+7
| | | | | | | | | | | | Ensure consistent use of logging macros in wsrep-related code Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
* | Merge 10.4 into 10.5Marko Mäkelä2020-12-021-1/+1
|\ \ | |/
| * MDEV-15532 after-merge fixes from MontyMarko Mäkelä2020-12-021-1/+1
| | | | | | | | The Galera tests were massively failing with debug assertions.
* | Merge 10.4 into 10.5Marko Mäkelä2020-07-021-1/+13
|\ \ | |/
| * MDEV-22632 wsrep XID checkpointing can happen out of order for certification ↵sjaakola2020-06-241-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | failure When a transaction fails in certification phase, it has connsumed one GTID, but as transaction must rollback, it will not go for commit ordering, and because of this also the wsrep XID checkpointing can happen out of order. This PR will make the thread, which has failed for certiication failure to wait for its commit order turn for checkpointing wsrep IXD in innodb rollback segment. There is a specific test for wsrep XID checkpointing ordering in mtr test: mysql-wsrep-bugs-607, which is added in this PR. Test galera_slave_replay depends also on this fix, as the second test phase may also assert for bad wsrep XID checkpointing order. galera_slave_replay.test had also other problems, which caused the test to fail immediately, thse are now fixes in this PR as well.
* | Merge 10.4 into 10.5Marko Mäkelä2020-05-041-0/+1
|\ \ | |/
| * MDEV-21489 : wsrep_cluster_conf_id has wrong valueJan Lindström2020-05-041-0/+1
| | | | | | | | Variable was not updated after initialization.
* | Galera GTID supportmkaruza2020-01-291-6/+6
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support for galera GTID consistency thru cluster. All nodes in cluster should have same GTID for replicated events which are originating from cluster. Cluster originating commands need to contain sequential WSREP GTID seqno Ignore manual setting of gtid_seq_no=X. In master-slave scenario where master is non galera node replicated GTID is replicated and is preserved in all nodes. To have this - domain_id, server_id and seqnos should be same on all nodes. Node which bootstraps the cluster, to achieve this, sends domain_id and server_id to other nodes and this combination is used to write GTID for events that are replicated inside cluster. Cluster nodes that are executing non replicated events are going to have different GTID than replicated ones, difference will be visible in domain part of gtid. With wsrep_gtid_domain_id you can set domain_id for WSREP cluster. Functions WSREP_LAST_WRITTEN_GTID, WSREP_LAST_SEEN_GTID and WSREP_SYNC_WAIT_UPTO_GTID now works with "native" GTID format. Fixed galera tests to reflect this chances. Add variable to manually update WSREP GTID seqno in cluster Add variable to manipulate and change WSREP GTID seqno. Next command originating from cluster and on same thread will have set seqno and cluster should change their internal counter to it's value. Behavior is same as using @@gtid_seq_no for non WSREP transaction.
* Wsrep position not updated in InnoDB after certification failures (#1432)Daniele Sciascia2020-01-141-0/+6
| | | | | | | | | | | | | | | A certification failure followed by a clean shutdown would cause an inconsistency between the sequence number stored in innodb and the sequence number stored in provider. This happened both in the case of local certification failure, and in the case where dummy writeset is applied. The fix consists of: - updating wsrep position after dummy writeset is delivered in `Wsrep_high_priority_service::log_dummy_write_set()` - updating wsrep position while releasing commit order in wsrep-lib side Added two tests which stress the situation where a server is shutdown after a certification failure.
* MDEV-20780 Fixes for failures on galera_sr_ddl_master (#1425)Daniele Sciascia2019-12-111-14/+15
| | | | | | | | | | | | | | | | | Test galera_sr_ddl_master would sometimes fail due to leftover streaming replication fragments. Rollbacker thread would attempt to open streaming_log table to remove the fragments, but would fail in check_stack_overrun(). Ultimately the check_stack_overrun() failure was caused by rollbacker missing to switch the victim's THD thread stack to rollbacker's thread stack. Also in this patch: - Remove duplicate functionality in rollbacker helper functions, and extract rollbacker fragment removal into function wsrep_remove_streaming_fragments() - Reuse open_for_write() in wsrep_schema::remove_fragments - Partially revert changes to galera_sr_ddl_master test from commit 44a11a7c085f4f5a4042100df0828d54d596103d. Removed unnecessary wait condition and isolation level setting
* MDEV-19826 10.4 seems to crash with "pool-of-threads" (#1370)Teemu Ollakka2019-08-301-10/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | MariaDB 10.4 was crashing when thread-handling was set to pool-of-threads and wsrep was enabled. There were two apparent reasons for the crash: - Connection handling in threadpool_common.cc was missing calls to control wsrep client state. - Thread specific storage which contains thread variables (THR_KEY_mysys) was not handled appropriately by wsrep patch when pool-of-threads was configured. This patch addresses the above issues in the following way: - Wsrep client state open/close was moved in thd_prepare_connection() and end_connection() to have common handling for one-thread-per-connection and pool-of-threads. - Thread local storage handling in wsrep patch was reworked by introducing set of wsrep_xxx_threadvars() calls which replace calls to THD store_globals()/reset_globals() and deal with thread handling specifics internally. Wsrep-lib was updated to version which relaxes internal concurrency related sanity checks. Rollback code from wsrep_rollback_process() was extracted to separate calls for better readability. Post rollback thread was removed as it was completely unused.
* Merge 10.3 into 10.4Marko Mäkelä2019-05-051-4/+4
|
* MDEV-18480 Backwards compatibility in log_view()Teemu Ollakka2019-02-181-2/+18
| | | | | | Galera versions below 4.x do not generate unique sequence number for view events. Take this into account when writing the SE checkpoint to avoid debug assertion in InnoDB.
* Galera4Brave Galera Crew2019-01-231-0/+318