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 <zhang...@gmail.com> 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: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org