mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
1d8cfe3c77
All failing cases were attempts to use connection after the server was brought down and restarted. Connections used client reconnect option. The reason for failures is the behavior of sockets on Windows: for a short period after crash (short enough to make the error not reproducible under debugger), write to socket on client side would succeed but subsequent read would fail. MYSQL_OPT_RECONNECT does not really help in this case , because in the case given here ,as mysql_real_query() (which can handle reconnect option) succeeds and mysql_read_results() (can't handle reconnect) fails. The fix is adding --include wait_until_connected_again.inc to appropriate places in test. This ensures that read errors are caught and connection is recreated.
32 lines
912 B
PHP
32 lines
912 B
PHP
# Maria helper script
|
|
# Copies clean tables' data and index file to other directory
|
|
# Tables are $mms_tname1...$mms_tname[$mms_tables]
|
|
# They are later used as a reference to see if recovery works.
|
|
|
|
# API:
|
|
# set $mms_tname to a string, and $mms_tables to a number N, the script will
|
|
# cover tables mysqltest.$mms_tname1,...$mms_tnameN
|
|
|
|
connection admin;
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
let $mms_table_to_use=$mms_tables;
|
|
let $mms_purpose=comparison;
|
|
let $mms_copy=1;
|
|
|
|
--disable_query_log
|
|
--disable_warnings
|
|
eval drop database if exists mysqltest_for_$mms_purpose;
|
|
--enable_warnings
|
|
eval create database mysqltest_for_$mms_purpose;
|
|
--enable_query_log
|
|
|
|
while ($mms_table_to_use)
|
|
{
|
|
# to serve as a reference, table must be in a clean state
|
|
eval flush table $mms_tname$mms_table_to_use;
|
|
-- source include/maria_make_snapshot.inc
|
|
dec $mms_table_to_use;
|
|
}
|
|
let $mms_copy=0;
|
|
connection default;
|