From a8cc40d9a42e69cc39242f0a2824cd9cdd852a80 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Fri, 4 Oct 2024 16:49:53 +1000 Subject: [PATCH] MDEV-35064 Reduce the default spider connect retry counts to 2 The existing default value 1000 is too big and could result in "hanging" when failing to connect a remote server. Three tries in total is a more sensible default. --- .../spider/bugfix/r/mdev_35064.result | 14 +++++++++++++ .../spider/bugfix/t/mdev_35064.test | 20 +++++++++++++++++++ storage/spider/spd_db_mysql.cc | 2 +- storage/spider/spd_param.cc | 2 +- 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 storage/spider/mysql-test/spider/bugfix/r/mdev_35064.result create mode 100644 storage/spider/mysql-test/spider/bugfix/t/mdev_35064.test diff --git a/storage/spider/mysql-test/spider/bugfix/r/mdev_35064.result b/storage/spider/mysql-test/spider/bugfix/r/mdev_35064.result new file mode 100644 index 00000000000..ee13fe625ee --- /dev/null +++ b/storage/spider/mysql-test/spider/bugfix/r/mdev_35064.result @@ -0,0 +1,14 @@ +for master_1 +for child2 +for child3 +CREATE SERVER s FOREIGN DATA WRAPPER mysql OPTIONS(HOST '1'); +CREATE TABLE t(c INT)ENGINE=Spider COMMENT='WRAPPER "mysql",SRV "s",TABLE "foo"'; +INSERT INTO t VALUES(1); +ERROR HY000: Unable to connect to foreign data source: s +INSERT INTO t VALUES(1); +ERROR HY000: Unable to connect to foreign data source: s +drop table t; +drop server s; +for master_1 +for child2 +for child3 diff --git a/storage/spider/mysql-test/spider/bugfix/t/mdev_35064.test b/storage/spider/mysql-test/spider/bugfix/t/mdev_35064.test new file mode 100644 index 00000000000..fcf2bb361af --- /dev/null +++ b/storage/spider/mysql-test/spider/bugfix/t/mdev_35064.test @@ -0,0 +1,20 @@ +--disable_query_log +--disable_result_log +--source ../../t/test_init.inc +--enable_result_log +--enable_query_log + +CREATE SERVER s FOREIGN DATA WRAPPER mysql OPTIONS(HOST '1'); +CREATE TABLE t(c INT)ENGINE=Spider COMMENT='WRAPPER "mysql",SRV "s",TABLE "foo"'; +--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE +INSERT INTO t VALUES(1); +--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE +INSERT INTO t VALUES(1); # Hangs +drop table t; +drop server s; + +--disable_query_log +--disable_result_log +--source ../../t/test_deinit.inc +--enable_result_log +--enable_query_log diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index 0cb4b657a2b..4b232c18166 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -2042,7 +2042,7 @@ int spider_db_mbase::connect( DBUG_RETURN(ER_CONNECT_TO_FOREIGN_DATA_SOURCE); } connect_retry_count--; - my_sleep((ulong) connect_retry_interval); + my_sleep((ulong) connect_retry_interval * 1000); } else { db_conn->net.thd = NULL; if (connect_mutex) diff --git a/storage/spider/spd_param.cc b/storage/spider/spd_param.cc index 55842682782..1913e6f91c7 100644 --- a/storage/spider/spd_param.cc +++ b/storage/spider/spd_param.cc @@ -1803,7 +1803,7 @@ static MYSQL_THDVAR_INT( "Connect retry count", /* comment */ NULL, /* check */ NULL, /* update */ - 1000, /* def */ + 2, /* def */ 0, /* min */ 2147483647, /* max */ 0 /* blk */