[JBoss JIRA] (ISPN-7604) StateTransferLockImpl.stop() never runs
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-7604?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-7604:
----------------------------------
Fix Version/s: 9.1.0.Final
(was: 9.0.0.Final)
> StateTransferLockImpl.stop() never runs
> ---------------------------------------
>
> Key: ISPN-7604
> URL: https://issues.jboss.org/browse/ISPN-7604
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 9.0.0.CR2
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Fix For: 9.1.0.Final
>
>
> {{StateTransferLockImpl.stop()}} is supposed to signal the installation of topology {{Integer.MAX_VALUE}}, in order to unblock any commands waiting for a new topology. However, it doesn't have the {{@Stop}} annotation, so it's never called, and threads waiting on a new topology will block forever:
> {noformat}
> "jgroups-4,test-NodeB-41665@3770" prio=5 tid=0x1f nid=NA waiting
> java.lang.Thread.State: WAITING
> at sun.misc.Unsafe.park(Unsafe.java:-1)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> at java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1693)
> at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3323)
> at java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1729)
> at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.runSync(BaseBlockingRunnable.java:48)
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:38)
> at org.infinispan.remoting.inboundhandler.TrianglePerCacheInboundInvocationHandler.handleStateRequestCommand(TrianglePerCacheInboundInvocationHandler.java:171)
> at org.infinispan.remoting.inboundhandler.TrianglePerCacheInboundInvocationHandler.handle(TrianglePerCacheInboundInvocationHandler.java:109)
> at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleCacheRpcCommand(GlobalInboundInvocationHandler.java:120)
> at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleFromCluster(GlobalInboundInvocationHandler.java:79)
> at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.executeCommandFromLocalCluster(CommandAwareRpcDispatcher.java:175)
> at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:149)
> at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:383)
> at org.jgroups.blocks.RequestCorrelator.dispatch(RequestCorrelator.java:356)
> at org.jgroups.blocks.RequestCorrelator.receiveMessageBatch(RequestCorrelator.java:326)
> at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:586)
> at org.jgroups.JChannel.up(JChannel.java:813)
> at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:896)
> at org.jgroups.protocols.RSVP.up(RSVP.java:233)
> at org.jgroups.protocols.FlowControl.up(FlowControl.java:418)
> at org.jgroups.stack.Protocol.up(Protocol.java:344)
> at org.jgroups.stack.Protocol.up(Protocol.java:344)
> at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:293)
> at org.jgroups.protocols.UNICAST3.deliverBatch(UNICAST3.java:1083)
> at org.jgroups.protocols.UNICAST3.removeAndDeliver(UNICAST3.java:892)
> at org.jgroups.protocols.UNICAST3.handleBatchReceived(UNICAST3.java:858)
> at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:529)
> at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:695)
> at org.jgroups.stack.Protocol.up(Protocol.java:344)
> at org.jgroups.protocols.TP.passBatchUp(TP.java:1229)
> at org.jgroups.util.MaxOneThreadPerSender$BatchHandlerLoop.passBatchUp(MaxOneThreadPerSender.java:284)
> at org.jgroups.util.SubmitToThreadPool$BatchHandler.run(SubmitToThreadPool.java:136)
> at org.jgroups.util.MaxOneThreadPerSender$BatchHandlerLoop.run(MaxOneThreadPerSender.java:273)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 8 months
[JBoss JIRA] (ISPN-7509) TotalOrderStateTransferInterceptor doesn't handle OutdatedTopologyException for read commands
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-7509?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-7509:
----------------------------------
Fix Version/s: 9.1.0.Final
(was: 9.0.0.Final)
> TotalOrderStateTransferInterceptor doesn't handle OutdatedTopologyException for read commands
> ---------------------------------------------------------------------------------------------
>
> Key: ISPN-7509
> URL: https://issues.jboss.org/browse/ISPN-7509
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 9.0.0.CR1
> Reporter: Dan Berindei
> Assignee: Pedro Ruivo
> Priority: Critical
> Labels: testsuite_stability
> Fix For: 9.1.0.Final
>
>
> Since ISPN-6859, read commands can also trigger {{OutdatedTopologyException}}, but these are only handled in the non-TO {{StateTransferInterceptor}}. When a read should be retried because of a topology change in a TO cache, the {{OutdatedTopologyException}} is instead thrown to the user:
> {noformat}
> 16:50:40,595 DEBUG (jgroups-9,Test-NodeA-483:[]) [InvocationContextInterceptor] ISPN000311: Received a command from an outdated topology, returning the exception to caller
> org.infinispan.statetransfer.OutdatedTopologyException: Did not get any successful response, got {Test-NodeC-46564=UnsuccessfulResponse}
> 16:50:40,595 ERROR (testng-Test:[]) [TestSuiteProgress] Test failed: org.infinispan.tx.totalorder.statetransfer.DistTotalOrderVersionedStateTransferTest.testStateTransfer
> org.infinispan.statetransfer.OutdatedTopologyException: Did not get any successful response, got {Test-NodeC-46564=UnsuccessfulResponse}
> {noformat}
> This causes random failures in {{DistTotalOrderVersionedStateTransferTest}}.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 8 months
[JBoss JIRA] (ISPN-7396) Improve default bundle size and fragment size
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-7396?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-7396:
----------------------------------
Fix Version/s: 9.1.0.Final
(was: 9.0.0.Final)
> Improve default bundle size and fragment size
> ---------------------------------------------
>
> Key: ISPN-7396
> URL: https://issues.jboss.org/browse/ISPN-7396
> Project: Infinispan
> Issue Type: Task
> Components: Core
> Affects Versions: 9.0.0.Beta2
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Labels: performance
> Fix For: 9.1.0.Final
>
>
> If a UDP packet is split into multiple ethernet frames, the entire packet is lost. TCP avoids sending packets larger than an ethernet frame for us, but with a UDP transport, we need to consider the ethernet frame size when configuring {{UDP.max_bundle_size}} and {{FRAG2.frag_size}}.
> Most modern networks should support jumbo frames with 9000 bytes, so we should set {{UDP.max_bundle_size=8000}} and {{FRAG2.frag_size=8500}}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 8 months
[JBoss JIRA] (ISPN-7401) AbstractProtocolServer relying on startDefaultCache
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-7401?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-7401:
----------------------------------
Fix Version/s: 9.1.0.Final
(was: 9.0.0.Final)
> AbstractProtocolServer relying on startDefaultCache
> ---------------------------------------------------
>
> Key: ISPN-7401
> URL: https://issues.jboss.org/browse/ISPN-7401
> Project: Infinispan
> Issue Type: Task
> Components: Server
> Reporter: Sanne Grinovero
> Assignee: Tristan Tarrant
> Fix For: 9.1.0.Final
>
>
> The {{AbstractProtocolServer}} class is used/extended by various other tools, including testing infrastructure of OGM.
> It currently is "booting" the system by starting the default cache. This concept needs an update.
> See {{org.infinispan.server.core.AbstractProtocolServer.startDefaultCache()}}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 8 months
[JBoss JIRA] (ISPN-7302) ClusteredConditionalCommandTest.testPutIfAbsentOnNonOwnerWithIgnoreReturnValues random failures
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-7302?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-7302:
----------------------------------
Fix Version/s: 9.1.0.Final
(was: 9.0.0.Final)
> ClusteredConditionalCommandTest.testPutIfAbsentOnNonOwnerWithIgnoreReturnValues random failures
> -----------------------------------------------------------------------------------------------
>
> Key: ISPN-7302
> URL: https://issues.jboss.org/browse/ISPN-7302
> Project: Infinispan
> Issue Type: Bug
> Components: Test Suite - Core
> Affects Versions: 9.0.0.Beta1
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Critical
> Labels: testsuite_stability
> Fix For: 9.1.0.Final
>
>
> When the backup owner replies before the primary had a chance to load the value from persistence, the number of loads from the primary can be {{0}} at the time the test checks it.
> {noformat}
> 00:21:48,941 TRACE (testng-Test:[]) [JGroupsTransport] dests=[Test-NodeB-56150, Test-NodeA-13512], command=ClusteredGetCommand{key=Test-key, flags=[IGNORE_RETURN_VALUES]}, mode=WAIT_FOR_VALID_RESPONSE, timeout=15000
> 00:21:48,942 TRACE (jgroups-7,Test-NodeB-56150:[]) [InvocationContextInterceptor] Invoked with command GetCacheEntryCommand {key=Test-key, flags=[SKIP_REMOTE_LOOKUP, IGNORE_RETURN_VALUES]} and InvocationContext [org.infinispan.context.impl.NonTxInvocationContext@5f931934]
> 00:21:48,943 TRACE (jgroups-7,Test-NodeB-56150:[]) [EntryFactoryImpl] Wrap Test-key for read. Entry=NullCacheEntry{}
> 00:21:48,946 TRACE (jgroups-8,Test-NodeA-13512:[]) [InvocationContextInterceptor] Invoked with command GetCacheEntryCommand {key=Test-key, flags=[SKIP_REMOTE_LOOKUP, IGNORE_RETURN_VALUES]} and InvocationContext [org.infinispan.context.impl.NonTxInvocationContext@265c6c97]
> 00:21:48,946 TRACE (jgroups-8,Test-NodeA-13512:[]) [PersistenceUtil] Loaded MarshalledEntryImpl{keyBytes=null, valueBytes=null, metadataBytes=null, key=Test-key, value=Test-value1, metadata=null, marshaller=org.infinispan.marshall.core.GlobalMarshaller@1aee2408} for key Test-key from persistence.
> 00:21:48,946 TRACE (jgroups-8,Test-NodeA-13512:[]) [CommandAwareRpcDispatcher] About to send back response SuccessfulResponse{responseValue=ImmortalCacheValue {value=Test-value1}} for command ClusteredGetCommand{key=Test-key, flags=[IGNORE_RETURN_VALUES]}
> 00:21:48,948 ERROR (testng-Test:[]) [TestSuiteProgress] Test failed: org.infinispan.persistence.ClusteredTxConditionalCommandTest.testPutIfAbsentOnNonOwnerWithIgnoreReturnValues[tx=true]
> java.lang.AssertionError: primary owner load expected:<1> but was:<0>
> at org.testng.AssertJUnit.fail(AssertJUnit.java:59) ~[testng-6.8.8.jar:?]
> at org.testng.AssertJUnit.failNotEquals(AssertJUnit.java:364) ~[testng-6.8.8.jar:?]
> at org.testng.AssertJUnit.assertEquals(AssertJUnit.java:80) ~[testng-6.8.8.jar:?]
> at org.testng.AssertJUnit.assertEquals(AssertJUnit.java:170) ~[testng-6.8.8.jar:?]
> at org.infinispan.persistence.ClusteredTxConditionalCommandTest.assertLoadAfterOperation(ClusteredTxConditionalCommandTest.java:46) ~[test-classes/:?]
> at org.infinispan.persistence.ClusteredConditionalCommandTest.doTest(ClusteredConditionalCommandTest.java:121) ~[test-classes/:?]
> at org.infinispan.persistence.ClusteredConditionalCommandTest.testPutIfAbsentOnNonOwnerWithIgnoreReturnValues(ClusteredConditionalCommandTest.java:242) ~[test-classes/:?]
> 00:21:48,953 TRACE (jgroups-7,Test-NodeB-56150:[]) [PersistenceUtil] Loaded null for key Test-key from persistence.
> 00:21:48,953 TRACE (jgroups-7,Test-NodeB-56150:[]) [CommandAwareRpcDispatcher] About to send back response SuccessfulResponse{responseValue=null} for command ClusteredGetCommand{key=Test-key, flags=[IGNORE_RETURN_VALUES]}
> {noformat}
> Possible fix: replace {{assertEquals}} with {{eventuallyEquals}}.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 8 months
[JBoss JIRA] (ISPN-7272) Remove replication statistics from RpcManagerImpl
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-7272?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-7272:
----------------------------------
Fix Version/s: 9.1.0.Final
(was: 9.0.0.Final)
> Remove replication statistics from RpcManagerImpl
> -------------------------------------------------
>
> Key: ISPN-7272
> URL: https://issues.jboss.org/browse/ISPN-7272
> Project: Infinispan
> Issue Type: Task
> Components: Core
> Affects Versions: 8.1.6.Final, 9.0.0.Alpha4
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Fix For: 9.1.0.Final
>
>
> The replication statistics exposed by {{RpcManagerImpl}} are too low-level. For instance, in non-transactional caches, the times of the RPCs from the primary to the backups are counted both on the primary and on the originator (as part of the originator-to-primary RPC). They also aren't split by operation, like the {{CacheMgmtInterceptor}} statistics, which makes them even less useful.
> The triangle algorithm changes things again, but only for distributed caches, so there is now one more way of interpreting the {{RpcManagerImpl}} statistics. It would be better to remove them altogether.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 8 months