Commit graph

172333 commits

Author SHA1 Message Date
Marko Mäkelä
e634fdcd5b WL#8845: Clarify the message about redo log format incompatibility
recv_find_max_checkpoint(): Refer to MariaDB 10.2.2 instead of
MySQL 5.7.9. Do not hint that a binary downgrade might be possible,
because there are many changes in InnoDB 5.7 that could make
downgrade impossible: a column appended to SYS_INDEXES, added
SYS_* tables, undo log format changes, and so on.
2017-08-29 21:58:02 +03:00
Marko Mäkelä
fdbdd3b131 MDEV-13625 Merge InnoDB test cases from MySQL 5.6 (part 1) 2017-08-29 18:36:03 +03:00
Marko Mäkelä
9e9a3b8ede Merge innodb.create-index test changes from MySQL 5.6 to MariaDB
Import the MySQL 5.6 addition from innodb.create-index to a new debug-only
test, innodb.create-index-debug. The existing test innodb.create-index
also runs on a debug server.
2017-08-29 18:35:30 +03:00
Marko Mäkelä
f56bd70f51 Adjust the imported MySQL 5.6 tests for MariaDB
FIXME: MDEV-13668 InnoDB unnecessarily rebuilds table

FIXME: MDEV-13671 InnoDB should use case-insensitive column name comparisons
like the rest of the server

FIXME: MDEV-13640 / Properly fix MDEV-9469 'Incorrect key file' on ALTER TABLE

FIXME: investigate result difference in innodb.innodb-alter-autoinc
and ensure that MariaDB does the right thing with auto_increment_increment
and auto_increment_offset, for both ALGORITHM=INPLACE and ALGORITHM=COPY
(Oracle MySQL behaviour differs between those two).
2017-08-29 18:33:30 +03:00
Marko Mäkelä
8d9298167e MDEV-13625 Merge InnoDB test cases from MySQL 5.6 (part 1)
Import some ALTER TABLE test cases from MySQL 5.6 without modification.
The adjustments will be in a separate commit.
2017-08-29 15:28:58 +03:00
Andrei Elkin
888a8b69bd MDEV-13437 InnoDB fails to return error for XA COMMIT or XA ROLLBACK in read-only mode
Assertions failed due to incorrect handling of the --tc-heuristic-recover
option when InnoDB is in read-only mode either due to innodb_read_only=1
or innodb_force_recovery>3. InnoDB failed to refuse a XA COMMIT or
XA ROLLBACK operation, and there were errors in the error handling in
the upper layer.

This was fixed by making InnoDB XA operations respect the
high_level_read_only flag. The InnoDB part of the fix and
parts of the test main.tc_heuristic_recover were provided
by Marko Mäkelä.

LOCK_log mutex lock/unlock had to be added to fix MDEV-13438.
The measure is confirmed by mysql sources as well.

For testing of the conflicting option combination, mysql-test-run is
made to export a new $MYSQLD_LAST_CMD. It holds the very last value
generated by mtr.mysqld_start().  Even though the options have been
also always stored in $mysqld->{'started_opts'} there were no access
to them beyond the automatic server restart by mtr through the expect
file interface.

Effectively therefore $MYSQLD_LAST_CMD represents a more general
interface to $mysqld->{'started_opts'} which can be used in wider
scopes including server launch with incompatible options.

Notice another existing method to restart the server with incompatible
options relying on $MYSQLD_CMD is is aware of $mysqld->{'started_opts'}
(the actual options that the server is launched by mtr). In order to use
this method they would have to be provided manually.

NOTE: When merging to 10.2, the file search_pattern_in_file++.inc
should be replaced with the pre-existing search_pattern_in_file.inc.
2017-08-29 11:59:59 +03:00
Elena Stepanova
05e7d35e89 MDEV-13583 Improvements for MTR rebootstrap introduced in MDEV-12042
- make re-bootstrap run with all extra options, not only InnoDB ones
- re-use previously created bootstrap.sql
- add --console
- fix debian patch to keep it applicable
2017-08-28 19:49:02 +03:00
Marko Mäkelä
582545a384 MDEV-13637 InnoDB change buffer housekeeping can cause redo log overrun and possibly deadlocks
The function ibuf_remove_free_page() may be called while the caller
is holding several mutexes or rw-locks. Because of this, this
housekeeping loop may cause performance glitches for operations that
involve tables that are stored in the InnoDB system tablespace.
Also deadlocks might be possible.

The worst impact of all is that due to the mutexes being held, calls to
log_free_check() had to be skipped during this housekeeping.
This means that the cyclic InnoDB redo log may be overwritten.
If the system crashes during this, it would be unable to recover.

The entry point to the problematic code is ibuf_free_excess_pages().
It would make sense to call it before acquiring any mutexes or rw-locks,
in any 'pessimistic' operation that involves the system tablespace.

