mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 21:42:35 +01:00
ee156bf0c5
- rewrite "check warnings" to be faster by not creating a full join between error_log and suspicious_patterns while running REGEXP. Instead add a column to error_log that will be set to 1 to indicate a warning and run the 6 REGEXP's we have for suspicious lines as 6 separate full table scans. - Remove the "suspicious_patterns" table from mtr db - Use 'xykls37' as separator when loading the error log, that line should hopefully never exist in a line that should be a warning
64 lines
1.8 KiB
Text
64 lines
1.8 KiB
Text
|
|
#
|
|
# This test is executed once after each test to check the servers
|
|
# for unexpected warnings found in the servers error log
|
|
#
|
|
--disable_query_log
|
|
|
|
# Don't write these queries to binlog
|
|
set SQL_LOG_BIN=0;
|
|
|
|
# Turn off any debug crashes, allow the variable to be
|
|
# non existent in release builds
|
|
--error 0,1193
|
|
set debug="";
|
|
|
|
use mtr;
|
|
|
|
create temporary table error_log (
|
|
row int auto_increment primary key,
|
|
suspicious int default 0,
|
|
file_name varchar(255),
|
|
line varchar(1024) default null
|
|
) engine=myisam;
|
|
|
|
# Get the name of servers error log
|
|
let $log_error= query_get_value(show variables like 'log_error', Value, 1);
|
|
|
|
# Try to load the error log into the temporary table
|
|
--error 0,1085
|
|
eval load data infile '$log_error' into table error_log
|
|
fields terminated by 'xykls37' (line)
|
|
set file_name='$log_error';
|
|
if ($mysql_errno)
|
|
{
|
|
# The error log was not world readable, this is normally
|
|
# caused by a "flush logs" in the test program. mysqld
|
|
# will then rename the error log to .err-old and open
|
|
# a new error log file that is not world readable.
|
|
# chmod the error log file and try to open it again
|
|
chmod 0644 $log_error;
|
|
eval load data infile '$log_error' into table error_log
|
|
fields terminated by 'xykls37' (line)
|
|
set file_name='$log_error';
|
|
|
|
# Also load the .err-old file where there might be
|
|
# additional warnings
|
|
|
|
# Disabled intil Bug#42320 has been fixed
|
|
#let $old_log_error = $log_error-old;
|
|
#chmod 0644 $old_log_error;
|
|
#eval load data infile '$old_log_error' into table error_log
|
|
# fields terminated by 'xykls37' (line)
|
|
# set file_name='$old_log_error';
|
|
}
|
|
|
|
# Call check_warnings to filter out any warning in
|
|
# the error_log table
|
|
call mtr.check_warnings(@result);
|
|
if (`select @result = 0`){
|
|
skip OK;
|
|
}
|
|
--enable_query_log
|
|
echo ^ Found warnings!!;
|
|
exit;
|