Current Path : /home/usr.opt/mysql57/mysql-test/suite/x/t/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : /home/usr.opt/mysql57/mysql-test/suite/x/t/client_close_abort.test |
--source include/restart_mysqld.inc --source ../include/xplugin_preamble.inc ##Pipelining the message after closing the pipe leads to undefined behaviour hence is not suppoerted on Windows OS --source include/not_windows.inc call mtr.add_suppression('Message of size 4294967040 received, exceeding the limit of 1048576'); call mtr.add_suppression('22.1: Unsuccessful login attempt: Invalid user or password'); # wait a little to give time for internal temporary session to die out select sleep(1); --replace_regex /localhost[:0-9]*/localhost/ /Execute/Query/ SELECT `user`,`host`,`db`,`command`,`state`,`info` FROM INFORMATION_SCHEMA.PROCESSLIST WHERE `state` != 'cleaning up'; ## Test starts here ## Due to Windows OS TCP stack characteristics, the client should not queue anything after the message that is closing the session. ## This leads to undefined behavior (like errors from the server for the messages preceding session close) if the server runs on that OS. ## That is why this test is disabled for Windows. --write_file $MYSQL_TMP_DIR/client_close_abort.tmp -->title -Close in a pipeline and try to do something after close -->newsession sess root Mysqlx.Sql.StmtExecute { stmt: "select 4.1" } Mysqlx.Sql.StmtExecute { stmt: "select 4.2" } Mysqlx.Session.Close { } -->expecterror 0,2007 Mysqlx.Sql.StmtExecute { stmt: "select 'fail'" } -->recvresult -->recvresult -->recv -->expecterror 2006,2007 -->recv -->closesession abort EOF --exec $MYSQLXTEST -uroot --password='' --file=$MYSQL_TMP_DIR/client_close_abort.tmp 2>&1 --remove_file $MYSQL_TMP_DIR/client_close_abort.tmp # sleep for a while to ensure clean up finished select sleep(1); show global status like 'mysqlx_sessions'; show global status like 'mysqlx_connections_%'; --replace_regex /localhost[:0-9]*/localhost/ /Execute/Query/ SELECT `user`,`host`,`db`,`command`,`state`,`info` FROM INFORMATION_SCHEMA.PROCESSLIST WHERE `state` != 'cleaning up'; ## Postamble uninstall plugin mysqlx;