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

Shashikant Banerjee updated RATIS-1370:
---------------------------------------
    Description: 
Currently, after install snapshot is completed, the stateMachine is paused and 
the stateMachineUpdater is reloaded. Post the reload, if the stateMachine is 
still in paused state, applyTransaction should not be called on the 
stateMachine.

It would also be preferarble to move the reitilalize to the BaseStateMachine to 
esnure the StateMachine transitions to running state post reload of 
StateMachineUpdater.
{code:java}
  @Override
  public synchronized void reinitialize() throws IOException {
    LOG.info("Reinitializing " + this);
    loadSnapshot(storage.findLatestSnapshot());
    if (getLifeCycleState() == LifeCycle.State.PAUSED) {
      getLifeCycle().transition(LifeCycle.State.STARTING);
      getLifeCycle().transition(LifeCycle.State.RUNNING);
    }
{code}

  was:Currently, after install snapshot is completed, the stateMachine is 
paused and the stateMachineUpdater is reloaded. Post the reload, if the 
stateMachine is still in paused state, applyTransaction should not be called on 
the stateMachine.


> StateMachine updater should not applyTransactions if stateMachine is in 
> paused state
> ------------------------------------------------------------------------------------
>
>                 Key: RATIS-1370
>                 URL: https://issues.apache.org/jira/browse/RATIS-1370
>             Project: Ratis
>          Issue Type: Bug
>          Components: server
>            Reporter: Shashikant Banerjee
>            Priority: Major
>             Fix For: 1.1.0
>
>
> Currently, after install snapshot is completed, the stateMachine is paused 
> and the stateMachineUpdater is reloaded. Post the reload, if the stateMachine 
> is still in paused state, applyTransaction should not be called on the 
> stateMachine.
> It would also be preferarble to move the reitilalize to the BaseStateMachine 
> to esnure the StateMachine transitions to running state post reload of 
> StateMachineUpdater.
> {code:java}
>   @Override
>   public synchronized void reinitialize() throws IOException {
>     LOG.info("Reinitializing " + this);
>     loadSnapshot(storage.findLatestSnapshot());
>     if (getLifeCycleState() == LifeCycle.State.PAUSED) {
>       getLifeCycle().transition(LifeCycle.State.STARTING);
>       getLifeCycle().transition(LifeCycle.State.RUNNING);
>     }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to