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 2f3d5c5e135 [fix](cloud) Fix FE cannot work when restarting after 
schema change (#31842)
2f3d5c5e135 is described below

commit 2f3d5c5e135e1363801c38c9b0cc8c261ae58356
Author: deardeng <565620...@qq.com>
AuthorDate: Wed Mar 6 17:45:28 2024 +0800

    [fix](cloud) Fix FE cannot work when restarting after schema change (#31842)
    
    ```
    2024-03-05 21:16:43,300 INFO (stateListener|110) 
[RollupJobV2.replayPendingJob():749] replay waiting txn rollup job: 30405
    2024-03-05 21:16:43,300 INFO (stateListener|110) 
[MaterializedViewHandler.replayAlterJobV2():1114] set table's state to ROLLUP, 
table id: 29056, job id: 30405
    2024-03-05 21:16:43,300 DEBUG (stateListener|110) 
[Env.replayJournal():2751] journal 21241 replayed.
    2024-03-05 21:16:43,300 DEBUG (stateListener|110) 
[JournalObservable.notifyObservers():95] notify observers: journal: 21241, pos: 
0, size: 0, obs: []
    2024-03-05 21:16:43,300 DEBUG (stateListener|110) 
[JournalEntity.readFields():193] get opcode: 45
    2024-03-05 21:16:43,300 DEBUG (stateListener|110) 
[EditLog.loadJournal():170] replay journal op code: 45
    2024-03-05 21:16:43,301 DEBUG (stateListener|110) 
[InternalCatalog.unprotectUpdateReplica():1048] replay update a replica table 
id: 29056 partition id: 29050 index id: 30406 tablet id: 30505 backend id: 
10002 replica id: 30506 version: 2 schema hash: -1 data size: 0 row count: 0 
last failed version: -1 last success version: 2
    2024-03-05 21:16:43,301 DEBUG (stateListener|110) 
[CloudReplica.getBackendId():143] connect context is null in getBackendId
    2024-03-05 21:16:43,301 ERROR (stateListener|110) 
[EditLog.loadJournal():1226] Operation Type 45
    java.lang.NullPointerException: table id: 29056 partition id: 29050 index 
id: 30406 tablet id: 30505 backend id: 10002 replica id: 30506 version: 2 
schema hash: -1 data size: 0 row count: 0 last failed version: -1 last success 
version: 2
            at 
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:921) 
~[guava-32.1.2-jre.jar:?]
            at 
org.apache.doris.datasource.InternalCatalog.unprotectUpdateReplica(InternalCatalog.java:1054)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.datasource.InternalCatalog.replayUpdateReplica(InternalCatalog.java:1075)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.catalog.Env.replayUpdateReplica(Env.java:3706) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.persist.EditLog.loadJournal(EditLog.java:398) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.catalog.Env.replayJournal(Env.java:2747) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.catalog.Env.transferToMaster(Env.java:1459) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.catalog.Env.access$1400(Env.java:319) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.catalog.Env$5.runOneCycle(Env.java:2638) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.common.util.Daemon.run(Daemon.java:116) 
~[doris-fe.jar:1.2-SNAPSHOT]
    ```
---
 .../src/main/java/org/apache/doris/datasource/InternalCatalog.java      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index 95abc9e06c4..3b689f44ba3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -1050,7 +1050,7 @@ public class InternalCatalog implements 
CatalogIf<Database> {
         Partition partition = olapTable.getPartition(info.getPartitionId());
         MaterializedIndex materializedIndex = 
partition.getIndex(info.getIndexId());
         Tablet tablet = materializedIndex.getTablet(info.getTabletId());
-        Replica replica = tablet.getReplicaByBackendId(info.getBackendId());
+        Replica replica = tablet.getReplicaById(info.getReplicaId());
         Preconditions.checkNotNull(replica, info);
         replica.updateVersionInfo(info.getVersion(), info.getDataSize(), 
info.getRemoteDataSize(), info.getRowCount());
         replica.setBad(false);


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

Reply via email to