Commit graph

34283 commits

Author SHA1 Message Date
Sergei Golubchik
0f64a927a9 merge 2014-12-19 11:44:03 +01:00
Sergei Golubchik
a978bdda1e mysql-5.5.41 merge 2014-12-19 11:35:44 +01:00
Sergey Petrunya
13e1acc58f Merge 5.3 -> 5.5 2014-12-18 20:38:47 +03:00
Sergey Petrunya
b75090c7de MDEV-6830: Server crashes in best_access_path after a sequence of SELECTs ...
generate_derived_keys_for_table() did not work correctly in the case where
- it had a potential index on derived table
- however, TABLE::check_tmp_key() would disallow creation of this index 
  after looking at its future key parts (because of the key parts exceeding 
  max. index length)
- the code would leave a KEYUSE structure that refers to a non-existant index.
  Depending on further optimizer calculations, this could cause a crash.
2014-12-18 20:06:49 +03:00
Kristian Nielsen
826d7c68d2 MDEV-7342: Test failure in perfschema.setup_instruments_defaults
Fix a possible race in the test case when restarting the server.

Make sure we have disconnected before waiting for the reconnect
that signals that the server is back up. Otherwise, we may in
rare cases continue the test while the old server is shutting
down, eventually leading to "connection lost" failure.
2014-12-18 11:59:08 +01:00
Sergei Golubchik
724dbaabc0 MDEV-7150 Wrong auto increment values on INSERT .. ON DUPLICATE KEY UPDATE when the inserted columns include NULL in an auto-increment column
when restoring auto-inc value in INSERT ... ON DUPLICATE KEY UPDATE, take into account that
1. it may be changed in the UPDATE clause (old code did that)
2. it may be changed in the INSERT clause and then cause a dup key (old code missed that)
2014-12-18 00:13:16 +01:00
unknown
ff5349bd6c MDEV-6985: MariaDB crashes on stored procedure call
Item_ident fixed to allow double cleanup().
2014-12-17 14:35:13 +01:00
Alexander Barkov
357cb12d87 DEV-7221 from_days fails after null value 2014-12-16 15:33:13 +04:00
Michael Widenius
5257d71e0e MDEV-6855 Assertion `cond_type == Item::FUNC_ITEM' failed in check_group_min_max_predicates with GROUP BY, aggregate in WHERE SQ, multi-part key
mysql-test/r/group_by.result:
  Test for MDEV-6855
mysql-test/t/group_by.test:
  Test for MDEV-6855
sql/item.h:
  Fixed spelling error
sql/opt_range.cc:
  Added handling of cond_type == Item::CACHE_ITEM in WHERE clauses for MIN/MAX optimization.
  Fixed indentation
2014-12-15 17:13:47 +02:00
Michael Widenius
10ab3e6887 MDEV-4010 Deadlock on concurrent INSERT .. SELECT into an Aria table with statement binary logging
There was a bug in lock handling when mixing INSERT ... SELECT on the same table.


mysql-test/suite/maria/insert_select.result:
  Test case for MDEV_4010
mysql-test/suite/maria/insert_select.test:
  Test case for MDEV_4010
mysys/thr_lock.c:
  We wrongly alldoed TL_WRITE_CONCURRENT_INSERT when there was a TL_READ_NO_INSERT lock
2014-12-15 14:49:23 +02:00
Michael Widenius
80ee57a30a MDEV-6896 kill user command cause MariaDB crash
mysql-test/r/kill-2.result:
  test case for MDEV-6896
mysql-test/t/kill-2-master.opt:
  test case for MDEV-6896
mysql-test/t/kill-2.test:
  test case for MDEV-6896
sql/sql_parse.cc:
  Use host_or_ip instead of host as host may be 0
2014-12-15 13:01:11 +02:00
Michael Widenius
4a32d9c058 MDEV-6871 Multi-value insert on MyISAM table that makes slaves crash (when using --skip-external-locking=0)
Problem was that repair() did lock and unlock tables, which leaved already locked tables in wrong state

include/my_check_opt.h:
  Added option T_NO_LOCKS to disable locking during repair()
  Fixed duplicated bit T_NO_CREATE_RENAME_LSN
mysql-test/suite/rpl/r/myisam_external_lock.result:
  Test case for MDEV-6871
mysql-test/suite/rpl/t/myisam_external_lock-slave.opt:
  Test case for MDEV-6871
mysql-test/suite/rpl/t/myisam_external_lock.test:
  Test case for MDEV-6871
storage/maria/ha_maria.cc:
  Don't lock tables during enable_indexes()
  Removed some calls to current_thd
storage/myisam/ha_myisam.cc:
  Don't lock tables during enable_indexes()
  Removed some calls to current_thd
2014-12-15 11:16:33 +02:00
Jan Lindström
76c3981e43 Fix test case to allow success on create table (Windows). 2014-12-10 12:12:09 +02:00
Elena Stepanova
c9a8859db6 MDEV-7255 Failures in engines/* tests 2014-12-07 21:24:02 +04:00
Elena Stepanova
010724f6c5 Run engines tests for MyISAM and in-built InnoDB 2014-12-05 14:23:24 +04:00
Jan Lindström
5bba1109b2 Add possibility to success on Windows. 2014-12-04 14:10:41 +02:00
Elena Stepanova
c8f7f98737 MDEV-7255 Failures in engines/* tests, part 6
Updated hardcoded event numbers according to current GTID logic
2014-12-04 02:54:42 +04:00
Elena Stepanova
f02f06172c MDEV-7255 Failures in engines/* tests, part 5
RENAME TABLE on a non-existing table produces a better error message
2014-12-04 02:17:09 +04:00
Elena Stepanova
d5f52fec77 MDEV-7255 Failures in engines/* tests, part 4
Updated engines/* test results according to the bugfix MDEV-5894
(MySQL BUG#34750: Print database name in Unknown Table error message)
2014-12-04 02:16:41 +04:00
Elena Stepanova
27ac97ef9e MDEV-7255 Failures in engines/* tests, part 3
Error message was changed along with CREATE OR REPLACE TABLE fixes
2014-12-04 01:59:25 +04:00
Elena Stepanova
aafdc4b16e MDEV-7255 Failures in engines/* tests, part 2
Result files updated according to bugfix for MySQL#55843 (Handled 
condition appears as not handled)
2014-12-04 01:52:03 +04:00
Elena Stepanova
cc06415fd6 MDEV-7255 Failures in engines/* tests, part 1
In 10.0 output of SHOW DATABASES appears to be sorted, while in result
files it is not. 
Added sorted_result for certainty and updated result files.
2014-12-03 19:53:40 +04:00
Sergei Golubchik
2b5db1d5bc put at least some output-generating statement in the test
otherwise mysqltest complains "No queries executed but non-empty result file found!"
2014-12-02 20:35:45 +01:00
Sergei Golubchik
b3aed01ae9 fix include/not_embedded.inc to be independent from the environment
in particular, not fail with --vertical_results
2014-12-02 19:15:16 +01:00
Kristian Nielsen
5fc2814698 MDEV-7251: Test failure in rpl.rpl_parallel
There was a race. The test case was expecting the slave to start processing a
particular DELETE statement, then the test would stop the slave at this
point. But there was missing something to wait until the slave would actually
reach this point; thus depending on timing it was possible that the slave
would be stopped too early, causing .result file difference.

Fixed by adding an appropriate wait to the test case.
2014-12-02 18:11:05 +01:00
Jan Lindström
6cd78eedea MDEV-7242: innodb.innodb-mdev7046 fails in various ways on buildbot
Problem with test is that test causes OS failures that change. 
Idea with test is just to test that server does not crash, no other
output is necessary.
2014-12-02 13:26:45 +02:00
Kristian Nielsen
0450623f73 MDEV-7236: rpl.rpl_gtid_basic failed in buildbot with wait_condition timeout
Fix rare failures in test case rpl.rpl_gtid_basic:

 - Add another possible error code when a connection is killed.

 - Make sure that the IO thread has had time to complete its stop after START
   SLAVE UNTIL. Otherwise, START SLAVE might run before IO thread stop,
   leaving the test case with a stopped IO thread that eventually causes a
   wait timeout.
2014-12-02 12:10:21 +01:00
Kristian Nielsen
50b42441a6 MDEV-7241: rpl.rpl_parallel2 fails sporadically in buildbot
There was a race, a small window between updating slave position and updating
Seconds_Behind_Master, during which the test case could see the wrong value.

Fix by waiting for the expected status to appear.
2014-12-02 09:27:22 +01:00
Sergei Golubchik
433b28cede add a proper cleanup to innodb.innodb-mdev7046 test 2014-12-01 23:56:36 +01:00
Sergei Golubchik
4e9e04b28b tests that require server restart cannot be run with --embedded 2014-12-01 15:35:01 +01:00
Sergei Golubchik
a4baf9b3ea test failure: make list_files more selective to prevent db.opt from showing up 2014-12-01 13:52:49 +01:00
Jan Lindström
df20184c03 MDEV-7252: Test failure on innodb.innodb_bug12400341 at Windows
Problem is that there could be undo slots from previous runs.
2014-12-03 13:38:39 +02:00
Jan Lindström
e544bcd16d MDEV-7243: innodb-change-buffer-recovery fails on windows
Problem is that on Windows command "perl" failed with error: 255  my_errno: 0  errno: 0.
Do not run on Windows.
2014-12-02 12:19:29 +02:00
Elena Stepanova
e0c71a9ab8 MDEV-7169: innodb.innodb_bug14147491 fails in buildbot on Windows
Applied the fix previously pushed into 10.0. 
Initial Jan's commit comment:
Problem is that test could open Microsoft C++ Client Debugger
windows with abort exception. Lets not try to test this on
windows.
2014-12-02 01:31:49 +04:00
Jan Lindström
e5802c38f9 Better comments and add a test case. 2014-11-25 08:06:41 +02:00
Sergei Golubchik
e3108e6d2b silence stderr correctly 2014-11-22 18:43:53 +01:00
Kristian Nielsen
52b25934d7 MDEV-7237: Parallel replication: incorrect relaylog position after stop/start the slave
The replication relay log position was sometimes updated incorrectly at the
end of a transaction in parallel replication. This happened because the relay
log file name was taken from the current Relay_log_info (SQL driver thread),
not the correct value for the transaction in question.

The result was that if a transaction was applied while the SQL driver thread
was at least one relay log file ahead, _and_ the SQL thread was subsequently
stopped before applying any events from the most recent relay log file, then
the relay log position would be incorrect - wrong relay log file name. Thus,
when the slave was started again, usually a relay log read error would result,
or in rare cases, if the position happened to be readable, the slave might
even skip arbitrary amounts of events.

In GTID mode, the relay log position is reset when both slave threads are
restarted, so this bug would only be seen in non-GTID mode, or in GTID mode
when only the SQL thread, not the IO thread, was stopped.
2014-12-01 13:53:57 +01:00
Alexander Barkov
f8e1952be4 MDEV-7149 Constant propagation erroneously applied for LIKE
Simply disallowing equality propagation into LIKE.
A more delicate fix is be possible, but it would need too many changes,
which is not desirable in 10.0 at this point.
2014-11-28 18:11:58 +04:00
Kristian Nielsen
74e581b7c4 MDEV-7037: MariaDB 10.0 does not build on Debian / kfreebsd-i386/amd64 due to MTR failure: multi_source.gtid
MDEV-7106: Sporadic test failure in multi_source.gtid
MDEV-7153: Yet another sporadic failure of multi_source.gtid in buildbot

This patch fixes three races in the multi_source.gtid test case that could
cause sporadic failures:

1. Do not put SHOW ALL SLAVES STATUS in the output, the output is not stable.

2. Ensure that slave1 has replicated as far as expected, before stopping its
connection to master1 (otherwise the following wait will time out due to rows
not replicated from master1).

3. Ensure that slave2 has replicated far enough before connecting slave1 to it
(otherwise we get an error during connect that slave1 is ahead of slave2).
2014-11-27 09:34:41 +01:00
Jan Lindström
43054872be MDEV-7214: Test failure in main.partition_innodb
Problem is on test it tried to verify that no files were left
on test database.

Fix: There's no need to list other file types, it can only 
list *.par files
2014-11-26 14:33:55 +02:00
Kristian Nielsen
e79b7ca966 MDEV-7179: rpl.rpl_gtid_crash failed in buildbot with Warning: database page corruption or a failed
I saw two test failures in rpl.rpl_gtid_crash where we get this in the error
log:

141123 12:47:54 [Note] InnoDB: Restoring possible half-written data pages 
141123 12:47:54 [Note] InnoDB: from the doublewrite buffer...
InnoDB: Warning: database page corruption or a failed
InnoDB: file read of space 6 page 3.
InnoDB: Trying to recover it from the doublewrite buffer.
141123 12:47:54 [Note] InnoDB: Recovered the page from the doublewrite buffer.

This test case deliberately crashes the server, and if this crash happens
right in the middle of writing a buffer pool page to disk, it is not
unexpected that we can get a half-written page. The page is recovered
correctly from the doublewrite buffer.

So this patch adds a suppression for this warning in the error log for this
test case.
2014-11-25 14:19:11 +01:00
Kristian Nielsen
b79685902d MDEV-6903: gtid_slave_pos is incorrect after master crash
When a master slave restarts, it logs a special restart format description
event in its binlog. When the slave sees this event, it knows it needs to roll
back any active partial transaction, in case the master crashed previously in
the middle of writing such transaction to its binlog.

However, there was a bug where this rollback did not reset rgi->pending_gtid.
This caused the @@gtid_slave_pos to be updated incorrectly with the GTID of
the partial transaction that was rolled back.

Fix this by always clearing rgi->pending_gtid in cleanup_context(), hopefully
preventing similar bugs from turning up in other special cases where a
transaction is rolled back during replication.

Thanks to Pavel Ivanov for tracking down the issue and providing a test case.
2014-11-25 12:19:48 +01:00
Jan Lindström
f3bdf9d741 MDEV-7046: MySQL#74480 - Failing assertion: os_file_status(newpath, &exists, &type)
after Operating system error number 36 in a file operation.

Analysis: os_file_get_status did not handle error ENAMETOOLONG
correctly.

Fix: Add correct handling for error ENAMETOOLONG. Note that on InnoDB
case the error is not passed all the way up to server. That would
be bigger rewamp.
2014-11-25 11:38:01 +02:00
Jan Lindström
b62c4c6586 Better comments and add a test case. 2014-11-25 08:31:03 +02:00
Jan Lindström
77a6abf311 MDEV-7183: innodb-wl5522-debug-zip fails in buildbot on Windows
Problem is different path separators. Fixed by replacing
result.
2014-11-24 20:35:02 +02:00
Jan Lindström
876106804e MDEV-7169: innodb.innodb_bug14147491 fails in buildbot on Windows
Problem is that test could open Microsoft C++ Client Debugger
windows with abort exceptin. Lets not try to test this on
windows.
2014-11-24 20:25:17 +02:00
Jan Lindström
b7cee6251a MDEV-7168: Tests innodb.innodb_stats_create_table
innodb.innodb_stats_drop_locked fail and
innodb.innodb_stats_fetch_nonexistent fails in buildbot on Windows

Analysis: Problem is that innodb_stats_create_on_corrupted
test renames mysql.innodb.index_stats and all the rest
are dependend on this table.

Fix: After rename back to original, restart mysqld to
make sure that table is correct.
2014-11-24 19:37:38 +02:00
Jan Lindström
ef1ba3b1e6 MDEV-7164: innodb.innodb-alter-table-disk-full fails in buildbot on Windows
Analysis: Test case uses Linux specific error codes.

Fix: Can't run test case with Windows currently because requires
to inject error to system.
2014-11-24 15:26:47 +02:00
Alexey Botchkov
a726dbd634 MDEV-7157 plugins.server_audit fails sporadically in buildbot.
Records can get to the different place in the log when multiple thread
    are logged. So the delay added to let the record be saved on the same
    place.
2014-11-24 02:53:45 +04:00
Sergei Golubchik
ffc0ef6316 5.5 merge 2014-11-21 20:20:39 +01:00