fseg_create_general(), fseg_alloc_free_page_general(): Do not call
ibuf_free_excess_pages() while potentially holding some latches.

ibuf_remove_free_page(): Do call log_free_check(), like every operation
that is about to generate redo log should do.

ibuf_free_excess_pages(): Remove some assertions that are replaced
by stricter assertions in the log_free_check() that is now called by
ibuf_remove_free_page().

row_ins_sec_index_entry(), row_undo_ins_remove_sec_low(),
row_undo_mod_del_mark_or_remove_sec_low(),
row_undo_mod_del_unmark_sec_and_undo_update(): Call
ibuf_free_excess_pages() if the operation may involve allocating pages
and change buffering in the system tablespace.
2017-08-25 14:01:51 +03:00
Vladislav Vaintroub
cd35dd6a05 Windows : Do not use CRT routine to dump memory leaks.
Its output is useless,and, in case of large output, it also may prevent
with search_pattern_in_file.inc from working.
2017-08-24 15:49:50 +00:00
Vladislav Vaintroub
dd229430a9 Windows compile : make compilation fail on "uninitialized variable used" warning C4700
This is a genuine error, and will crash debug buildd in runtime checks if not fixed.
it is better to fail during compile.
2017-08-24 08:05:11 +00:00
Vladislav Vaintroub
7aa846e9e3 CONNECT engine: install ha_connect.lib 2017-08-23 23:30:51 +00:00
Vladislav Vaintroub
7b36395ee9 MDEV-13630 : dont install connect-specific JAR files if connect is not built. 2017-08-23 23:29:59 +00:00
Vladislav Vaintroub
db51ad1e01 Remove workaround for ancient and already fixed CMake bug in MSI creation.
The workaround, an extra cmake calls, somehow makes the
connect/cmake_install.cmake to lose installation of connect-engine's
specific jar files.
2017-08-23 18:11:24 +00:00
Marko Mäkelä
b8b3ba632b MDEV-13606 XA PREPARE transactions should survive innodb_force_recovery=1 or 2
When MySQL 5.0.3 introduced InnoDB support for two-phase commit,
it also introduced the questionable logic to roll back XA PREPARE
transactions on startup when innodb_force_recovery is 1 or 2.

Remove this logic in order to avoid unwanted side effects when
innodb_force_recovery is being set for other reasons. That is,
XA PREPARE transactions will always remain in that state until
InnoDB receives an explicit XA ROLLBACK or XA COMMIT request
from the upper layer.

At the time the logic was introduced in MySQL 5.0.3, there already
was a startup parameter that is the preferred way of achieving
the behaviour: --tc-heuristic-recover=ROLLBACK.
2017-08-23 13:03:13 +03:00
Jan Lindström
ce6c0e584e MDEV-8960: Can't refer the same column twice in one ALTER TABLE
Problem was that if column was created in alter table when
it was refered again it was not tried to find from list
of current columns.

mysql_prepare_alter_table:
  There is two cases
    (1) If alter table adds a new column and then later alter
        changes the field definition, there was no check from
	list of new columns, instead an incorrect error was given.
    (2) If alter table adds a new column and then later alter
        changes the default, there was no check from list of
	new columns, instead an incorrect error was given.
2017-08-18 10:11:54 +03:00
Sergei Golubchik
7581fb23e2 compilation fix for SLES 11 SP4
also fix innodb
2017-08-14 18:37:53 +02:00
Sergei Golubchik
fc556a8d94 compilation fix for SLES 11 SP4 2017-08-13 23:37:21 +02:00
Marko Mäkelä
cb9648a6b5 Revert an InnoDB Memcached plugin fix that was merged from MySQL 5.6.37
Revert the following change, because Memcached is not present
in MariaDB Server. We had better avoid adding dead code.

commit d9bc5e03d788b958ce8c76e157239953db60adb2
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Thu May 18 14:31:01 2017 +0530

    Bug  MYSQL GOT SIGNAL 6 ASSERTION FAILURE
2017-08-09 14:29:22 +03:00
Daniel Bartholomew
ef2e51c396 bump the VERSION 2017-08-07 10:09:23 -04:00
Vicențiu Ciorbaru
a346a5613e Merge branch 'bb-10.0-vicentiu' into 10.0
Includes Percona XtraDB and TokuDB 5.6.36-82.1
2017-08-04 09:32:40 +02:00
Vicențiu Ciorbaru
d2a19082c0 Disable rpl_tokudb_row_img_* tests
We need to pull rpl config files from MySQL before these tests can be
run.
2017-08-04 04:27:33 +03:00
Elena Stepanova
d85d6c9c41 Remove extra trailing spaces from the result file 2017-08-04 02:11:10 +03:00
Elena Stepanova
e1aded1420 Additions to 10.0.32 unstable test list after TokuDB merge 2017-08-04 02:10:19 +03:00
Vicențiu Ciorbaru
8b0edbfb5e Merge branch 'merge-tokudb-5.6' into 10.0 2017-08-04 00:56:16 +03:00
Vicențiu Ciorbaru
d5164569e4 Move tokudb_rpl to rpl-tokudb suite 2017-08-03 22:15:19 +03:00
Monty
e35670f498 MDEV-12972 Random and Frequent Segfault
Problem was a memory overflow in MRR

