MyCATApache / Mycat-Server

GNU General Public License v2.0
9.5k stars 3.85k forks source link

没有释放executeSqlQueue队列,导致客户端假死 #2944

Open whipfeng opened 9 months ago

whipfeng commented 9 months ago

1、bug描述

类中io.mycat.backend.jdbc.JDBCConnection这段逻辑,前两个分支最终是不是没有释放executeSqlQueue队列,导致客户端假死现象 if ((sqlType == ServerParse.SHOW) && (!dbType.equals("MYSQL"))) { // showCMD(sc, orgin); //ShowVariables.execute(sc, orgin); ShowVariables.execute(sc, orgin,this); } else if ("SELECT CONNECTION_ID()".equalsIgnoreCase(orgin)) { //ShowVariables.justReturnValue(sc,String.valueOf(sc.getId())); ShowVariables.justReturnValue(sc,String.valueOf(sc.getId()),this); } else { ouputResultSet(sc, orgin); }.

2、版本号(非常重要) main分支

3、相关表的配置信息 schema.xml (JDBC方式连接的sqlite)

4、操作步骤

  1. 客户端连接后执行use TESTDB
  2. show tables卡住不返回 5、期望结果 有返回(报错都行).

6、实际结果 卡住假死.

7、额外信息 无.