diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java index 3f92c9596705af..e588e8ca717edc 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java @@ -2364,7 +2364,6 @@ public int hashCode() { int result = super.hashCode(); result = 31 * result + Objects.hashCode(opcode); result = 31 * result + Objects.hashCode(fnName); - result = 31 * result + Objects.hashCode(fnParams); return result; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/MasterCatalogExecutor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/MasterCatalogExecutor.java index a1e557b526b5a2..293413e97084c5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/MasterCatalogExecutor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/MasterCatalogExecutor.java @@ -66,11 +66,20 @@ public void forward(long catalogId, long dbId) throws Exception { boolean isReturnToPool = false; try { TInitExternalCtlMetaResult result = client.initExternalCtlMeta(request); - Env.getCurrentEnv().getJournalObservable().waitOn(result.maxJournalId, waitTimeoutMs); if (!result.getStatus().equalsIgnoreCase(STATUS_OK)) { throw new UserException(result.getStatus()); + } else { + // DO NOT wait on journal replayed, this may cause deadlock. + // 1. hold table read lock + // 2. wait on journal replayed + // 3. previous journal (eg, txn journal) replayed need to hold table write lock + // 4. deadlock + // But no waiting on journal replayed may cause some request on non-master FE failed for some time. + // There is no good solution for this. + // In feature version, this whole process is refactored, so we temporarily remove this waiting. + // Env.getCurrentEnv().getJournalObservable().waitOn(result.maxJournalId, timeoutMs); + isReturnToPool = true; } - isReturnToPool = true; } catch (Exception e) { LOG.warn("Failed to finish forward init operation, please try again. ", e); throw e;