This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 0bcc1771f6d [fix](fe) fix several blocking bugs #37756 (#37758)
0bcc1771f6d is described below

commit 0bcc1771f6d2c0915a09a2229b9af30b07126fc3
Author: Mingyu Chen <morning...@163.com>
AuthorDate: Sun Jul 14 18:50:23 2024 +0800

    [fix](fe) fix several blocking bugs #37756 (#37758)
    
    bp #37756
---
 .../java/org/apache/doris/analysis/FunctionCallExpr.java    |  1 -
 .../java/org/apache/doris/qe/MasterCatalogExecutor.java     | 13 +++++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

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 3f92c959670..e588e8ca717 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 class FunctionCallExpr extends Expr {
         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 a1e557b526b..293413e9708 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 class MasterCatalogExecutor {
         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;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to