[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