Current Path : /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 : //usr/opt/mysql57/mysql-test/suite/x/t/input_queue.test |
call mtr.add_suppression("Message of size .* received, exceeding the limit of"); --echo Setup --source ../include/xplugin_preamble.inc USE `test`; SET GLOBAL Mysqlx_max_allowed_packet=1024; CREATE TABLE IF NOT EXISTS `first_table`(`column_name` INTEGER DEFAULT 0 NOT NULL); --write_file $MYSQL_TMP_DIR/mysqlx-input-queue.tmp -->sql USE test; -->endsql -->macro Buffer_data %SESSION% %PACKET_COMMENT_SIZE% -->setsession -->sql LOCK TABLES `first_table` WRITE; -->endsql -->newsession %SESSION% root test Mysqlx.Sql.StmtExecute { stmt:"LOCK TABLES `first_table` READ;" namespace: "sql" } -->vargen %COMMENT% c %PACKET_COMMENT_SIZE% -->varsub %COMMENT% -->echo Test sends 4 messages -->echo LOCK TABLE stops processing of following commands -->quiet Mysqlx.Sql.StmtExecute { stmt:"SELECT 1 as `First query` /* %COMMENT% */;" namespace: "sql" } Mysqlx.Sql.StmtExecute { stmt:"SELECT 2 as `Second query`/* %COMMENT% */;" namespace: "sql" } Mysqlx.Sql.StmtExecute { stmt:"SELECT 3 as `Third query`/* %COMMENT% */;" namespace: "sql" } Mysqlx.Sql.StmtExecute { stmt:"SELECT 4 as `Fourth query`/* %COMMENT% */;" namespace: "sql" } -->noquiet -->setsession -->sql UNLOCK TABLES; -->endsql -->setsession %SESSION% -->recvresult -->recvresult -->recvresult -->recvresult -->recvresult -->echo Bug 21811192 (fixed) -->echo Lets try if plugin is processing new data Mysqlx.Sql.StmtExecute { stmt:"ping" namespace: "xplugin" } -->recvresult -->closesession %SESSION% -->endmacro -->macro Send_two_messages_as_one_and_queue_in_input %SESSION% %PACKET_COMMENT_SIZE% -->newsession %SESSION% root test -->vargen %COMMENT% c %PACKET_COMMENT_SIZE% -->varsub %COMMENT% -->quiet -->binparse %FIRST% Mysqlx.Sql.StmtExecute { stmt:"SELECT 1 as `First query`/*%PACKET_COMMENT_SIZE% %COMMENT% */;" namespace: "sql" } -->binparse %SECOND% Mysqlx.Sql.StmtExecute { stmt:"SELECT 2 as `Second query`;" namespace: "sql" } -->binsend %FIRST%%SECOND% -->noquiet -->echo wait for first -->recvresult -->echo wait for second -->recvresult -->echo Bug 21811192 (fixed) -->echo Lets try if plugin is processing new data Mysqlx.Sql.StmtExecute { stmt:"ping" namespace: "xplugin" } -->recvresult -->closesession %SESSION% -->endmacro -->macro Buffer_config %I1% %I2% %I3% -->setsession -->sql #Buffer uses one additional page SET GLOBAL Mysqlx_max_allowed_packet=%I2%; -->endsql -->endmacro -->echo Limits are less then page size -->callmacro Buffer_config 1024 1024 1024 -->callmacro Buffer_data test1 250 -->echo Multiple messages fill the buffer (last one uses extra page) -->callmacro Buffer_config 4094 4094 4094 -->callmacro Buffer_data test2 1024 -->callmacro Buffer_data test3 2048 -->callmacro Buffer_data test4 3048 -->echo Use 2 page for single message, while receiving second packet wait for first to be processed -->echo Extra page is used in case of not full loaded first page -->callmacro Buffer_config 4094 8188 4094 -->callmacro Buffer_data test5 8058 -->callmacro Buffer_config 1024 2024 100 -->callmacro Send_two_messages_as_one_and_queue_in_input test6 1024 -->echo Bug 21839782 (fixed) - no data in buffer for incoming message (infinite loop) # Current connection shouldn't be impacted by packet change -->newsession invalid_1 root -->sql SET GLOBAL mysqlx_max_allowed_packet=1048597; -->endsql -->quiet -->vargen %A% c 1048576 -->quiet -->echo While sending client could receive CR_BROKEN_PIPE network which could occur -->echo because xplugin stopped read ops -->expecterror 0,2007 Mysqlx.Sql.StmtExecute { stmt: "SELECT 1; /* %A% */" } -->noquiet -->peerdisc 2000 5000 EOF --echo Test case --exec $MYSQLXTEST -u root --password='' --file=$MYSQL_TMP_DIR/mysqlx-input-queue.tmp 2>&1 --remove_file $MYSQL_TMP_DIR/mysqlx-input-queue.tmp --echo Cleanup DROP TABLE `first_table`; UNINSTALL PLUGIN `mysqlx`;