[JBoss JIRA] (ISPN-12180) Add BlockHound to hotrod client module
by Will Burns (Jira)
[ https://issues.redhat.com/browse/ISPN-12180?page=com.atlassian.jira.plugi... ]
Will Burns commented on ISPN-12180:
-----------------------------------
One blocking issue that has been found related to ChannelFactory
[https://ci.infinispan.org/job/Infinispan/job/PR-8628/2/testReport/junit/o...]
Upon investigation {code:java}trySwitchCluster{code} may be problematic and needs to be looked at more closely.
{quote}
java.lang.AssertionError: Blocking call! jdk.internal.misc.Unsafe#park on thread Thread[Thread-0,1,Thread-group]
at org.infinispan.util.CoreTestBlockHoundIntegration.lambda$applyTo$0(CoreTestBlockHoundIntegration.java:49)
at reactor.blockhound.BlockHound$Builder.lambda$install$8(BlockHound.java:383)
at reactor.blockhound.BlockHoundRuntime.checkBlocking(BlockHoundRuntime.java:89)
at java.base/jdk.internal.misc.Unsafe.park(Unsafe.java)
at java.base/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)
at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:1009)
at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1324)
at java.base/java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:738)
at org.infinispan.client.hotrod.impl.transport.netty.ChannelFactory.getConsistentHash(ChannelFactory.java:407)
at org.infinispan.client.hotrod.impl.operations.IterationStartOperation.acceptResponse(IterationStartOperation.java:74)
at org.infinispan.client.hotrod.impl.transport.netty.HeaderDecoder.decode(HeaderDecoder.java:147)
at org.infinispan.client.hotrod.impl.transport.netty.HintedReplayingDecoder.callDecode(HintedReplayingDecoder.java:94)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
{quote}
> Add BlockHound to hotrod client module
> --------------------------------------
>
> Key: ISPN-12180
> URL: https://issues.redhat.com/browse/ISPN-12180
> Project: Infinispan
> Issue Type: Enhancement
> Components: Hot Rod
> Reporter: Will Burns
> Priority: Major
> Fix For: 12.0.0.Final
>
>
> We should ensure the hotrod client is not blocking by adding block hound to find offending code. We will need to wrap invocations of the client, since it is not invoked on a non blocking thread.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 7 months
[JBoss JIRA] (ISPN-12231) Cache fails to start with IllegalStateException: We already had a newer topology
by Will Burns (Jira)
[ https://issues.redhat.com/browse/ISPN-12231?page=com.atlassian.jira.plugi... ]
Will Burns updated ISPN-12231:
------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> Cache fails to start with IllegalStateException: We already had a newer topology
> --------------------------------------------------------------------------------
>
> Key: ISPN-12231
> URL: https://issues.redhat.com/browse/ISPN-12231
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 11.0.3.Final
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Major
> Fix For: 12.0.0.Dev03
>
>
> {{LocalTopologyManagerImpl.join()}} registers the {{LocalCacheStatus}} outside the {{ActionSequencer}} call, allowing another topology update command to install a topology before the join response is processed.
> This is very unlikely to happen outside of tests, but I was able to reproduce it reliably when starting lots of nodes in parallel.
> {noformat}
> org.infinispan.commons.CacheConfigurationException: Error starting component org.infinispan.statetransfer.StateTransferManager
> at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:560)
> at org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
> at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:775)
> at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:341)
> at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:237)
> at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:210)
> at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:1008)
> at org.infinispan.cache.impl.AbstractDelegatingCache.start(AbstractDelegatingCache.java:512)
> at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:697)
> at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:643)
> at org.infinispan.manager.DefaultCacheManager.internalGetCache(DefaultCacheManager.java:532)
> at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:510)
> at org.infinispan.stress.LargeClusterStressTest.lambda$testLargeClusterStart$0(LargeClusterStressTest.java:92)
> at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
> at java.base/java.lang.Thread.run(Thread.java:832)
> Caused by: java.util.concurrent.CompletionException: java.lang.IllegalStateException: We already had a newer topology by the time we received the join response
> at org.infinispan.util.concurrent.CompletionStages.join(CompletionStages.java:82)
> at org.infinispan.statetransfer.StateTransferManagerImpl.start(StateTransferManagerImpl.java:133)
> at org.infinispan.statetransfer.CorePackageImpl$1.start(CorePackageImpl.java:48)
> at org.infinispan.statetransfer.CorePackageImpl$1.start(CorePackageImpl.java:27)
> at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:592)
> at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:583)
> at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:552)
> ... 20 more
> Caused by: java.lang.IllegalStateException: We already had a newer topology by the time we received the join response
> at org.infinispan.topology.LocalTopologyManagerImpl.lambda$handleJoinResponse$5(LocalTopologyManagerImpl.java:227)
> at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1183)
> at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2299)
> at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:143)
> at org.infinispan.topology.LocalTopologyManagerImpl.handleJoinResponse(LocalTopologyManagerImpl.java:225)
> at org.infinispan.topology.LocalTopologyManagerImpl.lambda$join$0(LocalTopologyManagerImpl.java:161)
> at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1146)
> at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
> at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2137)
> at org.infinispan.remoting.transport.AbstractRequest.complete(AbstractRequest.java:67)
> at org.infinispan.remoting.transport.impl.SingleTargetRequest.onResponse(SingleTargetRequest.java:45)
> at org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:52)
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1405)
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1308)
> {noformat}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 7 months
[JBoss JIRA] (ISPN-12246) Docs: Details about purge with shared stores
by Donald Naro (Jira)
[ https://issues.redhat.com/browse/ISPN-12246?page=com.atlassian.jira.plugi... ]
Donald Naro updated ISPN-12246:
-------------------------------
Description: (was: chapter 8.2. Eviction ([https://infinispan.org/docs/dev/titles/configuring/configuring.html#evict...]
Starts with a sentence that leads confusion
"Eviction lets you control the size of the data container by removing cache entries to make space when adding new entries."
The wording "removing cache entries to make space" sound like the entry will be removed like a remove('key') invocation or expiration.
But this is not the case. It should be clear that the entry is evicted from memory on exactly this instance, no other instance is affected.
To prevent from not deterministic behaviour if different instances within the cluster are used for request eviction should not be configured without persistence (as mentioned) but the initial statement should be more precise
Proposal
Eviction lets you contol the size of data container in this local instance by dropping (evict) one choosen entry from memory only without further effects.
This is a local action for this node and does not affect any other node within the cluster
To prevent from inconsistency eviction should not be used without a configured persistence
)
> Docs: Details about purge with shared stores
> --------------------------------------------
>
> Key: ISPN-12246
> URL: https://issues.redhat.com/browse/ISPN-12246
> Project: Infinispan
> Issue Type: Enhancement
> Components: Documentation
> Affects Versions: 12.0.0.Dev01
> Reporter: Donald Naro
> Assignee: Donald Naro
> Priority: Major
> Fix For: 12.0.0.Dev03
>
>
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 7 months