Skip to content

FetchStoreNodeOfChildTableHandler can cause serverConnection hang & leak of MysqlConnetion #1180

@sunsun314

Description

@sunsun314
  • dble version: 19.03/rel
  • configs:

schema.xml

         <table name="table_b" dataNode="dn1,dn2" rule="sharding-by-hash2">
            <childTable name="table_c" joinKey="name" parentKey="name">
            </childTable>
         </table>

    <dataHost name="localhost1" maxCon="4" minCon="0" balance="0" switchType="1" slaveThreshold="100">

Problem 1

  • steps:
    step1. create table table_b(id int,name varchar(40));
        create table table_c(name varchar(40),id int);
        insert into table_b set id = 1,name = "xx"
    step2. use a Btrace script to trace the method MySQLConnection#query add sleep(100000L)
    step3. insert into table_c set id =5,name ="xx"
    step4. login into mysql ,kill all connections with dn1
  • expect result:
    return errorMsg:
    mysql> insert into table_c set id =5,name ="xx";
    ERROR 1105 (HY000): can't find (root) parent sharding node for sql:INSERT INTO table_c (id, name)
    VALUES (5, 'xx')
  • real result:
    serverConnection hang

Problem 2

  • steps:
    step1. create table table_b(id int,name varchar(40));
        create table table_c(name varchar(40),id int);
        insert into table_b set id = 1,name = "xx"
    step2. execute begin; insert into table_c set id =5,name ="xx" ; for more than 5 times
    step3. start new client connect to dble execute select * from table_b
  • expect result:
    query result
  • real result:
    maxCon errorMsg

Metadata

Metadata

Assignees

Labels

resolveproblem has been fixed by developer

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions