[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 65be2a885d
commit d313fa89b0
2 changed files with 5 additions and 5 deletions

View File

@@ -131,7 +131,7 @@ public abstract class BackendService extends AbstractService {
handleDataError(e);
} finally {
isHandling.set(false);
if (taskQueue.size() > 0) {
if (!taskQueue.isEmpty()) {
doHandle(task);
}
}
@@ -232,7 +232,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
@@ -674,8 +674,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

@@ -528,7 +528,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().getBackendExecutor();