mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
17871ade9a
------------------------------------------------------------ revno: 3317 revision-id: davi.arnaut@sun.com-20090522170916-fzc5ca3tjs9roy1t parent: patrick.crews@sun.com-20090522152933-ole8s3suy4zqyvku committer: Davi Arnaut <Davi.Arnaut@Sun.COM> branch nick: 41860-6.0 timestamp: Fri 2009-05-22 14:09:16 -0300 message: Bug#41860: Without Windows named pipe The problem was that the patch for Bug#10374 broke named pipe and shared memory transports on Windows due to a failure to implement a dummy poll method for transports other than BSD sockets. Another problem was that mysqltest lacked support for named pipe and shared memory connections, which lead to misleading test cases that were supposed run common queries over both transports. The solution is to properly implement, at the VIO layer, the poll and is_connected methods. The is_connected method is implemented for every suppported transport and the poll one only where it makes sense. Furthermore, support for named pipe and shared memory connections is added to mysqltest as to enable testing of both transports using the test suite. client/mysqltest.cc: Add support for named pipe and shared memory connections. include/violite.h: Move private functions to vio/vio_priv.h Add poll_read and is_connected methods. mysql-test/t/named_pipe.test: Run tests over a named pipe connection. mysql-test/t/shm.test: Run tests over a shared memory connection. sql/item_func.cc: Rename method. sql/sql_class.cc: Remove higher-level vio_is_connected implementation. sql/sql_class.h: Rename vio_is_connected to not conflict with the vio one. Verify that there is a valid vio. vio/vio.c: Add poll_read and is_connected methods. vio/vio_priv.h: Add private functions. vio/viosocket.c: Implement the is_connected method for the various transports.
44 lines
1.4 KiB
Text
44 lines
1.4 KiB
Text
# We currently only have shm support on windows, so in order
|
|
# to optimize things we skip this test on all other platforms
|
|
--source include/windows.inc
|
|
|
|
# Only run this test if shared memory is avaliable
|
|
let $shm= query_get_value("SHOW VARIABLES LIKE 'shared_memory'", Value, 1);
|
|
if (`SELECT '$shm' != 'ON'`){
|
|
skip No shm support;
|
|
}
|
|
let $shm_name= query_get_value("SHOW GLOBAL VARIABLES LIKE 'shared_memory_base_name'", Value, 1);
|
|
|
|
# Connect using SHM for testing
|
|
connect(shm_con,localhost,root,,,,$shm_name,SHM);
|
|
|
|
# Source select test case
|
|
-- source include/common-tests.inc
|
|
|
|
connection default;
|
|
disconnect shm_con;
|
|
|
|
#
|
|
# Bug #24924: shared-memory-base-name that is too long causes buffer overflow
|
|
#
|
|
--exec $MYSQLADMIN --no-defaults --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --shared-memory-base-name=HeyMrBaseNameXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ping
|
|
|
|
#
|
|
# Bug #33899: Deadlock in mysql_real_query with shared memory connections
|
|
#
|
|
|
|
let $stmt= `SELECT REPEAT('a', 2048)`;
|
|
|
|
SET @max_allowed_packet= @@global.max_allowed_packet;
|
|
SET @net_buffer_length= @@global.net_buffer_length;
|
|
|
|
SET GLOBAL max_allowed_packet= 1024;
|
|
SET GLOBAL net_buffer_length= 1024;
|
|
|
|
--error 1
|
|
--exec echo SELECT '$stmt'| $MYSQL --protocol=memory --shared-memory-base-name=$shm_name 2>&1
|
|
|
|
SET GLOBAL max_allowed_packet= @max_allowed_packet;
|
|
SET GLOBAL net_buffer_length= @net_buffer_length;
|
|
|
|
--echo End of 5.0 tests.
|