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

dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 29a97669ef0 [fix](cloud) fix replay journal fail when FE node upgrade 
(#36156)
29a97669ef0 is described below

commit 29a97669ef07af70e65dab86d6df621e026239e0
Author: hui lai <[email protected]>
AuthorDate: Mon Jun 24 21:41:43 2024 +0800

    [fix](cloud) fix replay journal fail when FE node upgrade (#36156)
    
    ## Proposed changes
    
    introduce by https://github.com/apache/doris/pull/32759
    
    when upgrade 2.1 to master, error happened:
    ```
    java.io.EOFException: null
            at java.io.DataInputStream.readInt(DataInputStream.java:398) ~[?:?]
            at org.apache.doris.common.io.Text.readString(Text.java:413) 
~[fe-common-1.2-SNAPSHOT.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.load.loadv2.LoadJobFinalOperation.readFields(LoadJobFinalOperation.java:160)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.transaction.TxnCommitAttachment.read(TxnCommitAttachment.java:77)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.journal.JournalEntity.readFields(JournalEntity.java:569) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.journal.bdbje.BDBJournalCursor.next(BDBJournalCursor.java:115) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.catalog.Env.replayJournal(Env.java:2863) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.catalog.Env.transferToMaster(Env.java:1503) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.catalog.Env.access$1300(Env.java:332) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.catalog.Env$5.runOneCycle(Env.java:2764) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.common.util.Daemon.run(Daemon.java:116) 
~[doris-fe.jar:1.2-SNAPSHOT]
    ```
    
    Using a comparison of the FE meta version to solve this problem. 2.1 fe
    meta version is 129, use the fe version 131 used by
    [pr](https://github.com/apache/doris/pull/32759) at that time as the
    comparison value.
---
 .../doris/load/loadv2/LoadJobFinalOperation.java   | 25 +++++++++++++---------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJobFinalOperation.java
 
b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJobFinalOperation.java
index f0fe2ea6872..223dbd1ed7b 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJobFinalOperation.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJobFinalOperation.java
@@ -17,6 +17,7 @@
 
 package org.apache.doris.load.loadv2;
 
+import org.apache.doris.common.Config;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
 import org.apache.doris.load.EtlStatus;
@@ -139,10 +140,12 @@ public class LoadJobFinalOperation extends 
TxnCommitAttachment implements Writab
             out.writeBoolean(true);
             failMsg.write(out);
         }
-        Text.writeString(out, copyId);
-        Text.writeString(out, loadFilePaths);
-        Gson gson = new Gson();
-        Text.writeString(out, properties == null ? "" : 
gson.toJson(properties));
+        if (Config.isCloudMode()) {
+            Text.writeString(out, copyId);
+            Text.writeString(out, loadFilePaths);
+            Gson gson = new Gson();
+            Text.writeString(out, properties == null ? "" : 
gson.toJson(properties));
+        }
     }
 
     public void readFields(DataInput in) throws IOException {
@@ -157,12 +160,14 @@ public class LoadJobFinalOperation extends 
TxnCommitAttachment implements Writab
             failMsg = new FailMsg();
             failMsg.readFields(in);
         }
-        copyId = Text.readString(in);
-        loadFilePaths = Text.readString(in);
-        String property = Text.readString(in);
-        properties = property.isEmpty() ? new HashMap<>()
-                : (new Gson().fromJson(property, new TypeToken<Map<String, 
String>>() {
-                }.getType()));
+        if (Config.isCloudMode()) {
+            copyId = Text.readString(in);
+            loadFilePaths = Text.readString(in);
+            String property = Text.readString(in);
+            properties = property.isEmpty() ? new HashMap<>()
+                    : (new Gson().fromJson(property, new TypeToken<Map<String, 
String>>() {
+                    }.getType()));
+        }
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to