Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
8c894564
Commit
8c894564
authored
Jan 18, 2012
by
Andrei Elkin
Browse files
Options
Browse Files
Download
Plain Diff
merging from the 5.5 repo to local branch.
parents
7cdd7a74
a72f7ee6
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
343 additions
and
31 deletions
+343
-31
include/my_global.h
include/my_global.h
+23
-3
mysql-test/suite/sys_vars/r/all_vars.result
mysql-test/suite/sys_vars/r/all_vars.result
+0
-2
mysql-test/suite/sys_vars/r/character_sets_dir_basic.result
mysql-test/suite/sys_vars/r/character_sets_dir_basic.result
+5
-5
mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result
...ite/sys_vars/r/innodb_change_buffering_debug_basic.result
+64
-0
mysql-test/suite/sys_vars/r/innodb_trx_rseg_n_slots_debug_basic.result
...ite/sys_vars/r/innodb_trx_rseg_n_slots_debug_basic.result
+65
-0
mysql-test/suite/sys_vars/r/plugin_dir_basic.result
mysql-test/suite/sys_vars/r/plugin_dir_basic.result
+5
-5
mysql-test/suite/sys_vars/t/all_vars.test
mysql-test/suite/sys_vars/t/all_vars.test
+0
-4
mysql-test/suite/sys_vars/t/character_sets_dir_basic.test
mysql-test/suite/sys_vars/t/character_sets_dir_basic.test
+14
-5
mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test
...suite/sys_vars/t/innodb_change_buffering_debug_basic.test
+52
-0
mysql-test/suite/sys_vars/t/innodb_trx_rseg_n_slots_debug_basic.test
...suite/sys_vars/t/innodb_trx_rseg_n_slots_debug_basic.test
+53
-0
scripts/mysqld_safe.sh
scripts/mysqld_safe.sh
+38
-0
sql/mysqld.cc
sql/mysqld.cc
+4
-2
sql/sql_plugin.cc
sql/sql_plugin.cc
+6
-2
sql/sql_udf.cc
sql/sql_udf.cc
+14
-3
No files found.
include/my_global.h
View file @
8c894564
...
...
@@ -1364,11 +1364,31 @@ do { doubleget_union _tmp; \
#ifndef HAVE_DLERROR
#ifdef _WIN32
#define DLERROR_GENERATE(errmsg, error_number) \
char win_errormsg[2048]; \
if(FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, \
0, error_number, 0, win_errormsg, 2048, NULL)) \
{ \
char *ptr; \
for (ptr= &win_errormsg[0] + strlen(win_errormsg) - 1; \
ptr >= &win_errormsg[0] && strchr("\r\n\t\0x20", *ptr); \
ptr--) \
*ptr= 0; \
errmsg= win_errormsg; \
} \
else \
errmsg= ""
#define dlerror() ""
#else
#define dlopen_errno GetLastError()
#else
/* _WIN32 */
#define dlerror() "No support for dynamic loading (static build?)"
#endif
#endif
#define DLERROR_GENERATE(errmsg, error_number) errmsg= dlerror()
#define dlopen_errno errno
#endif
/* _WIN32 */
#else
/* HAVE_DLERROR */
#define DLERROR_GENERATE(errmsg, error_number) errmsg= dlerror()
#define dlopen_errno errno
#endif
/* HAVE_DLERROR */
/*
...
...
mysql-test/suite/sys_vars/r/all_vars.result
View file @
8c894564
...
...
@@ -3,8 +3,6 @@ create table t2 (variable_name text);
load data infile "MYSQLTEST_VARDIR/tmp/sys_vars.all_vars.txt" into table t1;
insert into t2 select variable_name from information_schema.global_variables;
insert into t2 select variable_name from information_schema.session_variables;
delete from t2 where variable_name='innodb_change_buffering_debug';
delete from t2 where variable_name='innodb_trx_rseg_n_slots_debug';
update t2 set variable_name= replace(variable_name, "PERFORMANCE_SCHEMA_", "PFS_");
select variable_name as `There should be *no* long test name listed below:` from t2
where length(variable_name) > 50;
...
...
mysql-test/suite/sys_vars/r/character_sets_dir_basic.result
View file @
8c894564
select @@global.character_sets_dir;
@@global.character_sets_dir
MYSQL_CHARSETSDIR
/
MYSQL_CHARSETSDIR
select @@session.character_sets_dir;
ERROR HY000: Variable 'character_sets_dir' is a GLOBAL variable
show global variables like 'character_sets_dir';
Variable_name Value
character_sets_dir MYSQL_CHARSETSDIR
/
character_sets_dir MYSQL_CHARSETSDIR
show session variables like 'character_sets_dir';
Variable_name Value
character_sets_dir MYSQL_CHARSETSDIR
/
character_sets_dir MYSQL_CHARSETSDIR
select * from information_schema.global_variables where variable_name='character_sets_dir';
VARIABLE_NAME VARIABLE_VALUE
CHARACTER_SETS_DIR MYSQL_CHARSETSDIR
/
CHARACTER_SETS_DIR MYSQL_CHARSETSDIR
select * from information_schema.session_variables where variable_name='character_sets_dir';
VARIABLE_NAME VARIABLE_VALUE
CHARACTER_SETS_DIR MYSQL_CHARSETSDIR
/
CHARACTER_SETS_DIR MYSQL_CHARSETSDIR
set global character_sets_dir="foo";
ERROR HY000: Variable 'character_sets_dir' is a read only variable
set session character_sets_dir="foo";
...
...
mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result
0 → 100644
View file @
8c894564
SET @start_global_value = @@global.innodb_change_buffering_debug;
SELECT @start_global_value;
@start_global_value
0
select @@global.innodb_change_buffering_debug in (0, 1);
@@global.innodb_change_buffering_debug in (0, 1)
1
select @@global.innodb_change_buffering_debug;
@@global.innodb_change_buffering_debug
0
select @@session.innodb_change_buffering_debug;
ERROR HY000: Variable 'innodb_change_buffering_debug' is a GLOBAL variable
show global variables like 'innodb_change_buffering_debug';
Variable_name Value
innodb_change_buffering_debug 0
show session variables like 'innodb_change_buffering_debug';
Variable_name Value
innodb_change_buffering_debug 0
select * from information_schema.global_variables where variable_name='innodb_change_buffering_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_CHANGE_BUFFERING_DEBUG 0
select * from information_schema.session_variables where variable_name='innodb_change_buffering_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_CHANGE_BUFFERING_DEBUG 0
set global innodb_change_buffering_debug=1;
select @@global.innodb_change_buffering_debug;
@@global.innodb_change_buffering_debug
1
select * from information_schema.global_variables where variable_name='innodb_change_buffering_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_CHANGE_BUFFERING_DEBUG 1
select * from information_schema.session_variables where variable_name='innodb_change_buffering_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_CHANGE_BUFFERING_DEBUG 1
set @@global.innodb_change_buffering_debug=0;
select @@global.innodb_change_buffering_debug;
@@global.innodb_change_buffering_debug
0
select * from information_schema.global_variables where variable_name='innodb_change_buffering_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_CHANGE_BUFFERING_DEBUG 0
select * from information_schema.session_variables where variable_name='innodb_change_buffering_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_CHANGE_BUFFERING_DEBUG 0
set session innodb_change_buffering_debug='some';
ERROR HY000: Variable 'innodb_change_buffering_debug' is a GLOBAL variable and should be set with SET GLOBAL
set @@session.innodb_change_buffering_debug='some';
ERROR HY000: Variable 'innodb_change_buffering_debug' is a GLOBAL variable and should be set with SET GLOBAL
set global innodb_change_buffering_debug=1.1;
ERROR 42000: Incorrect argument type to variable 'innodb_change_buffering_debug'
set global innodb_change_buffering_debug='foo';
ERROR 42000: Incorrect argument type to variable 'innodb_change_buffering_debug'
set global innodb_change_buffering_debug=-2;
Warnings:
Warning 1292 Truncated incorrect innodb_change_buffering_debug value: '-2'
set global innodb_change_buffering_debug=1e1;
ERROR 42000: Incorrect argument type to variable 'innodb_change_buffering_debug'
set global innodb_change_buffering_debug=2;
Warnings:
Warning 1292 Truncated incorrect innodb_change_buffering_debug value: '2'
SET @@global.innodb_change_buffering_debug = @start_global_value;
SELECT @@global.innodb_change_buffering_debug;
@@global.innodb_change_buffering_debug
0
mysql-test/suite/sys_vars/r/innodb_trx_rseg_n_slots_debug_basic.result
0 → 100644
View file @
8c894564
SET @start_global_value = @@global.innodb_trx_rseg_n_slots_debug;
SELECT @start_global_value;
@start_global_value
0
select @@global.innodb_trx_rseg_n_slots_debug between 0 and 1024;
@@global.innodb_trx_rseg_n_slots_debug between 0 and 1024
1
select @@global.innodb_trx_rseg_n_slots_debug;
@@global.innodb_trx_rseg_n_slots_debug
0
select @@session.innodb_trx_rseg_n_slots_debug;
ERROR HY000: Variable 'innodb_trx_rseg_n_slots_debug' is a GLOBAL variable
show global variables like 'innodb_trx_rseg_n_slots_debug';
Variable_name Value
innodb_trx_rseg_n_slots_debug 0
show session variables like 'innodb_trx_rseg_n_slots_debug';
Variable_name Value
innodb_trx_rseg_n_slots_debug 0
select * from information_schema.global_variables where variable_name='innodb_trx_rseg_n_slots_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_TRX_RSEG_N_SLOTS_DEBUG 0
select * from information_schema.session_variables where variable_name='innodb_trx_rseg_n_slots_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_TRX_RSEG_N_SLOTS_DEBUG 0
set global innodb_trx_rseg_n_slots_debug=1;
select @@global.innodb_trx_rseg_n_slots_debug;
@@global.innodb_trx_rseg_n_slots_debug
1
select * from information_schema.global_variables where variable_name='innodb_trx_rseg_n_slots_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_TRX_RSEG_N_SLOTS_DEBUG 1
select * from information_schema.session_variables where variable_name='innodb_trx_rseg_n_slots_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_TRX_RSEG_N_SLOTS_DEBUG 1
set @@global.innodb_trx_rseg_n_slots_debug=0;
select @@global.innodb_trx_rseg_n_slots_debug;
@@global.innodb_trx_rseg_n_slots_debug
0
select * from information_schema.global_variables where variable_name='innodb_trx_rseg_n_slots_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_TRX_RSEG_N_SLOTS_DEBUG 0
select * from information_schema.session_variables where variable_name='innodb_trx_rseg_n_slots_debug';
VARIABLE_NAME VARIABLE_VALUE
INNODB_TRX_RSEG_N_SLOTS_DEBUG 0
set session innodb_trx_rseg_n_slots_debug='some';
ERROR HY000: Variable 'innodb_trx_rseg_n_slots_debug' is a GLOBAL variable and should be set with SET GLOBAL
set @@session.innodb_trx_rseg_n_slots_debug='some';
ERROR HY000: Variable 'innodb_trx_rseg_n_slots_debug' is a GLOBAL variable and should be set with SET GLOBAL
set global innodb_trx_rseg_n_slots_debug=1.1;
ERROR 42000: Incorrect argument type to variable 'innodb_trx_rseg_n_slots_debug'
set global innodb_trx_rseg_n_slots_debug='foo';
ERROR 42000: Incorrect argument type to variable 'innodb_trx_rseg_n_slots_debug'
set global innodb_trx_rseg_n_slots_debug=-2;
Warnings:
Warning 1292 Truncated incorrect innodb_trx_rseg_n_slots_debug value: '-2'
set global innodb_trx_rseg_n_slots_debug=1e1;
ERROR 42000: Incorrect argument type to variable 'innodb_trx_rseg_n_slots_debug'
set global innodb_trx_rseg_n_slots_debug=1024;
set global innodb_trx_rseg_n_slots_debug=1025;
Warnings:
Warning 1292 Truncated incorrect innodb_trx_rseg_n_slots_debug value: '1025'
SET @@global.innodb_trx_rseg_n_slots_debug = @start_global_value;
SELECT @@global.innodb_trx_rseg_n_slots_debug;
@@global.innodb_trx_rseg_n_slots_debug
0
mysql-test/suite/sys_vars/r/plugin_dir_basic.result
View file @
8c894564
select @@global.plugin_dir;
@@global.plugin_dir
MYSQL_TMP_DIR
MYSQL_TMP_DIR
/
select @@session.plugin_dir;
ERROR HY000: Variable 'plugin_dir' is a GLOBAL variable
show global variables like 'plugin_dir';
Variable_name Value
plugin_dir MYSQL_TMP_DIR
plugin_dir MYSQL_TMP_DIR
/
show session variables like 'plugin_dir';
Variable_name Value
plugin_dir MYSQL_TMP_DIR
plugin_dir MYSQL_TMP_DIR
/
select * from information_schema.global_variables where variable_name='plugin_dir';
VARIABLE_NAME VARIABLE_VALUE
PLUGIN_DIR MYSQL_TMP_DIR
PLUGIN_DIR MYSQL_TMP_DIR
/
select * from information_schema.session_variables where variable_name='plugin_dir';
VARIABLE_NAME VARIABLE_VALUE
PLUGIN_DIR MYSQL_TMP_DIR
PLUGIN_DIR MYSQL_TMP_DIR
/
set global plugin_dir=1;
ERROR HY000: Variable 'plugin_dir' is a read only variable
set session plugin_dir=1;
...
...
mysql-test/suite/sys_vars/t/all_vars.test
View file @
8c894564
...
...
@@ -47,10 +47,6 @@ eval load data infile "$MYSQLTEST_VARDIR/tmp/sys_vars.all_vars.txt" into table t
insert
into
t2
select
variable_name
from
information_schema
.
global_variables
;
insert
into
t2
select
variable_name
from
information_schema
.
session_variables
;
# This is only present in debug builds.
delete
from
t2
where
variable_name
=
'innodb_change_buffering_debug'
;
delete
from
t2
where
variable_name
=
'innodb_trx_rseg_n_slots_debug'
;
# Performance schema variables are too long for files named
# 'mysql-test/suite/sys_vars/t/' ...
# ... 'performance_schema_events_waits_history_long_size_basic-master.opt'
...
...
mysql-test/suite/sys_vars/t/character_sets_dir_basic.test
View file @
8c894564
#
# show the global and session values;
#
--
replace_result
$MYSQL_CHARSETSDIR
MYSQL_CHARSETSDIR
# workaround to adjust for the directory separators being different in
# different OSes : slash on unixes and backslash or slash on windows.
# TODO: fix with a proper comparison in mysqltest
let
$rcd
=
`SELECT REPLACE('$MYSQL_CHARSETSDIR', '\\\\\', '.')`
;
let
$rcd
=
`SELECT REPLACE('$rcd', '/', '.')`
;
let
$regex_charsetdir
=
`SELECT '/$rcd[\\\\\/\\\\\]/MYSQL_CHARSETSDIR/'`
;
--
replace_regex
$regex_charsetdir
select
@@
global
.
character_sets_dir
;
--
error
ER_INCORRECT_GLOBAL_LOCAL_VAR
select
@@
session
.
character_sets_dir
;
--
replace_re
sult
$MYSQL_CHARSETSDIR
MYSQL_CHARSETSDIR
--
replace_re
gex
$regex_charsetdir
show
global
variables
like
'character_sets_dir'
;
--
replace_re
sult
$MYSQL_CHARSETSDIR
MYSQL_CHARSETSDIR
--
replace_re
gex
$regex_charsetdir
show
session
variables
like
'character_sets_dir'
;
--
replace_re
sult
$MYSQL_CHARSETSDIR
MYSQL_CHARSETSDIR
--
replace_re
gex
$regex_charsetdir
select
*
from
information_schema
.
global_variables
where
variable_name
=
'character_sets_dir'
;
--
replace_re
sult
$MYSQL_CHARSETSDIR
MYSQL_CHARSETSDIR
--
replace_re
gex
$regex_charsetdir
select
*
from
information_schema
.
session_variables
where
variable_name
=
'character_sets_dir'
;
#
...
...
mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test
0 → 100644
View file @
8c894564
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_debug
.
inc
SET
@
start_global_value
=
@@
global
.
innodb_change_buffering_debug
;
SELECT
@
start_global_value
;
#
# exists as global only
#
select
@@
global
.
innodb_change_buffering_debug
in
(
0
,
1
);
select
@@
global
.
innodb_change_buffering_debug
;
--
error
ER_INCORRECT_GLOBAL_LOCAL_VAR
select
@@
session
.
innodb_change_buffering_debug
;
show
global
variables
like
'innodb_change_buffering_debug'
;
show
session
variables
like
'innodb_change_buffering_debug'
;
select
*
from
information_schema
.
global_variables
where
variable_name
=
'innodb_change_buffering_debug'
;
select
*
from
information_schema
.
session_variables
where
variable_name
=
'innodb_change_buffering_debug'
;
#
# show that it's writable
#
set
global
innodb_change_buffering_debug
=
1
;
select
@@
global
.
innodb_change_buffering_debug
;
select
*
from
information_schema
.
global_variables
where
variable_name
=
'innodb_change_buffering_debug'
;
select
*
from
information_schema
.
session_variables
where
variable_name
=
'innodb_change_buffering_debug'
;
set
@@
global
.
innodb_change_buffering_debug
=
0
;
select
@@
global
.
innodb_change_buffering_debug
;
select
*
from
information_schema
.
global_variables
where
variable_name
=
'innodb_change_buffering_debug'
;
select
*
from
information_schema
.
session_variables
where
variable_name
=
'innodb_change_buffering_debug'
;
--
error
ER_GLOBAL_VARIABLE
set
session
innodb_change_buffering_debug
=
'some'
;
--
error
ER_GLOBAL_VARIABLE
set
@@
session
.
innodb_change_buffering_debug
=
'some'
;
#
# incorrect types
#
--
error
ER_WRONG_TYPE_FOR_VAR
set
global
innodb_change_buffering_debug
=
1.1
;
--
error
ER_WRONG_TYPE_FOR_VAR
set
global
innodb_change_buffering_debug
=
'foo'
;
set
global
innodb_change_buffering_debug
=-
2
;
--
error
ER_WRONG_TYPE_FOR_VAR
set
global
innodb_change_buffering_debug
=
1
e1
;
set
global
innodb_change_buffering_debug
=
2
;
#
# Cleanup
#
SET
@@
global
.
innodb_change_buffering_debug
=
@
start_global_value
;
SELECT
@@
global
.
innodb_change_buffering_debug
;
mysql-test/suite/sys_vars/t/innodb_trx_rseg_n_slots_debug_basic.test
0 → 100644
View file @
8c894564
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_debug
.
inc
SET
@
start_global_value
=
@@
global
.
innodb_trx_rseg_n_slots_debug
;
SELECT
@
start_global_value
;
#
# exists as global only
#
select
@@
global
.
innodb_trx_rseg_n_slots_debug
between
0
and
1024
;
select
@@
global
.
innodb_trx_rseg_n_slots_debug
;
--
error
ER_INCORRECT_GLOBAL_LOCAL_VAR
select
@@
session
.
innodb_trx_rseg_n_slots_debug
;
show
global
variables
like
'innodb_trx_rseg_n_slots_debug'
;
show
session
variables
like
'innodb_trx_rseg_n_slots_debug'
;
select
*
from
information_schema
.
global_variables
where
variable_name
=
'innodb_trx_rseg_n_slots_debug'
;
select
*
from
information_schema
.
session_variables
where
variable_name
=
'innodb_trx_rseg_n_slots_debug'
;
#
# show that it's writable
#
set
global
innodb_trx_rseg_n_slots_debug
=
1
;
select
@@
global
.
innodb_trx_rseg_n_slots_debug
;
select
*
from
information_schema
.
global_variables
where
variable_name
=
'innodb_trx_rseg_n_slots_debug'
;
select
*
from
information_schema
.
session_variables
where
variable_name
=
'innodb_trx_rseg_n_slots_debug'
;
set
@@
global
.
innodb_trx_rseg_n_slots_debug
=
0
;
select
@@
global
.
innodb_trx_rseg_n_slots_debug
;
select
*
from
information_schema
.
global_variables
where
variable_name
=
'innodb_trx_rseg_n_slots_debug'
;
select
*
from
information_schema
.
session_variables
where
variable_name
=
'innodb_trx_rseg_n_slots_debug'
;
--
error
ER_GLOBAL_VARIABLE
set
session
innodb_trx_rseg_n_slots_debug
=
'some'
;
--
error
ER_GLOBAL_VARIABLE
set
@@
session
.
innodb_trx_rseg_n_slots_debug
=
'some'
;
#
# incorrect types
#
--
error
ER_WRONG_TYPE_FOR_VAR
set
global
innodb_trx_rseg_n_slots_debug
=
1.1
;
--
error
ER_WRONG_TYPE_FOR_VAR
set
global
innodb_trx_rseg_n_slots_debug
=
'foo'
;
set
global
innodb_trx_rseg_n_slots_debug
=-
2
;
--
error
ER_WRONG_TYPE_FOR_VAR
set
global
innodb_trx_rseg_n_slots_debug
=
1
e1
;
set
global
innodb_trx_rseg_n_slots_debug
=
1024
;
set
global
innodb_trx_rseg_n_slots_debug
=
1025
;
#
# Cleanup
#
SET
@@
global
.
innodb_trx_rseg_n_slots_debug
=
@
start_global_value
;
SELECT
@@
global
.
innodb_trx_rseg_n_slots_debug
;
scripts/mysqld_safe.sh
View file @
8c894564
...
...
@@ -740,17 +740,55 @@ cmd="$cmd $args"
test
-n
"
$NOHUP_NICENESS
"
&&
cmd
=
"
$cmd
< /dev/null"
log_notice
"Starting
$MYSQLD
daemon with databases from
$DATADIR
"
# variable to track the current number of "fast" (a.k.a. subsecond) restarts
fast_restart
=
0
# maximum number of restarts before trottling kicks in
max_fast_restarts
=
5
# flag whether a usable sleep command exists
have_sleep
=
1
while
true
do
rm
-f
$safe_mysql_unix_port
"
$pid_file
"
# Some extra safety
start_time
=
`
date
+%M%S
`
eval_log_error
"
$cmd
"
end_time
=
`
date
+%M%S
`
if
test
!
-f
"
$pid_file
"
# This is removed if normal shutdown
then
break
fi
# sanity check if time reading is sane and there's sleep
if
test
$end_time
-gt
0
-a
$have_sleep
-gt
0
then
# throttle down the fast restarts
if
test
$end_time
-eq
$start_time
then
fast_restart
=
`
expr
$fast_restart
+ 1
`
if
test
$fast_restart
-ge
$max_fast_restarts
then
log_notice
"The server is respawning too fast. Sleeping for 1 second."
sleep
1
sleep_state
=
$?
if
test
$sleep_state
-gt
0
then
log_notice
"The server is respawning too fast and no working sleep command. Turning off trottling."
have_sleep
=
0
fi
fast_restart
=
0
fi
else
fast_restart
=
0
fi
fi
if
@TARGET_LINUX@
&&
test
$KILL_MYSQLD
-eq
1
then
# Test if one process was hanging.
...
...
sql/mysqld.cc
View file @
8c894564
...
...
@@ -7476,8 +7476,10 @@ static int fix_paths(void)
(
void
)
my_load_path
(
mysql_home
,
mysql_home
,
""
);
// Resolve current dir
(
void
)
my_load_path
(
mysql_real_data_home
,
mysql_real_data_home
,
mysql_home
);
(
void
)
my_load_path
(
pidfile_name
,
pidfile_name_ptr
,
mysql_real_data_home
);
(
void
)
my_load_path
(
opt_plugin_dir
,
opt_plugin_dir_ptr
?
opt_plugin_dir_ptr
:
get_relative_path
(
PLUGINDIR
),
mysql_home
);
convert_dirname
(
opt_plugin_dir
,
opt_plugin_dir_ptr
?
opt_plugin_dir_ptr
:
get_relative_path
(
PLUGINDIR
),
NullS
);
(
void
)
my_load_path
(
opt_plugin_dir
,
opt_plugin_dir
,
mysql_home
);
opt_plugin_dir_ptr
=
opt_plugin_dir
;
my_realpath
(
mysql_unpacked_real_data_home
,
mysql_real_data_home
,
MYF
(
0
));
...
...
sql/sql_plugin.cc
View file @
8c894564
...
...
@@ -463,18 +463,22 @@ static st_plugin_dl *plugin_dl_add(const LEX_STRING *dl, int report)
dlpathlen
=
strxnmov
(
dlpath
,
sizeof
(
dlpath
)
-
1
,
opt_plugin_dir
,
"/"
,
dl
->
str
,
NullS
)
-
dlpath
;
(
void
)
unpack_filename
(
dlpath
,
dlpath
);
plugin_dl
.
ref_count
=
1
;
/* Open new dll handle */
if
(
!
(
plugin_dl
.
handle
=
dlopen
(
dlpath
,
RTLD_NOW
)))
{
const
char
*
errmsg
=
dlerror
();
const
char
*
errmsg
;
int
error_number
=
dlopen_errno
;
DLERROR_GENERATE
(
errmsg
,
error_number
);
if
(
!
strncmp
(
dlpath
,
errmsg
,
dlpathlen
))
{
// if errmsg starts from dlpath, trim this prefix.
errmsg
+=
dlpathlen
;
if
(
*
errmsg
==
':'
)
errmsg
++
;
if
(
*
errmsg
==
' '
)
errmsg
++
;
}
report_error
(
report
,
ER_CANT_OPEN_LIBRARY
,
dlpath
,
err
no
,
errmsg
);
report_error
(
report
,
ER_CANT_OPEN_LIBRARY
,
dlpath
,
err
or_number
,
errmsg
);
DBUG_RETURN
(
0
);
}
/* Determine interface version */
...
...
sql/sql_udf.cc
View file @
8c894564
...
...
@@ -221,10 +221,15 @@ void udf_init()
char
dlpath
[
FN_REFLEN
];
strxnmov
(
dlpath
,
sizeof
(
dlpath
)
-
1
,
opt_plugin_dir
,
"/"
,
tmp
->
dl
,
NullS
);
(
void
)
unpack_filename
(
dlpath
,
dlpath
);
if
(
!
(
dl
=
dlopen
(
dlpath
,
RTLD_NOW
)))
{
const
char
*
errmsg
;
int
error_number
=
dlopen_errno
;
DLERROR_GENERATE
(
errmsg
,
error_number
);
/* Print warning to log */
sql_print_error
(
ER
(
ER_CANT_OPEN_LIBRARY
),
tmp
->
dl
,
err
no
,
dlerror
()
);
sql_print_error
(
ER
(
ER_CANT_OPEN_LIBRARY
),
tmp
->
dl
,
err
or_number
,
errmsg
);
/* Keep the udf in the hash so that we can remove it later */
continue
;
}
...
...
@@ -469,12 +474,18 @@ int mysql_create_function(THD *thd,udf_func *udf)
{
char
dlpath
[
FN_REFLEN
];
strxnmov
(
dlpath
,
sizeof
(
dlpath
)
-
1
,
opt_plugin_dir
,
"/"
,
udf
->
dl
,
NullS
);
(
void
)
unpack_filename
(
dlpath
,
dlpath
);
if
(
!
(
dl
=
dlopen
(
dlpath
,
RTLD_NOW
)))
{
const
char
*
errmsg
;
int
error_number
=
dlopen_errno
;
DLERROR_GENERATE
(
errmsg
,
error_number
);
DBUG_PRINT
(
"error"
,(
"dlopen of %s failed, error: %d (%s)"
,
udf
->
dl
,
err
no
,
dlerror
()
));
udf
->
dl
,
err
or_number
,
errmsg
));
my_error
(
ER_CANT_OPEN_LIBRARY
,
MYF
(
0
),
udf
->
dl
,
err
no
,
dlerror
()
);
udf
->
dl
,
err
or_number
,
errmsg
);
goto
err
;
}
new_dl
=
1
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment