[ 
https://issues.apache.org/jira/browse/HDDS-5529?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jie Yao updated HDDS-5529:
--------------------------
    Summary: For any IOexception from @Replicated method we should throw it  
(was: HDDS-5529. For any IOexception from @Replicated method we should throw it)

> For any IOexception from @Replicated method we should throw it
> --------------------------------------------------------------
>
>                 Key: HDDS-5529
>                 URL: https://issues.apache.org/jira/browse/HDDS-5529
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Jie Yao
>            Assignee: Jie Yao
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.3.0
>
>
> when HA is enabled , if an exception is thrown when applying transaction,  
> scm will be termainated , so that DBs of different scms will not diverge.
> {code:java}
> public CompletableFuture<Message> applyTransaction(
>       final TransactionContext trx) {
>     final CompletableFuture<Message> applyTransactionFuture =
>         new CompletableFuture<>();
>     try {
>       final SCMRatisRequest request = SCMRatisRequest.decode(
>           Message.valueOf(trx.getStateMachineLogEntry().getLogData()));
>       applyTransactionFuture.complete(process(request));
>       // After previous term transactions are applied, still in safe mode,
>       // perform refreshAndValidate to update the safemode rule state.
>       if (scm.isInSafeMode() && refreshedAfterLeaderReady.get()) {
>         scm.getScmSafeModeManager().refreshAndValidate();
>       }
>       transactionBuffer.updateLatestTrxInfo(TransactionInfo.builder()
>           .setCurrentTerm(trx.getLogEntry().getTerm())
>           .setTransactionIndex(trx.getLogEntry().getIndex())
>           .build());
>     } catch (Exception ex) {
>       applyTransactionFuture.completeExceptionally(ex);
>       ExitUtils.terminate(1, ex.getMessage(), ex, StateMachine.LOG);
>     }
>     return applyTransactionFuture;
>   }
> {code}
> so , we should make sure if HA is enabled , all the exception will be throw 
> out at `@Replicate` functions



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to