- 08 Apr, 2015 6 commits
-
-
Kristian Nielsen authored
-
Kristian Nielsen authored
The test case was missing --source include/wait_for_binlog_checkpoint.inc. So it could occasionally fail if the checkpoint managed to occur just at the right point in time between fetching the two binlog positions to compare.
-
Kristian Nielsen authored
Follow-up patch with 10.1-specific changes. Add test cases that more closely resembles the original bug report (which uses the 10.1-specific --slave-parallel-mode=optimistic). Also fix the code so that ANALYZE statements are now marked as DDL, and will not be attempted to speculatively run in parallel with other transactions.
-
Kristian Nielsen authored
-
Kristian Nielsen authored
The hangs occur when the group_commit_orderer object is freed before the last mark_start_commit() call on it - this loses the wakeup to other waiting worker threads, causing them to hang until killed manually. The object was freed because wakeup_subsequent_commits() was called two early in two places. For MDEV-7888, during ANALYZE TABLE, and for MDEV-7929 during record_gtid() after processing a DDL event. The group_commit_orderer object can be freed when its last transaction has called wait_for_prior_commit(). Fix by implementing a suspend/resume mechanism for wakeup_subsequent_commits() that can be used in places where a transaction is committed without this being the commit of the actual replication event group. Also add a protection mechanism (that asserts in debug builds) which can prevent the too-early free and hang if other similar bugs should remain in other parts of the code.
-
Sergei Petrunia authored
- JOIN::save_explain_data should also set JOIN::tracker (it already sets join_tab[0].tracker). This is needed for UNIONs inside subqueries.
-
- 07 Apr, 2015 3 commits
-
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
- 06 Apr, 2015 6 commits
-
-
Sergei Petrunia authored
- Remove ANALYZE's timing code off the the execution path of regular SELECTs. - Improve the tracker that tracks counts/execution times of SELECTs or DML statements: = regular execution just increments counters = ANALYZE will also collect timings.
-
Sergei Petrunia authored
Make the test work on case insensitive FS
-
Elena Stepanova authored
mysql.slow_log table has an extra column in 10.1, so the test table copy should too -- added the column.
-
Sergei Petrunia authored
-
Sergei Petrunia authored
Correctly initialize Explain_node::connection_type, remove unused Explain_node constructor.
-
Jan Lindström authored
MDEV-7918: A number of tests fail in valgrind builder with "InnoDB: Error: Requested state 6 current state 4 old_state 4" Problem with this state transfer is that different state transfers are protected with different mutexes.
-
- 03 Apr, 2015 4 commits
-
-
Sergei Petrunia authored
Print r_rows. There is no table tracking for reading from tmp table, yet.
-
Oleksandr Byelkin authored
-
Alexander Barkov authored
-
Jan Lindström authored
-
- 01 Apr, 2015 1 commit
-
-
Nirbhay Choubey authored
-
- 31 Mar, 2015 2 commits
-
-
Jan Lindström authored
-
Jan Lindström authored
MDEV-7878: innodb_scrub_background fails sporadically in buildbot (Failing assertion: offset > 0 && offset < UNIV_PAGE_SIZE) Problem was that when encrypted space was flushed page 0 is also updated but crypt data offset was sometimes not calculated.
-
- 30 Mar, 2015 4 commits
-
-
Kristian Nielsen authored
Conflicts: mysql-test/suite/rpl/r/rpl_parallel.result sql/rpl_parallel.cc
-
Kristian Nielsen authored
MDEV-7847: "Slave worker thread retried transaction 10 time(s) in vain, giving up", followed by replication hanging This patch fixes a bug in the error handling in parallel replication, when one worker thread gets a failure and other worker threads processing later transactions have to rollback and abort. The problem was with the lifetime of group_commit_orderer objects (GCOs). A GCO is freed when we register that its last event group has committed. This relies on register_wait_for_prior_commit() and wait_for_prior_commit() to ensure that the fact that T2 has committed implies that any earlier T1 has also committed, and can thus no longer execute mark_start_commit(). However, in the error case, the code was skipping the register_wait_for_prior_commit() and wait_for_prior_commit() calls. Thus commit ordering was not guaranteed, and a GCO could be freed too early. Then a later mark_start_commit() would reference deallocated GCO, which could lead to lost wakeup (causing slave threads to hang) or other corruption. This patch makes also the error case respect commit order. This way, also the error case gets the GCO lifetime correct, and the hang no longer occurs.
-
Kristian Nielsen authored
When a transaction in parallel replication needs to retry (eg. because of deadlock kill), first wait for all prior transactions to commit before doing the retry. This way, we avoid the retry once again conflicting with a prior transaction, requiring yet another retry. Without this patch, we saw "in the wild" that transactions had to be retried more than 10 times to succeed, which exceeds the default --slave_transaction_retries value and is in any case undesirable. (We already do this in 10.1 in "optimistic" parallel replication mode; this patch just makes the code use the same logic for "conservative" mode (only mode in 10.0)).
-
Alexander Barkov authored
making Item_string::is_cs_specified() virtual instead.
-
- 29 Mar, 2015 3 commits
-
-
Elena Stepanova authored
-
Elena Stepanova authored
MDEV-7874 deb package installation fails with "dpkg: dependency problems prevent configuration of mariadb-server" Added usr/share/mysql/maria_add_gis_sp_bootstrap.sql to the file lists
-
Oleksandr Byelkin authored
Tracking total time added in UPDATE/DELETE Fixed selectivity calculation in UPDATE/DELETE Macro definitions of time tracting fixed.
-
- 27 Mar, 2015 2 commits
-
-
Sergei Petrunia authored
-
Jan Lindström authored
-
- 26 Mar, 2015 1 commit
-
-
Alexander Barkov authored
MDEV-6218 Wrong result of CHAR_LENGTH(non-BMP-character) with 3-byte utf8 - Moving get_text() as a method to Lex_input_stream. - Moving the unescaping part into a separate function, this piece of code will later go to /strings most likely. - Removing Lex_input_string::yytoklen, as it's not needed any more.
-
- 25 Mar, 2015 7 commits
-
-
Oleksandr Byelkin authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
Fix BigEndian build for Cassandra SE
-
Dinar Valeev authored
On BigEndian build fails with: [ 109s] /home/abuild/rpmbuild/BUILD/mariadb-10.0.17/storage/cassandra/ha_cassandra.cc:890:22: error: invalid conversion from 'longlong* {aka long long int*} ' to 'long long int' [-fpermissive] [ 109s] value->x.long_value= (longlong *)*cass_data; [ 109s] ^ This commit fixes it Signed-off-by: Dinar Valeev <dvaleev@suse.com>
-
Sergei Petrunia authored
-
Alexander Barkov authored
-
- 24 Mar, 2015 1 commit
-
-
Kristian Nielsen authored
The patch for optimistic parallel replication as a memory optimisation moved the gco->installed field into a bit in gco->flags. However, that is just plain wrong. The gco->flags field is owned by the SQL driver thread, but gco->installed is used by the worker threads, so this will cause a race condition. The user-visible problem might be conflicts between transactions and/or slave threads hanging. So revert this part of the optimistic parallel replication patch, going back to using a separate field gco->installed like in 10.0.
-