[inner-2371] fix: sql execution hang problem caused by the inability to respond to the front side due to unprocessed packets.

(cherry picked from commit dcff228b4c13bf0fd9f7bb0d52f9c18aaba36b59、07c0c1f1c986a71fb74d0fcc0379965592c63b49)
This commit is contained in:
wenyh1
2023-10-31 18:03:06 +08:00
parent 41683fbd3b
commit c7a3cb898d
2 changed files with 5 additions and 5 deletions

View File

@@ -130,7 +130,7 @@ public abstract class BackendService extends AbstractService {
handleDataError(e);
} finally {
isHandling.set(false);
if (taskQueue.size() > 0) {
if (!taskQueue.isEmpty()) {
doHandle(task);
}
}
@@ -222,7 +222,7 @@ public abstract class BackendService extends AbstractService {
protected void handleDataError(Exception e) {
LOGGER.warn(this.toString() + " handle data error:", e);
connection.close("handle data error:" + e.getMessage());
while (taskQueue.size() > 0) {
while (!taskQueue.isEmpty()) {
clearTaskQueue();
readSize.set(0);
// clear all data from the client
@@ -649,8 +649,8 @@ public abstract class BackendService extends AbstractService {
handleDataError(e);
} finally {
isHandling.set(false);
if (taskQueue.size() > 0) {
doHandle(null);
if (!taskQueue.isEmpty()) {
doHandle(taskQueue.peek());
}
}
}

View File

@@ -509,7 +509,7 @@ public class MySQLResponseService extends BackendService {
@Override
protected Executor getExecutor() {
Executor executor;
if (complexQuery) {
if (complexQuery || SystemConfig.getInstance().getUsePerformanceMode() == 1) {
executor = DbleServer.getInstance().getComplexQueryExecutor();
} else {
executor = DbleServer.getInstance().getBackendBusinessExecutor();