This is an automated email from the ASF dual-hosted git repository. gosonzhang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/inlong.git
The following commit(s) were added to refs/heads/master by this push: new 0a50a95ff0 [INLONG-11788][SDK] Add processing logic when DataProxyNodeResponse.nodeList field is null (#11789) 0a50a95ff0 is described below commit 0a50a95ff04951a6960690f6a01d577ecd2ea33d Author: Goson Zhang <4675...@qq.com> AuthorDate: Thu Feb 27 16:35:25 2025 +0800 [INLONG-11788][SDK] Add processing logic when DataProxyNodeResponse.nodeList field is null (#11789) Co-authored-by: gosonzhang <gosonzh...@tencent.com> --- .../org/apache/inlong/sdk/dataproxy/common/ErrorCode.java | 13 +++++++------ .../apache/inlong/sdk/dataproxy/common/ProcessResult.java | 9 +++++---- .../inlong/sdk/dataproxy/config/ProxyConfigManager.java | 11 +++++++++++ 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/common/ErrorCode.java b/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/common/ErrorCode.java index 379d97c4f4..bd22d53ad3 100644 --- a/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/common/ErrorCode.java +++ b/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/common/ErrorCode.java @@ -53,13 +53,14 @@ public enum ErrorCode { PARSE_RMT_CONTENT_IS_NULL(46, "Parse manager content is null"), RMT_RETURN_ERROR(47, "Manager return error info"), META_FIELD_DATA_IS_NULL(48, "Field data is null"), - META_NODE_LIST_IS_EMPTY(49, "Field nodeList is empty"), - NODE_LIST_RECORD_INVALID(50, "No valid nodeList records"), + META_FIELD_NODE_LIST_NULL(49, "Field nodeList is null"), + META_NODE_LIST_IS_EMPTY(50, "Field nodeList is empty"), // - PARSE_PROXY_META_EXCEPTION(51, "No valid nodeList records"), - PARSE_ENCRYPT_META_EXCEPTION(52, "Parse encrypt content failure"), - META_REQUIRED_FIELD_NOT_EXIST(53, "Required meta field not exist"), - META_FIELD_VALUE_ILLEGAL(54, "Meta field value illegal"), + NODE_LIST_RECORD_INVALID(51, "No valid nodeList records"), + PARSE_PROXY_META_EXCEPTION(52, "No valid nodeList records"), + PARSE_ENCRYPT_META_EXCEPTION(53, "Parse encrypt content failure"), + META_REQUIRED_FIELD_NOT_EXIST(54, "Required meta field not exist"), + META_FIELD_VALUE_ILLEGAL(55, "Meta field value illegal"), // FETCH_PROXY_META_FAILURE(59, "Fetch dataproxy meta info failure"), FETCH_ENCRYPT_META_FAILURE(60, "Fetch encrypt meta info failure"), diff --git a/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/common/ProcessResult.java b/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/common/ProcessResult.java index c3763e9c08..bdf151101a 100644 --- a/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/common/ProcessResult.java +++ b/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/common/ProcessResult.java @@ -27,7 +27,7 @@ public class ProcessResult { // error code private int errCode = ErrorCode.UNKNOWN_ERROR.getErrCode(); // error message - private String errMsg = ""; + private String errMsg = ErrorCode.UNKNOWN_ERROR.getErrMsg(); // return data if success private Object retData = null; @@ -37,6 +37,7 @@ public class ProcessResult { public ProcessResult(ErrorCode errCode) { this.errCode = errCode.getErrCode(); + this.errMsg = errCode.getErrMsg(); } public ProcessResult(ErrorCode errCode, String errMsg) { @@ -46,14 +47,14 @@ public class ProcessResult { public boolean setSuccess() { this.errCode = ErrorCode.OK.getErrCode(); - this.errMsg = ""; + this.errMsg = ErrorCode.OK.getErrMsg(); this.retData = null; return isSuccess(); } public boolean setSuccess(Object retData) { this.errCode = ErrorCode.OK.getErrCode(); - this.errMsg = ""; + this.errMsg = ErrorCode.OK.getErrMsg(); this.retData = retData; return isSuccess(); } @@ -67,7 +68,7 @@ public class ProcessResult { public boolean setFailResult(ErrorCode errCode) { this.errCode = errCode.getErrCode(); - this.errMsg = ""; + this.errMsg = errCode.getErrMsg(); this.retData = null; return isSuccess(); } diff --git a/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/config/ProxyConfigManager.java b/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/config/ProxyConfigManager.java index 805d158849..061e47f2ac 100644 --- a/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/config/ProxyConfigManager.java +++ b/inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/config/ProxyConfigManager.java @@ -92,6 +92,7 @@ public class ProxyConfigManager extends Thread { private static final Logger logger = LoggerFactory.getLogger(ProxyConfigManager.class); private static final LogCounter exptCounter = new LogCounter(10, 100000, 60 * 1000L); private static final LogCounter parseCounter = new LogCounter(10, 100000, 60 * 1000L); + protected static final LogCounter cntCounter = new LogCounter(10, 100000, 60 * 1000L); private static final Map<String, Tuple2<AtomicLong, String>> fetchFailProxyMap = new ConcurrentHashMap<>(); private static final Map<String, Tuple2<AtomicLong, String>> fetchFailEncryptMap = @@ -432,6 +433,10 @@ public class ProxyConfigManager extends Thread { rmvManagerQryFailStatus(true); } else { bookManagerQryFailStatus(true, procResult.getErrMsg()); + if (cntCounter.shouldPrint()) { + logger.warn("ConfigManager({}) illegal content, from=({}), groupId={}, content={}, result={}", + callerId, proxyConfigVisitUrl, mgrConfig.getInlongGroupId(), content, procResult); + } } return procResult.isSuccess(); } catch (Throwable ex) { @@ -945,6 +950,9 @@ public class ProxyConfigManager extends Thread { return procResult.setFailResult(ErrorCode.META_FIELD_DATA_IS_NULL); } proxyNodeConfig = clusterConfig.getData(); + if (proxyNodeConfig.getNodeList() == null) { + return procResult.setFailResult(ErrorCode.META_FIELD_NODE_LIST_NULL); + } } else { try { proxyNodeConfig = gson.fromJson(strRet, DataProxyNodeResponse.class); @@ -959,6 +967,9 @@ public class ProxyConfigManager extends Thread { if (proxyNodeConfig == null) { return procResult.setFailResult(ErrorCode.PARSE_FILE_CONTENT_IS_NULL); } + if (proxyNodeConfig.getNodeList() == null) { + return procResult.setFailResult(ErrorCode.META_FIELD_NODE_LIST_NULL); + } } // parse nodeList List<DataProxyNodeInfo> nodeList = proxyNodeConfig.getNodeList();