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

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

commit 368b82ee954ccb39f9c40991ca8fae4689ac6565
Author: Siyang Tang <[email protected]>
AuthorDate: Wed Sep 13 14:34:12 2023 +0800

    [enhancement](delete-handler) split Deletehandler#commitJob and add 
preconditions to intercept NPE(#24086)
---
 .../src/main/java/org/apache/doris/load/DeleteHandler.java     | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/DeleteHandler.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/DeleteHandler.java
index 494fbd5db3..13f65baf1b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/DeleteHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/DeleteHandler.java
@@ -500,14 +500,20 @@ public class DeleteHandler implements Writable {
         TransactionStatus status = null;
         try {
             unprotectedCommitJob(job, db, table, timeoutMs);
-            status = Env.getCurrentGlobalTransactionMgr()
-                    .getTransactionState(db.getId(), 
job.getTransactionId()).getTransactionStatus();
+            GlobalTransactionMgr transactionMgr = 
Env.getCurrentGlobalTransactionMgr();
+            long dbId = db.getId();
+            long transactionId = job.getTransactionId();
+            TransactionState transactionState = 
transactionMgr.getTransactionState(dbId, transactionId);
+            Preconditions.checkNotNull(transactionState,
+                    "got null txn state with: dbId=%s, txnId=%s", dbId, 
transactionId);
+            status = transactionState.getTransactionStatus();
         } catch (UserException e) {
             if (cancelJob(job, CancelType.COMMIT_FAIL, e.getMessage())) {
                 throw new DdlException(e.getMessage(), e);
             }
         }
 
+        Preconditions.checkNotNull(status, "got null txn status, jobId=%s", 
job.getId());
         StringBuilder sb = new StringBuilder();
         sb.append("{'label':'").append(job.getLabel()).append("', 
'status':'").append(status.name());
         sb.append("', 'txnId':'").append(job.getTransactionId()).append("'");


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

Reply via email to