This is an automated email from the ASF dual-hosted git repository.
gavinchou 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 5ef4666eb13 [Bug](cloud restore) Fix npe in show restore command after
fe restart (#57051)
5ef4666eb13 is described below
commit 5ef4666eb13cbe9f2b5b122c1f4a60c9e2c77862
Author: xy720 <[email protected]>
AuthorDate: Mon Oct 20 22:08:40 2025 +0800
[Bug](cloud restore) Fix npe in show restore command after fe restart
(#57051)
Related PR: #56168
show restore command throw npe after FE restart.
```
mysql> show restore;
ERROR 1105 (HY000): errCode = 2, detailMessage = Cannot invoke
"org.apache.doris.backup.RestoreJob$RestoreJobState.name()" because
"this.showState" is null
```
FE LOG
```
2025-10-16 15:27:08,504 WARN (mysql-nio-pool-2|303)
[StmtExecutor.execute():542] Analyze failed. stmt[10,
926978becf0a4056-a522dc89ae94f769]
org.apache.doris.common.NereidsException: errCode = 2, detailMessage =
Cannot invoke "org.apache.doris.backup.RestoreJob$RestoreJobState.name()" be
cause "this.showState" is null
at
org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:700)
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:537)
~[doris-fe.jar:1.2-SNAPSHOT]
at
org.apache.doris.qe.StmtExecutor.queryRetry(StmtExecutor.java:499)
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:484)
~[doris-fe.jar:1.2-SNAPSHOT]
at
org.apache.doris.qe.ConnectProcessor.executeQuery(ConnectProcessor.java:309)
~[doris-fe.jar:1.2-SNAPSHOT]
at
org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:196)
~[doris-fe.jar:1.2-SNAPSHOT]
at
org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:231)
~[doris-fe.jar:1.2-SNAPSHOT]
at
org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:259)
~[doris-fe.jar:1.2-SNAPSHOT]
at
org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:403)
~[doris-fe.jar:1.2-SNAPSHOT]
at
org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52)
~[doris-fe.jar:1.2-SNAPSHOT]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
~[?:?]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
~[?:?]
at java.lang.Thread.run(Thread.java:840) ~[?:?]
Caused by: org.apache.doris.common.AnalysisException: errCode = 2,
detailMessage = Cannot invoke "org.apache.doris.backup.RestoreJob$RestoreJobStat
e.name()" because "this.showState" is null
... 13 more
Caused by: java.lang.NullPointerException: Cannot invoke
"org.apache.doris.backup.RestoreJob$RestoreJobState.name()" because
"this.showState" is nu
ll
at org.apache.doris.backup.RestoreJob.getInfo(RestoreJob.java:2323)
~[doris-fe.jar:1.2-SNAPSHOT]
at
org.apache.doris.backup.RestoreJob.getFullInfo(RestoreJob.java:2309)
~[doris-fe.jar:1.2-SNAPSHOT]
at
java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at
java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
~[?:?]
at
java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
~[?:?]
at
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
~[?:?]
at
java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at
java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
at
org.apache.doris.nereids.trees.plans.commands.ShowRestoreCommand.handleShowRestore(ShowRestoreCommand.java:198)
~[doris-fe.jar:1.2-SNAPS
HOT]
at
org.apache.doris.nereids.trees.plans.commands.ShowRestoreCommand.doRun(ShowRestoreCommand.java:206)
~[doris-fe.jar:1.2-SNAPSHOT]
at
org.apache.doris.nereids.trees.plans.commands.ShowCommand.run(ShowCommand.java:54)
~[doris-fe.jar:1.2-SNAPSHOT]
at
org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:674)
~[doris-fe.jar:1.2-SNAPSHOT]
... 12 more
```
### Release note
None
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [ ] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [x] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [x] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason <!-- Add your reason? -->
---
.../src/main/java/org/apache/doris/cloud/backup/CloudRestoreJob.java | 1 +
1 file changed, 1 insertion(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/cloud/backup/CloudRestoreJob.java
b/fe/fe-core/src/main/java/org/apache/doris/cloud/backup/CloudRestoreJob.java
index e0adccc1de5..80bd91d9d54 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/cloud/backup/CloudRestoreJob.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/cloud/backup/CloudRestoreJob.java
@@ -544,6 +544,7 @@ public class CloudRestoreJob extends RestoreJob {
@Override
public void gsonPostProcess() throws IOException {
+ super.gsonPostProcess();
storageVaultName = properties.get(PROP_STORAGE_VAULT_NAME);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]