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

8986 Commits

Author SHA1 Message Date
Kristian Nielsen
ef82cb7c2c Merge MDEV-8725 into 10.1 2015-09-02 10:53:37 +02:00
Kristian Nielsen
999c43aeb7 MDEV-8725: Assertion `!(thd->rgi_slave && thd-> rgi_slave->did_mark_start_commit)' failed in ha_rollback_trans
The assertion is there to catch cases where we rollback while
mark_start_commit() is active. This can allow following event groups
to be replicated too early, causing conflicts.

But in this case, we have an _explicit_ ROLLBACK event in the binlog,
which should not assert.

We fix this by delaying the mark_start_commit() in the explicit
ROLLBACK case. It seems safest to delay this in ROLLBACK case anyway,
and there should be no reason to try to optimise this corner case.
2015-09-02 09:57:18 +02:00
Alexander Barkov
4f37a861c9 The fix for MDEV-8723 unintentionally broke vcol_supported_sql_funcs_myisam
and vcol_supported_sql_funcs_innodb. Moving the test for using CHARSET(),
COLLATION(), COERCIBILITY() in virtual column from
vcol_supported_sql_funcs_xxx to vcol_blocked_sql_funcs_xxx,
as these functions are not supported in virtual columns any longer.
Discussed with Sanja on IRC.
2015-09-02 11:51:07 +04:00
Jan Lindström
c0b7bf2625 MDEV-8683: Bunch of tests fail in buildbot on new InnoDB variables 2015-08-26 18:07:34 +03:00
Elena Stepanova
cf154cc9d2 MDEV-8676 Some storage_engine tests fail on 10.1
- foreign_keys: adjusted according to code changes;
- type_spatial: adjusted according to code changes;
- type_spatial_indexes (for MyISAM): disabled till MDEV-8675 is fixed
2015-08-26 02:09:57 +03:00
Jan Lindström
871259f171 MDEV-8665: innodb.innodb_bug14147491 fails in buildbot on some debug builds
Added MTR suppressions for database corruption that is intentionally
caused in test.
2015-08-25 16:15:22 +03:00
Monty
4374da63f0 Merge /my/maria-10.1-default into 10.1 2015-08-18 11:27:00 +03:00
Monty
dfac82e44d Fixed failing tests and compiler warnings
- UNINIT_VAR() was required for 4.8.3 on openSUSE 13.2
2015-08-18 11:18:58 +03:00
Monty
6b20342651 Ensure that fields declared with NOT NULL doesn't have DEFAULT values if not specified and if not timestamp or auto_increment
In original code, sometimes one got an automatic DEFAULT value in some cases, in other cases not.

For example:
create table t1 (a int primary key)      - No default
create table t2 (a int, primary key(a))  - DEFAULT 0
create table t1 SELECT ....              - Default for all fields, even if they where defined as NOT NULL
ALTER TABLE ... MODIFY could sometimes add an unexpected DEFAULT value.

The patch is quite big because we had some many test cases that used
CREATE ... SELECT or CREATE ... (...PRIMARY KEY(xxx)) which doesn't have an automatic DEFAULT anymore.

Other things:
- Removed warnings from InnoDB when waiting from semaphore (got this when testing things with --big)
2015-08-18 11:18:57 +03:00
Alexander Barkov
86a3613d4e MDEV-8441 Bad SHOW CREATE TABLE output for a table with a virtual column 2015-08-10 11:46:41 +04:00
Nirbhay Choubey
cd1a11ace3 MDEV-7205 : Galera cluster & sql_log_bin = off don't work
While sql_bin_log=1(0) is meant to control binary logging for the
current session so that the updates to do(not) get logged into the
binary log to be replicated to the async MariaDB slave. The same
should not affect galera replication.

That is, the updates should always get replicated to other galera
nodes regardless of sql_bin_log's value.

Fixed by making sure that the updates are written to binlog cache
irrespective of sql_bin_log.

Added test cases.
2015-08-08 15:04:15 -04:00
Jan Lindström
3307eaab68 MDEV-8582: innodb_force_primary_key option does not force PK or unique key
Analysis: Handler table flag HA_REQUIRE_PRIMARY_KEY alone is not enough
to force primary or unique key, if table has at least one NOT NULL
column and secondary key for that column.

Fix: Add additional check that table really has primary key or
unique key for InnoDB terms.
2015-08-08 10:39:01 +03:00
Kristian Nielsen
dbd205797b Merge MDEV-8302 into 10.1 2015-08-04 12:39:22 +02:00
Kristian Nielsen
9b9c5e890c MDEV-8302: Duplicate key with parallel replication
This bug is essentially another variant of MDEV-7458.

If a transaction conflict caused a deadlock kill of T2 in record_gtid()
during commit, the code would do a rollback _before_ running
rgi->unmark_start_commit(). This creates a race where following transactions
could start too early (before T2 has completed its transaction retry). This
in turn could lead to replication failure, if there was a conflict that
caused eg. duplicate key error or similar.

The fix is to remove these rollbacks (in Query_log_event::do_apply_event()
and Xid_log_event::do_apply_event(). They seem out-of-place; code in
log_event.cc generally does not roll back on error, this is handled higher
up.

In addition, because of the extreme difficulty of reproducing bugs like
MDEV-7458 and MDEV-8302, this patch adds some extra precations to try to
detect (in debug builds) or prevent (in release builds) similar bugs.
ha_rollback_trans() will now call unmark_start_commit() if needed (and
assert in debug build when a caller does rollback without unmark first).

We also add an extra check for thd->killed() so that we avoid doing
mark_start_commit() if we already have a pending deadlock kill.

And we add a missing unmark_start_commit() call in the error case, found by
the above assertion.
2015-08-04 11:40:19 +02:00
Sergei Golubchik
d517886482 Merge branch 'bb-10.1-serg' into 10.1 2015-07-23 15:48:26 +02:00
Sergei Golubchik
0ae8bae98f fix for 32-bit tests 2015-07-22 18:46:36 +02:00
Jan Lindström
62b5a56191 MDEV-8501: encryption.create_or_replace fails in buildbot on P8 builders
Analysis: There is race between drop table and encryption threads that
could cause encryption thread to enter mutex that has been already
released.

Fix: When destroying crypt_data first enter the mutex and set crypt data
unavailable, then release the memory and clean up the data. This should
make the race more unprobable. Additionally, added big_test for
create_or_replace as it could fail testcase timeout
if you have slow I/O (tested that testcase passes with --mem).
2015-07-21 12:51:14 +03:00
Elena Stepanova
c57edf3b9a MDEV-8500 sys_vars.sysvars_innodb '32bit,xtradb' fails
The version in sysvars_innodb,32bit,xtradb.rdiff was not updated
2015-07-20 00:28:22 +03:00
Kristian Nielsen
13dbb6fa9e Merge MDEV-8496 into 10.1 2015-07-19 09:30:36 +02:00
Kristian Nielsen
44c4b2304b MDEV-8496: gtid_ignore_duplicates treats gtid_seq_no as 32-bit
--gtid-ignore-duplicates was comparing sequence numbers as 32-bit, so
after 2**32 transactions things would start to fail.
2015-07-19 09:28:22 +02:00
Elena Stepanova
d258f5ff04 MDEV-8495 encryption.innodb_first_page fails sporadically in buildbot
The test did not wait until the server shuts down
2015-07-17 19:20:50 +03:00
Nirbhay Choubey
df0498fd76 Update sys_vars.sys_vars_wsrep result. 2015-07-14 21:38:17 -04:00
Nirbhay Choubey
dced5146bd Merge branch '10.0-galera' into 10.1 2015-07-14 16:05:29 -04:00
Monty
f195f93903 Cleanups, fixed warnings from valgrind, fixed failing tests (because on changes in WSREP initialization) 2015-07-10 12:49:05 +03:00
Nirbhay Choubey
a5f4412bd4 Fix embedded result to reflect increased system variable's max value length. 2015-07-06 11:40:56 -04:00
Nirbhay Choubey
f0ce8482c1 Adjust result files to reflect increased system variable's max value length. 2015-07-01 22:52:59 -04:00
Jan Lindström
92627e74ca Add show warnings to test to find out the reason for create failure. 2015-07-01 10:21:23 +03:00
Vicențiu Ciorbaru
498a264d19 [MDEV-6877] Update test results to accound for binlog_row_image variable. 2015-06-30 19:51:09 +03:00
Vicențiu Ciorbaru
1a3321b649 [MDEV-6877] Added basic tests for binlog_row_image using minimal and noblob values 2015-06-30 14:44:33 +03:00
Vicențiu Ciorbaru
4d856e362e [MDEV-6877] Added tests for binlog_row_image using noblobs switch 2015-06-30 14:30:38 +03:00
Vicențiu Ciorbaru
b9d1d348dd [MDEV-6877] Added test suite for binlog_row_image sys var 2015-06-30 13:17:08 +03:00
Alexander Barkov
768620ee5c MDEV-8189 field<>const and const<>field are not symmetric 2015-06-30 12:56:31 +04:00
Jan Lindström
7923c0cff2 Fix test failure where the environment was not fully restored. 2015-06-29 20:03:57 +03:00
Jan Lindström
ad9b3263d3 MDEV-8391: encryption.innodb-page_encryption_compression fails
Test create_or_replace should make sure that background decrypt
operation is finished and flush all dirty pages using restart
to clean up the database before ending.
2015-06-29 08:49:58 +03:00
Sergei Golubchik
7567b9fa10 update tests to pass 2015-06-28 18:51:40 +02:00
Sergei Golubchik
55b96d2708 bump the VERSION to 10.1.6 and related changes
fix two #if MYSQL_VERSION_ID > 100105
2015-06-28 12:09:18 +02:00
Sergei Golubchik
658992699b Merge tag 'mariadb-10.0.20' into 10.1 2015-06-27 20:35:26 +02:00
Sergei Golubchik
8036ad0a08 misc encryption tests fixes
* support statically compiled file_key_management when possible
* rename encryption.encryption_create_or_replace -> encryption.create_or_replace
* delete unnecessary *.opt file (including
  have_key_management_plugin.inc is enough)
* remove unnecessary LOWER() for strings that are compared
  case insensitively anyway
2015-06-27 09:40:54 +02:00
Sergei Golubchik
627c6e812b MDEV-8298 sys_vars.all_vars fails in -DWITH_WSREP=OFF build
Disable sys_vars.all_vars test. There's no need to write
boilerplate tests for every new system variable, our
INFORMATION_SCHEMA.SYSTEM_VARIABLES and sysvar_* tests
are now used to show all basic properties of all variables.
2015-06-27 09:40:54 +02:00
Sergei Golubchik
e20be69ecc update test results and 32-bit rdiffs 2015-06-27 09:40:42 +02:00
Jan Lindström
d535728165 MDEV-8219: enforce_storage_engine cannot be set globally
Change session only variable enforce_storage_engine to be
session variable and make sure that also global value
is used if session variable is not set.
2015-06-26 11:43:16 +03:00
Alexander Barkov
115904c2c8 MDEV-7824 [Bug #68041] Zero date can be inserted in strict no-zero mode through a default value 2015-06-26 10:16:51 +04:00
Jan Lindström
874df5092b Fix failing test case. 2015-06-26 08:34:09 +03:00
Alexey Botchkov
9111ab7127 GIS-related tests started to fail as some related functions
don't return NULL-s anymore, and actually they're not BOOLEAN.
Fixed.
2015-06-25 13:16:27 +05:00
Kristian Nielsen
565960816e Merge MDEV-8354 into 10.1 2015-06-24 17:18:12 +02:00
Kristian Nielsen
b89de2b2ce MDEV-8354: out-of-order error with --gtid-ignore-duplicates and row-based replication
The --gtid-ignore-duplicates option was not working correctly with row-based
replication. When a row event was completed, but before committing, there
was a small window where another multi-source SQL thread could wrongly try
to re-execute the same transaction, without properly ignoring the duplicate
GTID. This would lead to duplicate key error or out-of-order GTID error or
similar.

Thanks to Matt Neth for reporting this and giving an easy way to reproduce
the issue.
2015-06-24 16:52:50 +02:00
Jan Lindström
b7ff2f1b59 MDEV-7472: Implementation of user statements for handling the xtradb changed page bitmaps
Introduce a new dummy INFORMATION_SCHEMA.CHANGED_PAGE_BITMAPS table to XtraDB
with reset_table callback to allow FLUSH NO_WRITE_TO_BINLOG CHANGED_PAGE_BITMAPS
to be called from innobackupex.
2015-06-23 14:46:06 +03:00
Sergey Vojtovich
84568c2965 MDEV-8030 - Apc_target::disable() locks mutex twice
Moved Apc_target::destroy(), Apc_target::enable() and Apc_targe::disable()
definitions to my_apc.h so that they can be inlined.

Apc_targe::disable() now calls Apc_target::process_apc_requests() only if
there're APC requests. This saves one pthread_mutex_lock() call.

Overhead change:
Apc_target::disable              0.04% -> out of radar
Apc_target::enable               0.03% -> out of radar
Apc_target::process_apc_requests 0.02% -> out of radar
pthread_mutex_lock               0.43% -> 0.42%
pthread_mutex_unlock             0.26% -> 0.25%
2015-06-23 09:54:36 +04:00
Jan Lindström
eb2c170bb0 MDEV-8303; Dumping buffer pool noisy in the logs.
Added new dynamic configuration variable innodb_buf_dump_status_frequency
to configure how often buffer pool dump status is printed in the logs.
A number between [0, 100] that tells how oftern buffer pool dump status
in percentages should be printed. E.g. 10 means that buffer pool dump
status is printed when every 10% of number of buffer pool pages are
dumped. Default is 0 (only start and end status is printed).
2015-06-18 12:20:21 +03:00
Sergei Golubchik
b56ad494b4 MDEV-8287 DROP TABLE suppresses all engine errors
in ha_delete_table()
* only convert ENOENT and HA_ERR_NO_SUCH_TABLE to warnings
* only return real error codes (that is, not ENOENT and
  not HA_ERR_NO_SUCH_TABLE)
* intercept HA_ERR_ROW_IS_REFERENCED to generate backward
  compatible ER_ROW_IS_REFERENCED

in mysql_rm_table_no_locks()
* no special code to handle HA_ERR_ROW_IS_REFERENCED
* no special code to handle ENOENT and HA_ERR_NO_SUCH_TABLE
* return multi-table error ER_BAD_TABLE_ERROR <table list> only
  when there were many errors, not when there were many
  tables to drop (but only one table generated an error)
2015-06-16 23:58:40 +02:00