[infinispan-issues] [JBoss JIRA] (ISPN-7218) FIFO command does not wait for topology

Pedro Ruivo (JIRA) issues at jboss.org
Mon Nov 21 09:13:00 EST 2016


     [ https://issues.jboss.org/browse/ISPN-7218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pedro Ruivo updated ISPN-7218:
------------------------------
    Description: 
FIFO order commands are handled in the deliver thread. 
However, they don't wait in the {{future}} before checking if the node is a valid member (check code below)

{code:java}
switch (topologyMode) {
         case WAIT_TOPOLOGY:
            future = handler.getStateTransferLock().topologyFuture(waitTopology());
            break;
         case WAIT_TX_DATA:
            future = handler.getStateTransferLock().transactionDataFuture(waitTopology());
            break;
         default:
            break;
      }
      if (handler.isCommandSentBeforeFirstTopology(commandTopologyId)) {
         return future == null ? CompletableFuture.completedFuture(CacheNotFoundResponse.INSTANCE) :
               future.thenApply(nil -> CacheNotFoundResponse.INSTANCE);
      }
{code}


  was:
FIFO order commands are handles in the deliver thread. However, they don't wait in the future before checking if the node is a valid member (check code below)

{code:java}
switch (topologyMode) {
         case WAIT_TOPOLOGY:
            future = handler.getStateTransferLock().topologyFuture(waitTopology());
            break;
         case WAIT_TX_DATA:
            future = handler.getStateTransferLock().transactionDataFuture(waitTopology());
            break;
         default:
            break;
      }
      if (handler.isCommandSentBeforeFirstTopology(commandTopologyId)) {
         return future == null ? CompletableFuture.completedFuture(CacheNotFoundResponse.INSTANCE) :
               future.thenApply(nil -> CacheNotFoundResponse.INSTANCE);
      }
{code}




> FIFO command does not wait for topology
> ---------------------------------------
>
>                 Key: ISPN-7218
>                 URL: https://issues.jboss.org/browse/ISPN-7218
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Core
>            Reporter: Pedro Ruivo
>            Assignee: Pedro Ruivo
>
> FIFO order commands are handled in the deliver thread. 
> However, they don't wait in the {{future}} before checking if the node is a valid member (check code below)
> {code:java}
> switch (topologyMode) {
>          case WAIT_TOPOLOGY:
>             future = handler.getStateTransferLock().topologyFuture(waitTopology());
>             break;
>          case WAIT_TX_DATA:
>             future = handler.getStateTransferLock().transactionDataFuture(waitTopology());
>             break;
>          default:
>             break;
>       }
>       if (handler.isCommandSentBeforeFirstTopology(commandTopologyId)) {
>          return future == null ? CompletableFuture.completedFuture(CacheNotFoundResponse.INSTANCE) :
>                future.thenApply(nil -> CacheNotFoundResponse.INSTANCE);
>       }
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the infinispan-issues mailing list