This is an automated email from the ASF dual-hosted git repository.
jiafengzheng pushed a commit to branch branch-1.1-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.1-lts by this push:
new 3f06837059 [fix](log)Audit log status is incorrect (#12822)
3f06837059 is described below
commit 3f068370598de2dc64476fe65edae2b71946b749
Author: jiafeng.zhang <[email protected]>
AuthorDate: Sat Sep 24 09:40:29 2022 +0800
[fix](log)Audit log status is incorrect (#12822)
Audit log status is incorrect
---
.../src/main/java/org/apache/doris/qe/ConnectProcessor.java | 8 +++++++-
.../src/main/java/org/apache/doris/qe/MasterOpExecutor.java | 9 +++++++++
fe/fe-core/src/main/java/org/apache/doris/qe/QueryState.java | 3 ++-
fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java | 7 +++++++
.../main/java/org/apache/doris/service/FrontendServiceImpl.java | 7 +++++++
gensrc/thrift/FrontendService.thrift | 1 +
6 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
index a0da3f94f0..520cd87f8a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
@@ -54,6 +54,7 @@ import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.iceberg.catalog.Catalog;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -158,7 +159,11 @@ public class ConnectProcessor {
ctx.getAuditEventBuilder().setStmt(origStmt);
}
}
-
+ if(!Catalog.getCurrentCatalog().isMaster()) {
+ if(ctx.executor.isForwardToMaster()) {
+
ctx.getAuditEventBuilder().setState(ctx.executor.getProxyStatus());
+ }
+ }
Catalog.getCurrentAuditEventProcessor().handleAuditEvent(ctx.getAuditEventBuilder().build());
}
@@ -506,6 +511,7 @@ public class ConnectProcessor {
}
result.setMaxJournalId(Catalog.getCurrentCatalog().getMaxJournalId().longValue());
result.setPacket(getResultPacket());
+ result.setStatus(ctx.getState().toString());
if (executor != null && executor.getProxyResultSet() != null) {
result.setResultSet(executor.getProxyResultSet().tothrift());
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/MasterOpExecutor.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/MasterOpExecutor.java
index 36b86f2588..d960b52fca 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/MasterOpExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/MasterOpExecutor.java
@@ -141,6 +141,15 @@ public class MasterOpExecutor {
}
}
+ public String getProxyStatus() {
+ if (result == null) {
+ return QueryState.MysqlStateType.UNKNOWN.name();
+ }
+ if (!result.isSetStatus()) {
+ return QueryState.MysqlStateType.UNKNOWN.name();
+ }
+ return result.getStatus();
+ }
public ShowResultSet getProxyResultSet() {
if (result == null) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/QueryState.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/QueryState.java
index cf0376ab4a..fd24d9a1ad 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/QueryState.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/QueryState.java
@@ -29,7 +29,8 @@ public class QueryState {
NOOP, // send nothing to remote
OK, // send OK packet to remote
EOF, // send EOF packet to remote
- ERR // send ERROR packet to remote
+ ERR, // send ERROR packet to remote
+ UNKNOWN // send UNKNOWN packet to remote
}
public enum ErrType {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
index 5acf31d0b2..6302268452 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
@@ -296,6 +296,13 @@ public class StmtExecutor implements ProfileWriter {
}
}
+ public String getProxyStatus() {
+ if (masterOpExecutor == null) {
+ return QueryState.MysqlStateType.UNKNOWN.name();
+ }
+ return masterOpExecutor.getProxyStatus();
+ }
+
public boolean isQueryStmt() {
return parsedStmt != null && parsedStmt instanceof QueryStmt;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
index 56d0cfd1fd..aac464cb99 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
@@ -51,6 +51,7 @@ import org.apache.doris.plugin.AuditEvent.EventType;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.qe.ConnectProcessor;
import org.apache.doris.qe.QeProcessorImpl;
+import org.apache.doris.qe.QueryState;
import org.apache.doris.qe.VariableMgr;
import org.apache.doris.system.Frontend;
import org.apache.doris.system.SystemInfoService;
@@ -667,6 +668,12 @@ public class FrontendServiceImpl implements
FrontendService.Iface {
context.setCurrentConnectedFEIp(clientAddr.getHostname());
ConnectProcessor processor = new ConnectProcessor(context);
TMasterOpResult result = processor.proxyExecute(params);
+
+ if
(QueryState.MysqlStateType.ERR.name().equalsIgnoreCase(result.getStatus())) {
+ context.getState().setError(result.getStatus());
+ } else {
+ context.getState().setOk();
+ }
ConnectContext.remove();
return result;
}
diff --git a/gensrc/thrift/FrontendService.thrift
b/gensrc/thrift/FrontendService.thrift
index a56677b0ab..923ba595fc 100644
--- a/gensrc/thrift/FrontendService.thrift
+++ b/gensrc/thrift/FrontendService.thrift
@@ -479,6 +479,7 @@ struct TMasterOpResult {
2: required binary packet;
3: optional TShowResultSet resultSet;
4: optional Types.TUniqueId queryId;
+ 5: optional string status;
}
struct TLoadCheckRequest {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]