1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-03 05:41:09 +03:00
Commit Graph

599 Commits

Author SHA1 Message Date
Teemu Ollakka
9487e0b259 MDEV-19826 10.4 seems to crash with "pool-of-threads" (#1370)
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.
2019-08-30 08:42:24 +03:00
Jan Lindström
136cf0400f Fix result error. 2019-08-15 13:48:55 +03:00
Marko Mäkelä
870acdf534 After-merge fix: Re-record results 2019-08-15 09:00:01 +03:00
Marko Mäkelä
1d15a28e52 Merge 10.3 into 10.4 2019-08-14 18:06:51 +03:00
Marko Mäkelä
65d48b4a7b Merge 10.2 to 10.3 2019-08-13 19:28:51 +03:00
Jan Lindström
5edc4ea4d9 MDEV-20324: Galera threads are not registered to performance schema
Galera threads were not registered to performance schema and
used pthread_create when mysql_thread_create should have been
used.

Added test case to verify current galera performance schema
instrumentation does work.
2019-08-13 12:52:01 +03:00
Jan Lindström
3cee665a04 MDEV-17847 Galera test failure on MW-328[A|B|C]
Test changes only.
2019-08-13 12:52:01 +03:00
Alexander Barkov
95cdc1ca5f Merge commit '43882e764d6867c6855b1ff057758a3f08b25c55' into 10.4 2019-08-13 11:42:31 +04:00
Alexey Botchkov
c6efbc543d MDEV-17544 No warning when trying to name a primary key constraint.
Warning added.
2019-07-30 21:57:48 +04:00
Marko Mäkelä
e9c1701e11 Merge 10.3 into 10.4 2019-07-25 18:42:06 +03:00
Julius Goryavsky
90600e8fc5 Fixed dependency checking in some Galera tests + remove duplicates 2019-07-18 14:42:21 +02:00
Julius Goryavsky
0a6b21b673 Fixed dependency checking in some Galera tests + remove duplicates 2019-07-18 14:31:07 +02:00
Eugene Kosov
0f83c8878d Merge 10.2 into 10.3 2019-07-16 18:39:21 +03:00
Jan Lindström
5244813114 MDEV-19968: Galera test failure on galera_load_data
In this test we are not interested a real cardinality etc
numbers. We are interested if they are not same in both
galera nodes as they should be.
2019-07-16 07:54:57 +03:00
Teemu Ollakka
61cc932781 Wsrep crash caused by COM_CHANGE_USER, COM_RESET_CONNECTION (#1358)
COM_CHANGE_USER and COM_RESET_CONNECTION commands cause
THD::cleanup() to be called in the middle of command handling.
This causes wsrep client_state sanity checks to fail.

As a fix, temporarily close wsrep client_state before THD::change_user()
is called when handling COM_CHANGE_USER and COM_RESET_CONNECTION,
and restore the state after THD::change_user() returns.

This commit also updates wsrep-lib to version which removes
exception usage in wsrep client_state sanity checks.
2019-07-15 12:06:24 +03:00
Jan Lindström
ec49976e38 MDEV-19746: Galera test failures because of wsrep_slave_threads identification
Problem was that tests select INFORMATION_SCHEMA.PROCESSLIST processes
from user system user and empty state. Thus, there is not clear
state for slave threads.

Changes:
- Added new status variables that store current amount of applier threads
(wsrep_applier_thread_count) and rollbacker threads
(wsrep_rollbacker_thread_count). This will make clear how many slave threads
of certain type there is.
- Added THD state "wsrep applier idle" when applier slave thread is
waiting for work. This makes finding slave/applier threads easier.
- Added force-restart option for mtr to always restart servers between tests
to avoid race on start of the test
- Added wait_condition_with_debug to wait until the passed statement returns
true, or the operation times out. If operation times out, the additional error
statement will be executed

Changes to be committed:
	new file:   mysql-test/include/force_restart.inc
	new file:   mysql-test/include/wait_condition_with_debug.inc
	modified:   mysql-test/mysql-test-run.pl
	modified:   mysql-test/suite/galera/disabled.def
	modified:   mysql-test/suite/galera/r/MW-336.result
	modified:   mysql-test/suite/galera/r/galera_kill_applier.result
	modified:   mysql-test/suite/galera/r/galera_var_slave_threads.result
	new file:   mysql-test/suite/galera/t/MW-336.cnf
	modified:   mysql-test/suite/galera/t/MW-336.test
	modified:   mysql-test/suite/galera/t/galera_kill_applier.test
	modified:   mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test
	modified:   mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test
	modified:   mysql-test/suite/galera/t/galera_var_slave_threads.test
	modified:   mysql-test/suite/wsrep/disabled.def
	modified:   mysql-test/suite/wsrep/r/variables.result
	modified:   mysql-test/suite/wsrep/t/variables.test
	modified:   sql/mysqld.cc
	modified:   sql/wsrep_mysqld.cc
	modified:   sql/wsrep_mysqld.h
	modified:   sql/wsrep_thd.cc
	modified:   sql/wsrep_var.cc
2019-07-15 10:17:07 +03:00
Jan Lindström
01d3e39288 Galera test fixes.
Changes to be committed:
	modified:   suite/galera/r/galera_kill_ddl.result
	modified:   suite/galera/r/galera_sync_wait_show.result
	modified:   suite/galera/t/galera_kill_ddl.test
2019-07-10 09:43:49 +03:00
Eugene Kosov
46c9268b0a post-merge fixes
rebuild galera.galera_as_slave_gtid and multi_source.mdev-8874
2019-07-09 22:24:50 +03:00
Eugene Kosov
26c389b7b7 Merge 10.1 into 10.2 2019-07-09 13:22:22 +03:00
Jan Lindström
b9557418cc Galera test adjustments.
Changes to be committed:
	modified:   ../galera/disabled.def
	modified:   ../galera/r/GAL-419.result
	modified:   ../galera/t/GAL-419.test
	modified:   ../galera/t/galera_ist_innodb_flush_logs.test
	modified:   ../galera/t/galera_ist_mariabackup_innodb_flush_logs.test
2019-07-09 08:32:13 +03:00
Jan Lindström
7d56bddfcf Galera test fixes
Changes to be committed:
	modified:   suite/galera/disabled.def
	modified:   suite/galera/r/MW-329.result
	modified:   suite/galera/r/galera_var_notify_cmd.result
	modified:   suite/galera/t/MW-329.test
	modified:   suite/galera/t/galera_binlog_stmt_autoinc.test
	modified:   suite/galera/t/galera_var_notify_cmd.test
2019-07-05 06:51:29 +03:00
Jan Lindström
fee61edd44 MDEV-19939: Galera test failure on galera_toi_ddl_fk_insert
Add sync wait to make sure selects see correct consistent db.
2019-07-04 19:42:55 +03:00
Jan Lindström
24aa723a28 Update Galera failing test list and record correct results
for passing ones.

Changes to be committed:
	new file:   mysql-test/std_data/galera-cert.pem
	new file:   mysql-test/std_data/galera-key.pem
	new file:   mysql-test/std_data/galera-upgrade-ca-cert.pem
	new file:   mysql-test/std_data/galera-upgrade-server-cert.pem
	new file:   mysql-test/std_data/galera-upgrade-server-key.pem
	modified:   mysql-test/suite/galera/disabled.def
	modified:   mysql-test/suite/galera/r/MW-416.result
	modified:   mysql-test/suite/galera/r/MW-44.result
	modified:   mysql-test/suite/galera/r/galera_sst_mysqldump_with_key,debug.rdiff
	modified:   mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result
	modified:   mysql-test/suite/galera/t/MW-416.test
	modified:   mysql-test/suite/galera/t/galera_kill_applier.test
2019-07-04 19:42:30 +03:00
Sachin
85f1022410 Fix galera_log_bin
Cleanup the nodes before and after test run
2019-06-29 01:08:30 +05:30
Sachin
354b14e718 Fix galera_as_slave_gtid.test galera_var_gtid_domain_id galera.mdev_10518.test
Clean the binlog on nodes after test is complete
2019-06-27 15:08:20 +05:30
Sachin
aa55d93cde Fix galera_log_output_csv.test
Truncate the mysql.slow_log table after test is complete.
2019-06-26 15:06:34 +05:30
mkaruza
48570eb65c MDEV-18832 Galera: 10.4 node crashed with Assertion `state() == s_committing' if you create SEQUENCE, use it, then drop and recreate and use again (#1339)
We could still end committing to binlog even in rollback.
Do not proceed with WSREP commit in this case.
2019-06-18 12:36:29 +03:00
Oleksandr Byelkin
4a3d51c76c Merge branch '10.2' into 10.3 2019-06-14 07:36:47 +02:00
Jan Lindström
371a8a6615 Galera test cleanup. 2019-06-13 13:18:54 +03:00
Daniele Sciascia
4e0c6139b2 Minor Galera MTR test fixes (#1326) 2019-06-07 13:54:16 +03:00
Marko Mäkelä
f98bb23168 Merge 10.3 into 10.4 2019-05-29 22:17:00 +03:00
Marko Mäkelä
90a9193685 Merge 10.2 into 10.3 2019-05-29 11:32:46 +03:00
Oleksandr Byelkin
1d00f81921 fix of Galera test 2019-05-19 23:31:56 +02:00
Oleksandr Byelkin
c07325f932 Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
Jan Lindström
cd87e4e134 MDEV-13549: Timeout in wait_condition.inc for PROCESSLIST
Use wsrep sync wait instead of unnecessary waits and
correct slave setting.
2019-05-17 18:30:34 +03:00
Jan Lindström
bc511443b1 MDEV-17061: Test failure on galera.galera_gcs_fc_limit
Remove unnecessary sleeps and fix wait_condition to use
wsrep_flow_control_paused i.e. we wait until flow control
pauses a transaction on master.
2019-05-17 18:30:28 +03:00
Jan Lindström
61469b3a3b MDEV-13549: Timeout in wait_condition.inc for PROCESSLIST
Use wsrep sync wait instead of unnecessary waits and
correct slave setting.
2019-05-17 08:29:45 +03:00
Jan Lindström
579c1a8c20 MDEV-17061: Test failure on galera.galera_gcs_fc_limit
Remove unnecessary sleeps and fix wait_condition to use
wsrep_flow_control_paused i.e. we wait until flow control
pauses a transaction on master.
2019-05-17 08:29:15 +03:00
Jan Lindström
ea77162452 MDEV-19423: Galera test failure on galera.MDEV-16509
Make sure that SIGNALs are not overwritten before they
are received.
2019-05-15 12:09:12 +03:00
Oleksandr Byelkin
c51f85f882 Merge branch '10.2' into 10.3 2019-05-12 17:20:23 +02:00
Jan Lindström
9d3e2a7ca2 Merge 10.1 into 10.2 2019-05-08 20:05:30 +03:00
Jan Lindström
db9622f1f5 MDEV-19405: Galera test failure on galera_parallel_autoinc_largetrx
Test case was not stable. Fixed also galera_parallel_autoinc_manytrx
as it has the same problem.
2019-05-07 12:51:59 +03:00
Oleksandr Byelkin
8cbb14ef5d Merge branch '10.1' into 10.2 2019-05-04 17:04:55 +02:00
Vladislav Vaintroub
e8778f1c7c MDEV-19265 Server should throw warning if event is created and event_scheduler = OFF 2019-04-28 12:49:59 +02:00
Teemu Ollakka
eb872ceb27 Fixed wsrep replaying for stored procedures (#1256)
- Changed replaying to always allocate a separate THD object
  for applying log events. This is to avoid tampering original
  THD state during replay process.
- Return success from sp_instr_stmt::exec_core() if replaying
  succeeds.
- Do not push warnings/errors into diagnostics area if the
  transaction must be replayed. This is to avoid reporting
  transient errors to the client.

Added two tests galera_sp_bf_abort, galera_sp_insert_parallel.
Wsrep-lib position updated.
2019-04-06 12:33:51 +03:00
Jan Lindström
fe62ff6e1c MDEV-18265: Replace deprecated variable debug to debug_dbug on Galera tests
deleted:    mysql-test/suite/galera/r/MW-86.result
	deleted:    mysql-test/suite/galera/r/mysql-wsrep#216.result
	modified:   mysql-test/suite/galera/t/GCF-1081.test
	modified:   mysql-test/suite/galera_3nodes_sr/r/GCF-832.result
	modified:   mysql-test/suite/galera_3nodes_sr/t/GCF-810A.test
	modified:   mysql-test/suite/galera_3nodes_sr/t/GCF-810B.test
	modified:   mysql-test/suite/galera_3nodes_sr/t/GCF-810C.test
	modified:   mysql-test/suite/galera_3nodes_sr/t/GCF-832.test
	modified:   mysql-test/suite/galera_sr/r/mysql-wsrep-features#35.result
	modified:   mysql-test/suite/galera_sr/t/mysql-wsrep-features#35.test
2019-04-06 12:26:54 +03:00
Jan Lindström
27ae38e034 MDEV-18590: galera.versioning_trx_id: Test failure: mysqltest: Result content mismatch
Add wsrep sync waits and if expected result is not reached print
out current contents.
2019-03-29 10:59:04 +02:00
Marko Mäkelä
d0116e10a5 Revert MDEV-18464 and MDEV-12009
This reverts commit 21b2fada7a
and commit 81d71ee6b2.

The MDEV-18464 change introduces a few data race issues. Contrary to
the documentation, the field trx_t::victim is not always being protected
by lock_sys_t::mutex and trx_t::mutex. Most importantly, it seems
that KILL QUERY could wrongly avoid acquiring both mutexes when
invoking lock_trx_handle_wait_low(), in case another thread had
already set trx->victim=true.

We also revert MDEV-12009, because it should depend on the MDEV-18464
fix being present.
2019-03-28 12:39:50 +02:00
Jan Lindström
81d71ee6b2 MDEV-12009: Allow to force kill user threads/query which are flagged as high priority by Galera
As noted on kill_one_thread SUPER should be able to kill even
system threads i.e. threads/query flagged as high priority or
wsrep applier thread. Normal user, should not able to kill
threads/query flagged as high priority (BF) or wsrep applier
thread.
2019-03-28 08:43:44 +02:00
Marko Mäkelä
514b305dfb Merge 10.3 into 10.4
The MDEV-17262 commit 26432e49d3
was skipped. In Galera 4, the implementation would seem to require
changes to the streaming replication.

In the tests archive.rnd_pos main.profiling, disable_ps_protocol
for SHOW STATUS and SHOW PROFILE commands until MDEV-18974
has been fixed.
2019-03-20 10:41:32 +02:00