Reviewed by Sergei Petruna. Testcase by Elena
2017-08-03 19:28:05 +03:00
Vicențiu Ciorbaru
13e4bf674e Fix tokudb compilation post merge 2017-08-03 12:22:35 +03:00
Vicențiu Ciorbaru
40e213f210 Merge branch 'merge-tokudb-5.6' into 10.0 2017-08-03 12:11:31 +03:00
Vicențiu Ciorbaru
b1a2031ff9 5.6.36-82.1 2017-08-03 11:48:44 +03:00
Vicențiu Ciorbaru
b278c02e18 Merge branch 'merge-xtradb-5.6' into 10.0 2017-08-02 12:15:58 +03:00
Vicențiu Ciorbaru
04ae1207ed 5.6.36-82.1 2017-08-02 12:11:06 +03:00
Vicențiu Ciorbaru
60c9485a8e Merge connect/10.0 into 10.0
Squash all connect/10.0's commits into one and keep only
changes from storage/connect directory.
2017-08-01 11:39:10 +03:00
Elena Stepanova
31f4df4505 MDEV-12915 ST_Centroid does not return the same result than MySQL
Fix storage_engine test results
2017-08-01 09:52:59 +02:00
Vicențiu Ciorbaru
e075c5b491 Update myisam_debug test result post print_lock_error change 2017-08-01 09:52:59 +02:00
Vicențiu Ciorbaru
3772516391 Update innodb test result post print_lock_error change 2017-08-01 09:52:58 +02:00
Elena Stepanova
fd47b9639d List of unstable tests for 10.0.32 release 2017-08-01 09:52:58 +02:00
Sergei Golubchik
e6e23c0d49 MDEV-9739 Assertion `m_status == DA_ERROR || m_status == DA_OK' failed in Diagnostics_area::message() ; connect.xml* tests fail in buildbot 2017-08-01 09:52:57 +02:00
Sergei Golubchik
60343871a7 MDEV-8453 Alter table not returning engine errors
remove ~15 years old print_lock_error() function, use
handler::print_error() instead

Backport from 10.1
2017-08-01 09:52:57 +02:00
Alexey Botchkov
3d2067460e MDEV-12915 ST_Centroid does not return the same result than MySQL.
Test fixed for IA64.
2017-08-01 09:52:56 +02:00
Alexey Botchkov
7f5a8f176a MDEV-12915 ST_Centroid does not return the same result than MySQL.
Calculation of the polygon's centroid fixed.
2017-08-01 09:52:56 +02:00
Vicențiu Ciorbaru
f8736063de Merge branch 'merge-pcre' into 10.0 2017-07-30 11:58:56 +03:00
Vicențiu Ciorbaru
dba454ef54 8.41 2017-07-30 11:53:36 +03:00
Vicențiu Ciorbaru
051f8bc8e3 Merge branch 'merge-perfschema-5.6' into 10.0 2017-07-30 11:36:13 +03:00
Vicențiu Ciorbaru
900e3218cf Bump innodb version post merge 2017-07-30 11:35:48 +03:00
Vicențiu Ciorbaru
e1b5e98648 5.6.37 (no-changes) 2017-07-30 11:33:55 +03:00
Vicențiu Ciorbaru
226dd699df Merge remote-tracking branch 'merge/merge-innodb-5.6' into 10.0
Following merge from 5.6.36, this merge also rejects changes that
collided with the rejection of 6ca4f693c1ce472e2b1bf7392607c2d1124b4293.

We initially rejected 6ca4f693c1ce472e2b1bf7392607c2d1124b4293 because
it was introducing a new storage engine API method.
2017-07-29 20:51:29 +03:00
Vicențiu Ciorbaru
2160a85184 Update subselect test results to pass on 10.0
One query was removed due to inconsistent behaviour with subquery cache
enabled vs disabled. MDEV-13399 has been created to track this change
and fix.
2017-07-29 20:01:20 +03:00
Vicențiu Ciorbaru
d36bd69790 5.6.37 2017-07-29 19:59:51 +03:00
Vicențiu Ciorbaru
af40426fcd Fix purge_relay_logs post merge
slave_skip_counter must not be reset to 0 during purge_relay_logs. See
MDEV-4937 as to when this change happened.
2017-07-27 16:22:37 +03:00
Sergei Golubchik
7134afa22e MYSQL_BIN_LOG::open/close must be under LOCK_log 2017-07-27 12:43:45 +02:00