From aba3be36c6ddf8190765acc7b0dd1cb2d692a2bd Mon Sep 17 00:00:00 2001 From: Collapsar Date: Tue, 23 Mar 2021 13:16:22 +0800 Subject: [PATCH] ok packet of conn heartbeat returns when heartTimeout isn't initialized (#2547) --- .../mysql/nio/handler/ConnectionHeartBeatHandler.java | 7 +++++-- .../manager/information/tables/statistic/SqlLog.java | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ConnectionHeartBeatHandler.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ConnectionHeartBeatHandler.java index c5c785f8a..c7abaf8df 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ConnectionHeartBeatHandler.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ConnectionHeartBeatHandler.java @@ -43,11 +43,13 @@ public class ConnectionHeartBeatHandler implements ResponseHandler { } public boolean ping(long timeout) { - conn.getService().writeDirectly(PingPacket.PING); if (heartbeatLock != null) { + conn.getService().writeDirectly(PingPacket.PING); synchronized (heartbeatLock) { try { - heartbeatLock.wait(timeout); + while (!finished) { + heartbeatLock.wait(timeout); + } } catch (InterruptedException e) { finished = false; } @@ -55,6 +57,7 @@ public class ConnectionHeartBeatHandler implements ResponseHandler { return finished; } else { heartbeatTimeout = TimerHolder.getTimer().newTimeout(timeout1 -> conn.businessClose("conn heart timeout"), timeout, TimeUnit.MILLISECONDS); + conn.getService().writeDirectly(PingPacket.PING); return true; } } diff --git a/src/main/java/com/actiontech/dble/services/manager/information/tables/statistic/SqlLog.java b/src/main/java/com/actiontech/dble/services/manager/information/tables/statistic/SqlLog.java index cb00e8b74..684fbb6a2 100644 --- a/src/main/java/com/actiontech/dble/services/manager/information/tables/statistic/SqlLog.java +++ b/src/main/java/com/actiontech/dble/services/manager/information/tables/statistic/SqlLog.java @@ -87,7 +87,7 @@ public class SqlLog extends ManagerBaseTable { } else { map.put(COLUMN_SQL_STMT, sqlRecord.getStmt()); } - map.put(COLUMN_SQL_TYPE, sqlRecord.getSqlId() + ""); + map.put(COLUMN_SQL_TYPE, sqlRecord.getSqlType() + ""); map.put(COLUMN_TX_ID, sqlRecord.getTxId() + ""); map.put(COLUMN_ENTRY, sqlRecord.getEntry() + ""); map.put(COLUMN_USER, sqlRecord.getUser());