# # 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;