Commit aee8fce2 authored by Jon Olav Hauglid's avatar Jon Olav Hauglid

Merge from mysql-5.5-bugteam to mysql-5.5-runtime

No conflicts
parents 355ff93f a7e2306e
...@@ -256,7 +256,7 @@ extern my_bool my_disable_locking, my_disable_async_io, ...@@ -256,7 +256,7 @@ extern my_bool my_disable_locking, my_disable_async_io,
extern char wild_many,wild_one,wild_prefix; extern char wild_many,wild_one,wild_prefix;
extern const char *charsets_dir; extern const char *charsets_dir;
/* from default.c */ /* from default.c */
extern char *my_defaults_extra_file; extern const char *my_defaults_extra_file;
extern const char *my_defaults_group_suffix; extern const char *my_defaults_group_suffix;
extern const char *my_defaults_file; extern const char *my_defaults_file;
......
...@@ -506,7 +506,8 @@ int init_embedded_server(int argc, char **argv, char **groups) ...@@ -506,7 +506,8 @@ int init_embedded_server(int argc, char **argv, char **groups)
orig_argc= *argcp; orig_argc= *argcp;
orig_argv= *argvp; orig_argv= *argvp;
load_defaults("my", (const char **)groups, argcp, argvp); if (load_defaults("my", (const char **)groups, argcp, argvp))
return 1;
defaults_argc= *argcp; defaults_argc= *argcp;
defaults_argv= *argvp; defaults_argv= *argvp;
remaining_argc= argc; remaining_argc= argc;
......
...@@ -24,7 +24,6 @@ main.wait_timeout @solaris # Bug#51244 2010-04-26 alik wait_timeou ...@@ -24,7 +24,6 @@ main.wait_timeout @solaris # Bug#51244 2010-04-26 alik wait_timeou
rpl.rpl_heartbeat_basic # BUG#54820 2010-06-26 alik rpl.rpl_heartbeat_basic fails sporadically again rpl.rpl_heartbeat_basic # BUG#54820 2010-06-26 alik rpl.rpl_heartbeat_basic fails sporadically again
rpl.rpl_heartbeat_2slaves # BUG#43828 2009-10-22 luis fails sporadically rpl.rpl_heartbeat_2slaves # BUG#43828 2009-10-22 luis fails sporadically
rpl.rpl_innodb_bug28430* # Bug#46029 rpl.rpl_innodb_bug28430* # Bug#46029
rpl.rpl_killed_ddl @windows # Bug#47638 2010-01-20 alik The rpl_killed_ddl test fails on Windows
sys_vars.max_sp_recursion_depth_func @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun sys_vars.max_sp_recursion_depth_func @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
sys_vars.slow_query_log_func @solaris # Bug#54819 2010-06-26 alik sys_vars.slow_query_log_func fails sporadically on Solaris 10 sys_vars.slow_query_log_func @solaris # Bug#54819 2010-06-26 alik sys_vars.slow_query_log_func fails sporadically on Solaris 10
......
...@@ -4463,7 +4463,13 @@ sub mysqld_arguments ($$$) { ...@@ -4463,7 +4463,13 @@ sub mysqld_arguments ($$$) {
my $mysqld= shift; my $mysqld= shift;
my $extra_opts= shift; my $extra_opts= shift;
mtr_add_arg($args, "--defaults-file=%s", $path_config_file); my @defaults = grep(/^--defaults-file=/, @$extra_opts);
if (@defaults > 0) {
mtr_add_arg($args, pop(@defaults))
}
else {
mtr_add_arg($args, "--defaults-file=%s", $path_config_file);
}
# When mysqld is run by a root user(euid is 0), it will fail # When mysqld is run by a root user(euid is 0), it will fail
# to start unless we specify what user to run as, see BUG#30630 # to start unless we specify what user to run as, see BUG#30630
...@@ -4499,6 +4505,9 @@ sub mysqld_arguments ($$$) { ...@@ -4499,6 +4505,9 @@ sub mysqld_arguments ($$$) {
my $found_skip_core= 0; my $found_skip_core= 0;
foreach my $arg ( @$extra_opts ) foreach my $arg ( @$extra_opts )
{ {
# Skip --defaults-file option since it's handled above.
next if $arg =~ /^--defaults-file/;
# Allow --skip-core-file to be set in <testname>-[master|slave].opt file # Allow --skip-core-file to be set in <testname>-[master|slave].opt file
if ($arg eq "--skip-core-file") if ($arg eq "--skip-core-file")
{ {
......
...@@ -896,6 +896,16 @@ TIMESTAMP 1 1 SELECT SQL_NO_CACHE 'Bug#31700 - KEY', f1,f2,f3,SLEEP(1.1) FROM t1 ...@@ -896,6 +896,16 @@ TIMESTAMP 1 1 SELECT SQL_NO_CACHE 'Bug#31700 - KEY', f1,f2,f3,SLEEP(1.1) FROM t1
TIMESTAMP 1 1 SELECT SQL_NO_CACHE 'Bug#31700 - PK', f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f1=2 TIMESTAMP 1 1 SELECT SQL_NO_CACHE 'Bug#31700 - PK', f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f1=2
DROP TABLE t1; DROP TABLE t1;
TRUNCATE TABLE mysql.slow_log; TRUNCATE TABLE mysql.slow_log;
use mysql;
drop table if exists renamed_general_log;
drop table if exists renamed_slow_log;
RENAME TABLE general_log TO renamed_general_log;
ERROR HY000: Cannot rename 'general_log'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to 'general_log'
RENAME TABLE slow_log TO renamed_slow_log;
ERROR HY000: Cannot rename 'slow_log'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to 'slow_log'
use test;
flush tables with read lock;
unlock tables;
SET @@session.long_query_time= @old_long_query_time; SET @@session.long_query_time= @old_long_query_time;
SET @@global.log_output= @old_log_output; SET @@global.log_output= @old_log_output;
SET @@global.slow_query_log= @old_slow_query_log; SET @@global.slow_query_log= @old_slow_query_log;
......
[mysqld]
open-files-limit=1024
character-set-server=latin1
connect-timeout=4711
log-bin-trust-function-creators=1
key_buffer_size=1M
sort_buffer=256K
max_heap_table_size=1M
loose-innodb_data_file_path=ibdata1:10M:autoextend
loose-innodb_buffer_pool_size=8M
loose-innodb_write_io_threads=2
loose-innodb_read_io_threads=2
loose-innodb_log_buffer_size=1M
loose-innodb_log_file_size=5M
loose-innodb_additional_mem_pool_size=1M
loose-innodb_log_files_in_group=2
slave-net-timeout=120
log-bin=mysqld-bin
loose-enable-performance-schema
loose-performance-schema-max-mutex-instances=10000
loose-performance-schema-max-rwlock-instances=10000
loose-performance-schema-max-table-instances=500
loose-performance-schema-max-table-handles=1000
binlog-direct-non-transactional-updates
[mysql]
default-character-set=latin1
[mysqlshow]
default-character-set=latin1
[mysqlimport]
default-character-set=latin1
[mysqlcheck]
default-character-set=latin1
[mysql_upgrade]
default-character-set=latin1
tmpdir=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/tmp
[mysqld.1]
#!run-master-sh
log-bin=master-bin
loose-enable-performance-schema
basedir=/home/bzr/bugs/b57108-5.5-bugteam
tmpdir=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/tmp/mysqld.1
character-sets-dir=/home/bzr/bugs/b57108-5.5-bugteam/sql/share/charsets
lc-messages-dir=/home/bzr/bugs/b57108-5.5-bugteam/sql/share/
datadir=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/mysqld.1/data
pid-file=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/run/mysqld.1.pid
#host=localhost
port=13000
socket=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/tmp/mysqld.1.sock
#log-error=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/log/mysqld.1.err
general_log=1
general_log_file=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/mysqld.1/mysqld.log
slow_query_log=1
slow_query_log_file=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/mysqld.1/mysqld-slow.log
#user=root
#password=
server-id=1
secure-file-priv=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var
ssl-ca=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/std_data/cacert.pem
ssl-cert=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/std_data/server-cert.pem
ssl-key=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/std_data/server-key.pem
[mysqlbinlog]
disable-force-if-open
character-sets-dir=/home/bzr/bugs/b57108-5.5-bugteam/sql/share/charsets
[ENV]
MASTER_MYPORT=13000
MASTER_MYSOCK=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/tmp/mysqld.1.sock
[client]
password=
user=root
port=13000
host=localhost
socket=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/tmp/mysqld.1.sock
[mysqltest]
ssl-ca=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/std_data/cacert.pem
ssl-cert=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/std_data/client-cert.pem
ssl-key=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/std_data/client-key.pem
skip-ssl=1
[client.1]
password=
user=root
port=13000
host=localhost
socket=/home/bzr/bugs/b57108-5.5-bugteam/mysql-test/var/tmp/mysqld.1.sock
INSTALL PLUGIN example SONAME 'ha_example.so';
SELECT @@global.connect_timeout AS connect_timeout, @@global.local_infile AS local_infile;
connect_timeout 4711
local_infile 1
UNINSTALL PLUGIN example;
--defaults-file=std_data/bug57108.cnf
$EXAMPLE_PLUGIN_OPT
--source include/not_windows_embedded.inc
--source include/have_example_plugin.inc
# Test that we can install a plugin despite the fact that we have
# switched directory after starting the server and am using a relative
# --defaults-file.
--replace_regex /\.dll/.so/
eval INSTALL PLUGIN example SONAME $HA_EXAMPLE_SO;
--query_vertical SELECT @@global.connect_timeout AS connect_timeout, @@global.local_infile AS local_infile
UNINSTALL PLUGIN example;
...@@ -1034,6 +1034,25 @@ DROP TABLE t1; ...@@ -1034,6 +1034,25 @@ DROP TABLE t1;
TRUNCATE TABLE mysql.slow_log; TRUNCATE TABLE mysql.slow_log;
#
# Bug #47924 main.log_tables times out sporadically
#
use mysql;
# Should result in error
--disable_warnings
drop table if exists renamed_general_log;
drop table if exists renamed_slow_log;
--enable_warnings
--error ER_CANT_RENAME_LOG_TABLE
RENAME TABLE general_log TO renamed_general_log;
--error ER_CANT_RENAME_LOG_TABLE
RENAME TABLE slow_log TO renamed_slow_log;
use test;
flush tables with read lock;
unlock tables;
SET @@session.long_query_time= @old_long_query_time; SET @@session.long_query_time= @old_long_query_time;
SET @@global.log_output= @old_log_output; SET @@global.log_output= @old_log_output;
......
...@@ -66,7 +66,9 @@ ...@@ -66,7 +66,9 @@
const char *args_separator= "----args-separator----"; const char *args_separator= "----args-separator----";
const char *my_defaults_file=0; const char *my_defaults_file=0;
const char *my_defaults_group_suffix=0; const char *my_defaults_group_suffix=0;
char *my_defaults_extra_file=0; const char *my_defaults_extra_file=0;
static my_bool defaults_already_read= FALSE;
/* Which directories are searched for options (and in which order) */ /* Which directories are searched for options (and in which order) */
...@@ -139,6 +141,36 @@ static const char **init_default_directories(MEM_ROOT *alloc); ...@@ -139,6 +141,36 @@ static const char **init_default_directories(MEM_ROOT *alloc);
static char *remove_end_comment(char *ptr); static char *remove_end_comment(char *ptr);
/*
Expand a file name so that the current working directory is added if
the name is relative.
RETURNS
0 All OK
2 Out of memory or path to long
3 Not able to get working directory
*/
static int
fn_expand(const char *filename, const char **filename_var)
{
char dir[FN_REFLEN], buf[FN_REFLEN];
const int flags= MY_UNPACK_FILENAME | MY_SAFE_PATH | MY_RELATIVE_PATH;
const char *result_path= NULL;
DBUG_ENTER("fn_expand");
DBUG_PRINT("enter", ("filename: %s, buf: 0x%lx", filename, (unsigned long) buf));
if (my_getwd(dir, sizeof(dir), MYF(0)))
DBUG_RETURN(3);
DBUG_PRINT("debug", ("dir: %s", dir));
if (fn_format(buf, filename, dir, NULL, flags) == NULL ||
(result_path= my_strdup(buf, MYF(0))) == NULL)
DBUG_RETURN(2);
DBUG_PRINT("return", ("result: %s", result_path));
DBUG_ASSERT(result_path != NULL);
*filename_var= result_path;
DBUG_RETURN(0);
}
/* /*
Process config files in default directories. Process config files in default directories.
...@@ -167,6 +199,7 @@ static char *remove_end_comment(char *ptr); ...@@ -167,6 +199,7 @@ static char *remove_end_comment(char *ptr);
0 ok 0 ok
1 given cinf_file doesn't exist 1 given cinf_file doesn't exist
2 out of memory 2 out of memory
3 Can't get current working directory
The global variable 'my_defaults_group_suffix' is updated with value for The global variable 'my_defaults_group_suffix' is updated with value for
--defaults_group_suffix --defaults_group_suffix
...@@ -189,11 +222,21 @@ int my_search_option_files(const char *conf_file, int *argc, char ***argv, ...@@ -189,11 +222,21 @@ int my_search_option_files(const char *conf_file, int *argc, char ***argv,
if (! my_defaults_group_suffix) if (! my_defaults_group_suffix)
my_defaults_group_suffix= getenv(STRINGIFY_ARG(DEFAULT_GROUP_SUFFIX_ENV)); my_defaults_group_suffix= getenv(STRINGIFY_ARG(DEFAULT_GROUP_SUFFIX_ENV));
if (forced_extra_defaults) if (forced_extra_defaults && !defaults_already_read)
my_defaults_extra_file= (char *) forced_extra_defaults; {
int error= fn_expand(forced_extra_defaults, &my_defaults_extra_file);
if (forced_default_file) if (error)
my_defaults_file= forced_default_file; DBUG_RETURN(error);
}
if (forced_default_file && !defaults_already_read)
{
int error= fn_expand(forced_default_file, &my_defaults_file);
if (error)
DBUG_RETURN(error);
}
defaults_already_read= TRUE;
/* /*
We can only handle 'defaults-group-suffix' if we are called from We can only handle 'defaults-group-suffix' if we are called from
...@@ -236,15 +279,15 @@ int my_search_option_files(const char *conf_file, int *argc, char ***argv, ...@@ -236,15 +279,15 @@ int my_search_option_files(const char *conf_file, int *argc, char ***argv,
group->type_names[group->count]= 0; group->type_names[group->count]= 0;
} }
if (forced_default_file) if (my_defaults_file)
{ {
if ((error= search_default_file_with_ext(func, func_ctx, "", "", if ((error= search_default_file_with_ext(func, func_ctx, "", "",
forced_default_file, 0)) < 0) my_defaults_file, 0)) < 0)
goto err; goto err;
if (error > 0) if (error > 0)
{ {
fprintf(stderr, "Could not open required defaults file: %s\n", fprintf(stderr, "Could not open required defaults file: %s\n",
forced_default_file); my_defaults_file);
goto err; goto err;
} }
} }
......
...@@ -315,6 +315,9 @@ void my_print_stacktrace(uchar* stack_bottom, ulong thread_stack) ...@@ -315,6 +315,9 @@ void my_print_stacktrace(uchar* stack_bottom, ulong thread_stack)
/* Produce a core for the thread */ /* Produce a core for the thread */
void my_write_core(int sig) void my_write_core(int sig)
{ {
#ifdef HAVE_gcov
extern void __gcov_flush(void);
#endif
signal(sig, SIG_DFL); signal(sig, SIG_DFL);
#ifdef HAVE_gcov #ifdef HAVE_gcov
/* /*
...@@ -322,7 +325,6 @@ void my_write_core(int sig) ...@@ -322,7 +325,6 @@ void my_write_core(int sig)
information from this process, causing gcov output to be incomplete. information from this process, causing gcov output to be incomplete.
So we force the writing of coverage information here before terminating. So we force the writing of coverage information here before terminating.
*/ */
extern void __gcov_flush(void);
__gcov_flush(); __gcov_flush();
#endif #endif
pthread_kill(pthread_self(), sig); pthread_kill(pthread_self(), sig);
......
...@@ -1738,7 +1738,11 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl ...@@ -1738,7 +1738,11 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl
mysql_mutex_lock(&LOCK_plugin); mysql_mutex_lock(&LOCK_plugin);
mysql_rwlock_wrlock(&LOCK_system_variables_hash); mysql_rwlock_wrlock(&LOCK_system_variables_hash);
my_load_defaults(MYSQL_CONFIG_NAME, load_default_groups, &argc, &argv, NULL); if (my_load_defaults(MYSQL_CONFIG_NAME, load_default_groups, &argc, &argv, NULL))
{
report_error(REPORT_TO_USER, ER_PLUGIN_IS_NOT_LOADED, name->str);
goto err;
}
error= plugin_add(thd->mem_root, name, dl, &argc, argv, REPORT_TO_USER); error= plugin_add(thd->mem_root, name, dl, &argc, argv, REPORT_TO_USER);
if (argv) if (argv)
free_defaults(argv); free_defaults(argv);
......
...@@ -108,7 +108,7 @@ bool mysql_rename_tables(THD *thd, TABLE_LIST *table_list, bool silent) ...@@ -108,7 +108,7 @@ bool mysql_rename_tables(THD *thd, TABLE_LIST *table_list, bool silent)
*/ */
my_error(ER_CANT_RENAME_LOG_TABLE, MYF(0), ren_table->table_name, my_error(ER_CANT_RENAME_LOG_TABLE, MYF(0), ren_table->table_name,
ren_table->table_name); ren_table->table_name);
DBUG_RETURN(1); goto err;
} }
} }
else else
...@@ -121,7 +121,7 @@ bool mysql_rename_tables(THD *thd, TABLE_LIST *table_list, bool silent) ...@@ -121,7 +121,7 @@ bool mysql_rename_tables(THD *thd, TABLE_LIST *table_list, bool silent)
*/ */
my_error(ER_CANT_RENAME_LOG_TABLE, MYF(0), ren_table->table_name, my_error(ER_CANT_RENAME_LOG_TABLE, MYF(0), ren_table->table_name,
ren_table->table_name); ren_table->table_name);
DBUG_RETURN(1); goto err;
} }
else else
{ {
...@@ -139,7 +139,7 @@ bool mysql_rename_tables(THD *thd, TABLE_LIST *table_list, bool silent) ...@@ -139,7 +139,7 @@ bool mysql_rename_tables(THD *thd, TABLE_LIST *table_list, bool silent)
else else
my_error(ER_CANT_RENAME_LOG_TABLE, MYF(0), rename_log_table[1], my_error(ER_CANT_RENAME_LOG_TABLE, MYF(0), rename_log_table[1],
rename_log_table[1]); rename_log_table[1]);
DBUG_RETURN(1); goto err;
} }
} }
......
...@@ -702,7 +702,7 @@ load_defaults(Vector<struct my_option>& options, const char* groups[]) ...@@ -702,7 +702,7 @@ load_defaults(Vector<struct my_option>& options, const char* groups[])
BaseString group_suffix; BaseString group_suffix;
const char *save_file = my_defaults_file; const char *save_file = my_defaults_file;
char *save_extra_file = my_defaults_extra_file; const char *save_extra_file = my_defaults_extra_file;
const char *save_group_suffix = my_defaults_group_suffix; const char *save_group_suffix = my_defaults_group_suffix;
if (my_defaults_file) if (my_defaults_file)
......
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