Commit graph

89837 commits

Author SHA1 Message Date
Jan Lindström
4a3251595c MDEV-7403: should not pass recv_writer_thread_handle to CloseHandle()
Analysis: For some reason actual thread handle is not
returned on Windows instead lpThreadId was returned and
thread handle was closed after thread create. Later
CloseHandle was called for recv_writer_thread_handle
and psort_info->thread_hdl.

Fix: Return thread handle from os_thread_create()
also on Windows and store these thread handles also
in srv0start.cc so that they can be later closed.
2015-01-06 16:08:42 +02:00
Kristian Nielsen
6e0a00ed75 MDEV-7353: rpl_mdev6386 fails sporadically in buildbot
Use include/sync_with_master_gtid.inc instead of --sync_with_master to avoid a
race in the test case.

In parallel replication, the old-style slave position (which is used by
--sync_with_master) is updated out-of-order between parallel threads. This
makes it possible for the position to be updated past DROP TEMPORARY TABLE t2
just before the commit of INSERT INTO t1 SELECT * FROM t2 becomes visible.

In this case, there is a small window where a SELECT just after
--sync_with_master may not see the changes from the INSERT.
2015-01-06 09:52:09 +01:00
Michael Widenius
f0be022cf0 MDEV-5539 Empty results in UNION with Sphinx engine
The bug was fixed by Serg earlier by including Sphinx 2.2.6, but he forgot to update the test case.
2014-12-30 17:10:54 +02:00
Jan Lindström
de09076486 MDEV-7369: MariaDB build fails when XTRADB_STORAGE_ENGINE enabled
Patch by James Taylor.
2014-12-28 13:44:30 +02:00
Michael Widenius
bc21e7a67f Fixed compiler warnings
scripts/mysql_system_tables.sql:
  Removed DEFAULT from a blob definition as this can cause problems.
2014-12-19 09:25:29 +02: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
Nirbhay Choubey
fc1a7055a3 MDEV-6891: Addendum, update company name in copyright notice 2014-12-12 17:13:13 -05:00
Nirbhay Choubey
def5bd67ba MDEV-6891: Update company name 2014-12-12 10:40:27 -05:00
Kristian Nielsen
16fb2963ff Fix typo that breaks compilation on platforms without atomics. 2014-12-12 14:03:20 +01: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
f7fed26390 Storage engines tests: ALTER ONLINE works differently for MERGE in 10.0 2014-12-05 21:38:16 +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
d79cce86ab MDEV-4393: show_explain.test times out randomly
The problem was a race between the debug code in the server and the SHOW
EXPLAIN FOR in the test case.

The test case would wait for a query to reach the first point of interest
(inside dbug_serve_apcs()), then send it a SHOW EXPLAIN FOR, then wait for the
query to reach the next point of interest. However, the second wait was
insufficient. It was possible for the the second wait to complete immediately,
causing both the first and the second SHOW EXPLAIN FOR to hit the same
invocation of dbug_server_apcs(). Then a later invocation would miss its
intended SHOW EXPLAIN FOR and hang, and the test case would eventually time
out.

Fix is to make sure that the second wait can not trigger during the first
invocation of dbug_server_apcs(). We do this by clearing the thd_proc_info
(that the wait is looking for) before processing the SHOW EXPLAIN FOR; this
way the second wait can not start until the thd_proc_info from the first
invocation has been cleared.
2014-12-03 15:49:31 +01:00
Kristian Nielsen
1eed274848 Fix wording in error log message, to be consistent with other messages ("IO thread" -> "I/O thread"). 2014-12-02 12:11:07 +01: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
ba076763ec remove ssl debugging report_errors() function that was sometimes destroying the state 2014-12-01 22:24:58 +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
230132dc41 bump the version 2014-12-01 14:38:41 +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
Sergei Golubchik
e3108e6d2b silence stderr correctly 2014-11-22 18:43:53 +01:00
Sergei Golubchik
912bbfda12 MDEV-7144 Warnings "bytes lost" during server shutdown after running connect.part_file test in buildbot 2014-11-22 11:56:29 +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
Alexander Barkov
5ae1639c02 Backporting a cleanup in boolean function from 10.1:
Moving Item_bool_func2 and Item_func_opt_neg from Item_int_func to
Item_bool_func. Now all functions that return is_bool_func()=true
have a common root class Item_bool_func.
This change is needed to fix MDEV-7149 properly.
2014-11-27 11:47:22 +04:00
Jan Lindström
e15a83c0c7 Better comments part 2 with proof and simplified implementation.
Thanks to Daniel Black.
2014-11-26 16:41:28 +02: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
06d0d09077 MDEV-6582: DEBUG_SYNC does not reset mysys_var->current_mutex, causes assertion "Trying to unlock mutex that wasn't locked"
The bug was in DEBUG_SYNC. When waiting, debug_sync_execute() temporarily sets
thd->mysys_var->current_mutex to a new value while waiting. However, if the
old value of current_mutex was NULL, it was not restored, current_mutex
remained set to the temporary value (debug_sync_global.ds_mutex).

This made possible the following race: Thread T1 goes to KILL thread T2. In
THD::awake(), T1 loads T2->mysys_var->current_mutex, it is set to ds_mutex, T1
locks this mutex.

Now T2 runs, it does ENTER_COND, it sets T2->mysys_var->current_mutex to
LOCK_wait_commit (for example).

Then T1 resumes, it reloads mysys_var->current_mutex, now it is set to
LOCK_wait_commit, T1 unlocks this mutex instead of the ds_mutex that it locked
previously.

This causes safe_mutex to assert with the message: "Trying to unlock mutex
LOCK_wait_commit that wasn't locked".

The fix is to ensure that DEBUG_SYNC also will restore
mysys_var->current_mutex in the case where the original value was NULL.
2014-11-26 11:07:32 +01: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
e5802c38f9 Better comments and add a test case. 2014-11-25 08:06:41 +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