Commit db1d83a5 authored by Michael Widenius's avatar Michael Widenius

Merge with 5.1

parents a91e89de 04ff96f7
...@@ -82,7 +82,6 @@ SET FOREIGN_KEY_CHECKS=0; ...@@ -82,7 +82,6 @@ SET FOREIGN_KEY_CHECKS=0;
# Duplicate Key Errors codes # Duplicate Key Errors codes
--error 1022, ER_DUP_ENTRY --error 1022, ER_DUP_ENTRY
INSERT INTO t1 VALUES (1),(1); INSERT INTO t1 VALUES (1),(1);
sync_slave_with_master;
connection master;
drop table t1; drop table t1;
sync_slave_with_master;
# End of 4.1 tests # End of 4.1 tests
...@@ -11,9 +11,10 @@ ...@@ -11,9 +11,10 @@
connection default; connection default;
let $default_db=`select database()`; let $default_db=`select database()`;
let $MYSQLD_DATADIR= `SELECT @@datadir`; let $MYSQLD_DATADIR= `SELECT @@datadir`;
# it will used at end of test for wait_for_status_var.inc primitive
let $status_var= Threads_connected; #it will used at end of test for wait_for_status_var.inc primitive
let $status_var_value= query_get_value(SHOW STATUS LIKE 'Threads_connected', Value, 1); #let $status_var= Threads_connected;
#let $status_var_value= query_get_value(SHOW STATUS LIKE 'Threads_connected', Value, 1);
connection admin; connection admin;
-- echo * shut down mysqld, removed logs, restarted it -- echo * shut down mysqld, removed logs, restarted it
...@@ -77,12 +78,15 @@ append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; ...@@ -77,12 +78,15 @@ append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
restart-maria_empty_logs.inc restart-maria_empty_logs.inc
EOF EOF
connection default;
--source include/wait_until_connected_again.inc --source include/wait_until_connected_again.inc
connection default;
# Make sure that all connections are restored # Make sure that all connections are restored
--source include/wait_for_status_var.inc # This is disabled as 'Threads_connected' can't be trusted'
# (It may be affected by 'check_testcase()')
# --source include/wait_for_status_var.inc
# Restore current database as the effect of "use" was lost after restart # Restore current database as the effect of "use" was lost after restart
--disable_query_log --disable_query_log
eval use $default_db; eval use $default_db;
--enable_query_log --enable_query_log
...@@ -4012,7 +4012,10 @@ sub extract_warning_lines ($) { ...@@ -4012,7 +4012,10 @@ sub extract_warning_lines ($) {
qr/Slave I\/O: Get master COLLATION_SERVER failed with error:.*/, qr/Slave I\/O: Get master COLLATION_SERVER failed with error:.*/,
qr/Slave I\/O: Get master TIME_ZONE failed with error:.*/, qr/Slave I\/O: Get master TIME_ZONE failed with error:.*/,
qr/Slave I\/O: error reconnecting to master '.*' - retry-time: [1-3] retries/, qr/Slave I\/O: error reconnecting to master '.*' - retry-time: [1-3] retries/,
qr/Slave I\/0: Master command COM_BINLOG_DUMP failed/,
qr/Error reading packet/, qr/Error reading packet/,
qr/Lost connection to MySQL server at 'reading initial communication packet'/,
qr/Failed on request_dump/,
qr/Slave: Can't drop database.* database doesn't exist/, qr/Slave: Can't drop database.* database doesn't exist/,
qr/Slave: Operation DROP USER failed for 'create_rout_db'/, qr/Slave: Operation DROP USER failed for 'create_rout_db'/,
qr|Checking table: '\./mtr/test_suppressions'|, qr|Checking table: '\./mtr/test_suppressions'|,
......
...@@ -1120,7 +1120,7 @@ drop function t_slow_sysdate; ...@@ -1120,7 +1120,7 @@ drop function t_slow_sysdate;
drop table t1; drop table t1;
SET GLOBAL log_bin_trust_function_creators = 0; SET GLOBAL log_bin_trust_function_creators = 0;
create table t1 (a datetime, i int, b datetime); create table t1 (a datetime, i int, b datetime);
insert into t1 select sysdate(), sleep(1), sysdate() from dual; insert into t1 select sysdate(), sleep(2), sysdate() from dual;
select a != b from t1; select a != b from t1;
a != b a != b
1 1
......
...@@ -3,6 +3,7 @@ call mtr.add_suppression('MSYQL_BIN_LOG::purge_logs failed to process registered ...@@ -3,6 +3,7 @@ call mtr.add_suppression('MSYQL_BIN_LOG::purge_logs failed to process registered
call mtr.add_suppression('MSYQL_BIN_LOG::open failed to sync the index file'); call mtr.add_suppression('MSYQL_BIN_LOG::open failed to sync the index file');
call mtr.add_suppression('Turning logging off for the whole duration of the MySQL server process.'); call mtr.add_suppression('Turning logging off for the whole duration of the MySQL server process.');
call mtr.add_suppression('MSYQL_BIN_LOG::purge_logs failed to clean registers before purging logs.'); call mtr.add_suppression('MSYQL_BIN_LOG::purge_logs failed to clean registers before purging logs.');
flush tables;
flush logs; flush logs;
flush logs; flush logs;
flush logs; flush logs;
......
--skip-stack-trace --test-expect-abort --log-warnings=0
...@@ -11,6 +11,8 @@ call mtr.add_suppression('MSYQL_BIN_LOG::purge_logs failed to process registered ...@@ -11,6 +11,8 @@ call mtr.add_suppression('MSYQL_BIN_LOG::purge_logs failed to process registered
call mtr.add_suppression('MSYQL_BIN_LOG::open failed to sync the index file'); call mtr.add_suppression('MSYQL_BIN_LOG::open failed to sync the index file');
call mtr.add_suppression('Turning logging off for the whole duration of the MySQL server process.'); call mtr.add_suppression('Turning logging off for the whole duration of the MySQL server process.');
call mtr.add_suppression('MSYQL_BIN_LOG::purge_logs failed to clean registers before purging logs.'); call mtr.add_suppression('MSYQL_BIN_LOG::purge_logs failed to clean registers before purging logs.');
flush tables;
let $old=`select @@debug`; let $old=`select @@debug`;
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
......
...@@ -89,8 +89,26 @@ USE information_schema; ...@@ -89,8 +89,26 @@ USE information_schema;
--echo 1 Prepare test. --echo 1 Prepare test.
--echo connection default (user=root) --echo connection default (user=root)
--echo #################################################################################### --echo ####################################################################################
if (`SELECT COUNT(*) <> 1 FROM processlist`)
# Check that we have only one connection around.
# If there is more, it may be the check() connection that has not yet ended,
# so we wait for it for up to 10 seconds.
let $counter=100;
while ($counter)
{ {
dec $counter;
let $res= `SELECT COUNT(*) <> 1 FROM processlist`;
if (!$res)
{
# Success; Abort while loop
let $counter=0;
}
if ($res)
{
--sleep 0.1
if (!$counter)
{
--echo This test expects one connection to the server. --echo This test expects one connection to the server.
--echo Expectation: USER HOST DB COMMAND STATE INFO --echo Expectation: USER HOST DB COMMAND STATE INFO
--echo Expectation: root localhost information_schema Query executing SELECT USER,HOST,DB,COMMAND,STATE,INFO FROM processlist ORDER BY ID --echo Expectation: root localhost information_schema Query executing SELECT USER,HOST,DB,COMMAND,STATE,INFO FROM processlist ORDER BY ID
...@@ -101,6 +119,8 @@ if (`SELECT COUNT(*) <> 1 FROM processlist`) ...@@ -101,6 +119,8 @@ if (`SELECT COUNT(*) <> 1 FROM processlist`)
--echo - a parallel test intended for another server accidently connected to our current one --echo - a parallel test intended for another server accidently connected to our current one
--echo We cannot proceed in this situation. Abort --echo We cannot proceed in this situation. Abort
exit; exit;
}
}
} }
--echo #################################################################################### --echo ####################################################################################
......
...@@ -47,5 +47,5 @@ i ...@@ -47,5 +47,5 @@ i
3 3
show status like 'Slow_queries'|||| show status like 'Slow_queries'||||
Variable_name Value Variable_name Value
Slow_queries 0 Slow_queries 3
drop table t1|||| drop table t1||||
--slow-query-log
--slow-query-log-file=slow.log
--log-queries-not-using-indexes
...@@ -30,7 +30,7 @@ connection con1; ...@@ -30,7 +30,7 @@ connection con1;
--send --send
update t1 set n = 3; update t1 set n = 3;
connection con2; connection con2;
sleep 0.5; sleep 5;
unlock tables; unlock tables;
connection con1; connection con1;
reap; reap;
......
...@@ -650,7 +650,7 @@ drop table t1; ...@@ -650,7 +650,7 @@ drop table t1;
SET GLOBAL log_bin_trust_function_creators = 0; SET GLOBAL log_bin_trust_function_creators = 0;
create table t1 (a datetime, i int, b datetime); create table t1 (a datetime, i int, b datetime);
insert into t1 select sysdate(), sleep(1), sysdate() from dual; insert into t1 select sysdate(), sleep(2), sysdate() from dual;
select a != b from t1; select a != b from t1;
drop table t1; drop table t1;
......
...@@ -1263,6 +1263,7 @@ Events::load_events_from_db(THD *thd) ...@@ -1263,6 +1263,7 @@ Events::load_events_from_db(THD *thd)
} }
} }
} }
if (global_system_variables.log_warnings)
sql_print_information("Event Scheduler: Loaded %d event%s", sql_print_information("Event Scheduler: Loaded %d event%s",
count, (count == 1) ? "" : "s"); count, (count == 1) ? "" : "s");
ret= FALSE; ret= FALSE;
......
...@@ -4450,6 +4450,8 @@ int handler::index_read_idx_map(uchar * buf, uint index, const uchar * key, ...@@ -4450,6 +4450,8 @@ int handler::index_read_idx_map(uchar * buf, uint index, const uchar * key,
enum ha_rkey_function find_flag) enum ha_rkey_function find_flag)
{ {
int error, error1; int error, error1;
LINT_INIT(error1);
error= index_init(index, 0); error= index_init(index, 0);
if (!error) if (!error)
{ {
......
...@@ -1238,6 +1238,7 @@ void LOGGER::deactivate_log_handler(THD *thd, uint log_type) ...@@ -1238,6 +1238,7 @@ void LOGGER::deactivate_log_handler(THD *thd, uint log_type)
{ {
my_bool *tmp_opt= 0; my_bool *tmp_opt= 0;
MYSQL_LOG *file_log; MYSQL_LOG *file_log;
LINT_INIT(file_log);
switch (log_type) { switch (log_type) {
case QUERY_LOG_SLOW: case QUERY_LOG_SLOW:
......
/* Copyright (C) 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc. /* Copyright (C) 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
2009-2010 Monty Program Ab
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
...@@ -383,7 +384,7 @@ static bool volatile select_thread_in_use, signal_thread_in_use; ...@@ -383,7 +384,7 @@ static bool volatile select_thread_in_use, signal_thread_in_use;
static bool volatile ready_to_exit; static bool volatile ready_to_exit;
static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0; static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0;
static my_bool opt_short_log_format= 0; static my_bool opt_short_log_format= 0;
static my_bool opt_ignore_wrong_options= 0; static my_bool opt_ignore_wrong_options= 0, opt_expect_abort= 0;
static uint kill_cached_threads, wake_thread; static uint kill_cached_threads, wake_thread;
ulong thread_created; ulong thread_created;
static ulong max_used_connections; static ulong max_used_connections;
...@@ -2549,13 +2550,19 @@ extern "C" sig_handler handle_segfault(int sig) ...@@ -2549,13 +2550,19 @@ extern "C" sig_handler handle_segfault(int sig)
curr_time= my_time(0); curr_time= my_time(0);
localtime_r(&curr_time, &tm); localtime_r(&curr_time, &tm);
fprintf(stderr,"\ fprintf(stderr, "%02d%02d%02d %2d:%02d:%02d ",
%02d%02d%02d %2d:%02d:%02d - mysqld got " SIGNAL_FMT " ;\n\ tm.tm_year % 100, tm.tm_mon+1, tm.tm_mday,
tm.tm_hour, tm.tm_min, tm.tm_sec);
if (opt_expect_abort && sig == SIGABRT)
{
fprintf(stderr,"[Note] mysqld did an expected abort\n");
goto end;
}
fprintf(stderr,"[ERROR] mysqld got " SIGNAL_FMT " ;\n\
This could be because you hit a bug. It is also possible that this binary\n\ This could be because you hit a bug. It is also possible that this binary\n\
or one of the libraries it was linked against is corrupt, improperly built,\n\ or one of the libraries it was linked against is corrupt, improperly built,\n\
or misconfigured. This error can also be caused by malfunctioning hardware.\n", or misconfigured. This error can also be caused by malfunctioning hardware.\n",
tm.tm_year % 100, tm.tm_mon+1, tm.tm_mday,
tm.tm_hour, tm.tm_min, tm.tm_sec,
sig); sig);
fprintf(stderr, "\ fprintf(stderr, "\
We will try our best to scrape up some info that will hopefully help diagnose\n\ We will try our best to scrape up some info that will hopefully help diagnose\n\
...@@ -2674,6 +2681,7 @@ bugs.\n"); ...@@ -2674,6 +2681,7 @@ bugs.\n");
} }
#endif #endif
end:
#ifndef __WIN__ #ifndef __WIN__
/* On Windows, do not terminate, but pass control to exception filter */ /* On Windows, do not terminate, but pass control to exception filter */
exit(1); exit(1);
...@@ -5925,7 +5933,7 @@ enum options_mysqld ...@@ -5925,7 +5933,7 @@ enum options_mysqld
OPT_MIN_EXAMINED_ROW_LIMIT, OPT_MIN_EXAMINED_ROW_LIMIT,
OPT_LOG_SLOW_SLAVE_STATEMENTS, OPT_LOG_SLOW_SLAVE_STATEMENTS,
OPT_DEBUG_CRC, OPT_DEBUG_ON, OPT_OLD_MODE, OPT_DEBUG_CRC, OPT_DEBUG_ON, OPT_OLD_MODE,
OPT_TEST_IGNORE_WRONG_OPTIONS, OPT_TEST_IGNORE_WRONG_OPTIONS, OPT_TEST_RESTART,
#if defined(ENABLED_DEBUG_SYNC) #if defined(ENABLED_DEBUG_SYNC)
OPT_DEBUG_SYNC_TIMEOUT, OPT_DEBUG_SYNC_TIMEOUT,
#endif /* defined(ENABLED_DEBUG_SYNC) */ #endif /* defined(ENABLED_DEBUG_SYNC) */
...@@ -6773,6 +6781,10 @@ log and this option does nothing anymore.", ...@@ -6773,6 +6781,10 @@ log and this option does nothing anymore.",
"Ignore wrong enums values in command line arguments. Useful only for test scripts", "Ignore wrong enums values in command line arguments. Useful only for test scripts",
(uchar**) &opt_ignore_wrong_options, (uchar**) &opt_ignore_wrong_options, (uchar**) &opt_ignore_wrong_options, (uchar**) &opt_ignore_wrong_options,
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"test-expect-abort", OPT_TEST_RESTART,
"Expect that server aborts with 'abort'; Don't write out server variables on 'abort'. Useful only for test scripts",
(uchar**) &opt_expect_abort, (uchar**) &opt_expect_abort,
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"timed_mutexes", OPT_TIMED_MUTEXES, {"timed_mutexes", OPT_TIMED_MUTEXES,
"Specify whether to time mutexes (only InnoDB mutexes are currently supported)", "Specify whether to time mutexes (only InnoDB mutexes are currently supported)",
(uchar**) &timed_mutexes, (uchar**) &timed_mutexes, 0, GET_BOOL, NO_ARG, 0, (uchar**) &timed_mutexes, (uchar**) &timed_mutexes, 0, GET_BOOL, NO_ARG, 0,
......
...@@ -2604,7 +2604,7 @@ static int sys_check_log_path(THD *thd, set_var *var) ...@@ -2604,7 +2604,7 @@ static int sys_check_log_path(THD *thd, set_var *var)
char path[FN_REFLEN], buff[FN_REFLEN]; char path[FN_REFLEN], buff[FN_REFLEN];
MY_STAT f_stat; MY_STAT f_stat;
String str(buff, sizeof(buff), system_charset_info), *res; String str(buff, sizeof(buff), system_charset_info), *res;
const char *log_file_str; const char *log_file_str= 0;
size_t path_length; size_t path_length;
if (!(res= var->value->val_str(&str))) if (!(res= var->value->val_str(&str)))
...@@ -2654,7 +2654,7 @@ static int sys_check_log_path(THD *thd, set_var *var) ...@@ -2654,7 +2654,7 @@ static int sys_check_log_path(THD *thd, set_var *var)
err: err:
my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), var->var->name, my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), var->var->name,
res ? log_file_str : "NULL"); log_file_str ? log_file_str : "NULL");
return 1; return 1;
} }
...@@ -2663,7 +2663,7 @@ bool update_sys_var_str_path(THD *thd, sys_var_str *var_str, ...@@ -2663,7 +2663,7 @@ bool update_sys_var_str_path(THD *thd, sys_var_str *var_str,
set_var *var, const char *log_ext, set_var *var, const char *log_ext,
bool log_state, uint log_type) bool log_state, uint log_type)
{ {
MYSQL_QUERY_LOG *file_log; MYSQL_QUERY_LOG *file_log= 0;
char buff[FN_REFLEN]; char buff[FN_REFLEN];
char *res= 0, *old_value=(char *)(var ? var->value->str_value.ptr() : 0); char *res= 0, *old_value=(char *)(var ? var->value->str_value.ptr() : 0);
bool result= 0; bool result= 0;
......
...@@ -2255,6 +2255,7 @@ static int exec_relay_log_event(THD* thd, Relay_log_info* rli) ...@@ -2255,6 +2255,7 @@ static int exec_relay_log_event(THD* thd, Relay_log_info* rli)
if (slave_trans_retries) if (slave_trans_retries)
{ {
int temp_err; int temp_err;
LINT_INIT(temp_err);
if (exec_res && (temp_err= has_temporary_error(thd))) if (exec_res && (temp_err= has_temporary_error(thd)))
{ {
const char *errmsg; const char *errmsg;
......
...@@ -1886,6 +1886,7 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl ...@@ -1886,6 +1886,7 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl
if (tmp->state == PLUGIN_IS_DISABLED) if (tmp->state == PLUGIN_IS_DISABLED)
{ {
if (global_system_variables.log_warnings)
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
ER_CANT_INITIALIZE_UDF, ER(ER_CANT_INITIALIZE_UDF), ER_CANT_INITIALIZE_UDF, ER(ER_CANT_INITIALIZE_UDF),
name->str, "Plugin is disabled"); name->str, "Plugin is disabled");
......
...@@ -1274,11 +1274,10 @@ static my_bool translog_set_lsn_for_files(uint32 from_file, uint32 to_file, ...@@ -1274,11 +1274,10 @@ static my_bool translog_set_lsn_for_files(uint32 from_file, uint32 to_file,
for (file= from_file; file <= to_file; file++) for (file= from_file; file <= to_file; file++)
{ {
LOGHANDLER_FILE_INFO info; LOGHANDLER_FILE_INFO info;
File fd= open_logfile_by_number_no_cache(file); File fd;
LINT_INIT_STRUCT(info);
LINT_INIT(info.max_lsn); LINT_INIT(info.max_lsn);
fd= open_logfile_by_number_no_cache(file);
if ((fd < 0) || if ((fd < 0) ||
((translog_read_file_header(&info, fd) || ((translog_read_file_header(&info, fd) ||
(cmp_translog_addr(lsn, info.max_lsn) > 0 && (cmp_translog_addr(lsn, info.max_lsn) > 0 &&
......
...@@ -158,7 +158,7 @@ Inserts a NODE2 after NODE1 in a list. ...@@ -158,7 +158,7 @@ Inserts a NODE2 after NODE1 in a list.
/** Invalidate the pointers in a list node. /** Invalidate the pointers in a list node.
@param NAME list name @param NAME list name
@param N pointer to the node that was removed */ @param N pointer to the node that was removed */
# define UT_LIST_REMOVE_CLEAR(NAME, N) {} while (0) # define UT_LIST_REMOVE_CLEAR(NAME, N) do {} while (0)
#endif #endif
/*******************************************************************//** /*******************************************************************//**
......
...@@ -40,6 +40,7 @@ sync/sync0sync\.c: unused parameter ...@@ -40,6 +40,7 @@ sync/sync0sync\.c: unused parameter
sync/sync0sync\.c: unused variable sync/sync0sync\.c: unused variable
ut/ut0ut\.c: ignoring return value of ut/ut0ut\.c: ignoring return value of
srv/srv0srv\.c: value computed is not used srv/srv0srv\.c: value computed is not used
buf/buf0buf\.c: .*block_mutex.* might be used uninitialized
# #
# bdb is not critical to keep up to date # bdb is not critical to keep up to date
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment