Connect to external Infinispan 10.x - Wildfly 19.1.0.Final

1,066 views
Skip to first unread message

Rafael Paz

unread,
May 6, 2020, 5:06:23 PM5/6/20
to WildFly
Hello,

I'm trying to set up an external cache via Hot Rod, to be able to externalize my sessions and application caches, and I would like to use the latest version of Infinispan, but with Infinispan 10.x, my server (Wildfly 19.1.0) can't create / connect to the cache. I tried to create the cache before starting the server, but the same error happens.

Is it possible to use the external cache connected to a newer version of Infinispan? Maybe I need a different configuration to be able to use the latest Infinispan server. I ask because I liked the improvements in Infinispan 10.x and would like to run my application on Openshift with HA.

I still don't know if this is the best config, we have a large application (JSF, EJB, JMS, HMS, Hibernate, Scheduler, etc.). I migrated to Java 11 and the latest version of Wildfly, the next step is to run on Openshift (OKD) with at least session replication. We don't currently have HA enabled, so I'm reading and trying some config options.

The application works if I use Infinispan 9.4.11.Final, I can see the cache and session replication. This is the configuration I'm using:


 
<subsystem xmlns="urn:jboss:domain:distributable-web:2.0" default-session-management="default" default-single-sign-on-management="default">
           
<infinispan-session-management name="default" cache-container="web" granularity="SESSION">
               
<primary-owner-affinity/>
           
</infinispan-session-management>
           
<hotrod-session-management name="sgn-web.war" remote-cache-container="sgn_cache_container" cache-configuration="sgn-web" granularity="ATTRIBUTE"/>
           
<infinispan-single-sign-on-management name="default" cache-container="web" cache="sso"/>
           
<infinispan-routing cache-container="web" cache="routing"/>
</subsystem>


<subsystem xmlns="urn:jboss:domain:infinispan:9.0">
   
<cache-container name="web" default-cache="sgn-web" module="org.wildfly.clustering.web.infinispan">
               
<transport lock-timeout="60000"/>
               
<invalidation-cache name="sgn-web">
                   
<locking isolation="REPEATABLE_READ"/>
                   
<transaction mode="BATCH"/>
                   
<hotrod-store remote-cache-container="sgn_cache_container" fetch-state="false" passivation="false" purge="false" shared="true"/>
               
</invalidation-cache>
         .......
         .......


     
<remote-cache-container name="sgn_cache_container" default-remote-cluster="infinispan-cluster">
       
<remote-clusters>
           
<remote-cluster name="infinispan-cluster" socket-bindings="remote-infinispan"/>
         
</remote-clusters>
     
</remote-cache-container>

</subsystem>


 
<outbound-socket-binding name="remote-infinispan">
       
<remote-destination host="${env.INFINISPAN_HOST:localhost}" port="${env.INFINISPAN_PORT:11222}"/>
 
</outbound-socket-binding>


This is the console message when using Infinispan 10.x:



17:26:49,401 ERROR [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0021: Deploy of deployment "sgn-web.war" was rolled back with the following failure message:
{"WFLYCTL0080: Failed services" => {"org.wildfly.clustering.infinispan.cache.web.\"sgn-web.war\"" => "org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.start() on object of type PersistenceManagerImpl
    Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.start() on object of type PersistenceManagerImpl
    Caused by: org.infinispan.commons.CacheException: Unable to start cache loaders
    Caused by: org.infinispan.persistence.spi.PersistenceException: org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=3 returned server error (status=0x85): java.lang.SecurityException: ISPN006017: Unauthorized 'EXEC' operation
    Caused by: org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=3 returned server error (status=0x85): java.lang.SecurityException: ISPN006017: Unauthorized 'EXEC' operation"
}}




Paul Ferraro

unread,
May 12, 2020, 7:08:20 PM5/12/20
to WildFly
Updating WildFly to Infinispan 10.1.x is not a trivial matter.  The pull request for this upgrade is here:

I expect this to be merged for WF20.

Rafael Paz

unread,
May 21, 2020, 5:52:35 PM5/21/20
to WildFly
Hello, I tried the Wildfly-20.0.0-Beta today, and I got the same error. Maybe I need another configuration to use HotRod? 

I tested it with Infinispan 9.x and it was also not possible to use it. 

Stacktrace:

18:28:25,250 WARN  [org.infinispan.HOTROD] (HotRod-client-async-pool-0) ISPN004005: Error received from the server: java.lang.SecurityException: ISPN006017: Unauthorized 'EXEC' operation
18:28:25,255 ERROR [org.infinispan.factories.impl.BasicComponentRegistryImpl] (ServerService Thread Pool -- 20) Error stopping component org.infinispan.persistence.manager.PersistenceManager: java.lang.NullPointerException
at org.jboss.as.clus...@20.0.0.Beta1//org.jboss.as.clustering.infinispan.subsystem.remote.HotRodStore.stop(HotRodStore.java:129)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.lambda$stop$5(PersistenceManagerImpl.java:275)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.stop(PersistenceManagerImpl.java:286)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.CorePackageImpl$3.stop(CorePackageImpl.java:90)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.CorePackageImpl$3.stop(CorePackageImpl.java:64)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStop(BasicComponentRegistryImpl.java:648)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.doStopWrapper(BasicComponentRegistryImpl.java:644)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.stopWrapper(BasicComponentRegistryImpl.java:632)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.stop(BasicComponentRegistryImpl.java:499)
at org.inf...@10.1.8.Final//org.infinispan.factories.AbstractComponentRegistry.internalStop(AbstractComponentRegistry.java:361)
at org.inf...@10.1.8.Final//org.infinispan.factories.AbstractComponentRegistry.stop(AbstractComponentRegistry.java:295)
at org.inf...@10.1.8.Final//org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:252)
at org.inf...@10.1.8.Final//org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:209)
at org.inf...@10.1.8.Final//org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:1088)
at org.inf...@10.1.8.Final//org.infinispan.cache.impl.AbstractDelegatingCache.start(AbstractDelegatingCache.java:513)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:706)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:645)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.internalGetCache(DefaultCacheManager.java:530)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:511)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:504)
at org.jboss.as.clus...@20.0.0.Beta1//org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:92)
at org.wildfly.cluste...@20.0.0.Beta1//org.wildfly.clustering.infinispan.spi.service.CacheServiceConfigurator.get(CacheServiceConfigurator.java:77)
at org.wildfly.cluste...@20.0.0.Beta1//org.wildfly.clustering.infinispan.spi.service.CacheServiceConfigurator.get(CacheServiceConfigurator.java:55)
at org.wildfly.clu...@20.0.0.Beta1//org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:63)
at org.wildfly.clu...@20.0.0.Beta1//org.wildfly.clustering.service.AsyncServiceConfigurator$AsyncService.lambda$start$0(AsyncServiceConfigurator.java:117)
at org.jbos...@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at java.base/java.lang.Thread.run(Thread.java:834)
at org.jbos...@2.3.3.Final//org.jboss.threads.JBossThread.run(JBossThread.java:485)

18:28:25,260 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 20) WFLYCLINF0003: Stopped sgn-web.war cache from web container
18:28:25,261 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 20) MSC000001: Failed to start service org.wildfly.clustering.infinispan.cache.web."sgn-web.war": org.jboss.msc.service.StartException in service org.wildfly.clustering.infinispan.cache.web."sgn-web.war": org.infinispan.commons.CacheException: Unable to start cache loaders
at org.wildfly.clu...@20.0.0.Beta1//org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:66)
at org.wildfly.clu...@20.0.0.Beta1//org.wildfly.clustering.service.AsyncServiceConfigurator$AsyncService.lambda$start$0(AsyncServiceConfigurator.java:117)
at org.jbos...@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at java.base/java.lang.Thread.run(Thread.java:834)
at org.jbos...@2.3.3.Final//org.jboss.threads.JBossThread.run(JBossThread.java:485)
Caused by: org.infinispan.commons.CacheException: Unable to start cache loaders
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:214)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.CorePackageImpl$3.start(CorePackageImpl.java:86)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.CorePackageImpl$3.start(CorePackageImpl.java:64)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:587)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:578)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:605)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:569)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:605)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:569)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:605)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:569)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:605)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:569)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
at org.inf...@10.1.8.Final//org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:341)
at org.inf...@10.1.8.Final//org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:237)
at org.inf...@10.1.8.Final//org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:209)
at org.inf...@10.1.8.Final//org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:1088)
at org.inf...@10.1.8.Final//org.infinispan.cache.impl.AbstractDelegatingCache.start(AbstractDelegatingCache.java:513)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:706)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:645)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.internalGetCache(DefaultCacheManager.java:530)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:511)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:504)
at org.jboss.as.clus...@20.0.0.Beta1//org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:92)
at org.wildfly.cluste...@20.0.0.Beta1//org.wildfly.clustering.infinispan.spi.service.CacheServiceConfigurator.get(CacheServiceConfigurator.java:77)
at org.wildfly.cluste...@20.0.0.Beta1//org.wildfly.clustering.infinispan.spi.service.CacheServiceConfigurator.get(CacheServiceConfigurator.java:55)
at org.wildfly.clu...@20.0.0.Beta1//org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:63)
... 7 more
Caused by: org.infinispan.persistence.spi.PersistenceException: org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=3 returned server error (status=0x85): java.lang.SecurityException: ISPN006017: Unauthorized 'EXEC' operation
at org.jboss.as.clus...@20.0.0.Beta1//org.jboss.as.clustering.infinispan.subsystem.remote.HotRodStore.init(HotRodStore.java:118)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.initializeBareInstance(PersistenceManagerImpl.java:1266)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.createLoadersAndWriters(PersistenceManagerImpl.java:1194)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:187)
... 48 more
Caused by: org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=3 returned server error (status=0x85): java.lang.SecurityException: ISPN006017: Unauthorized 'EXEC' operation
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.impl.protocol.Codec20.checkForErrorsInResponseStatus(Codec20.java:337)
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.impl.protocol.Codec20.readHeader(Codec20.java:176)
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.impl.transport.netty.HeaderDecoder.decode(HeaderDecoder.java:139)
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.impl.transport.netty.HintedReplayingDecoder.callDecode(HintedReplayingDecoder.java:94)
at io.n...@4.1.48.Final//io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.n...@4.1.48.Final//io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.n...@4.1.48.Final//io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.n...@4.1.48.Final//io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.n...@4.1.48.Final//io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
at io.n...@4.1.48.Final//io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475)
at io.n...@4.1.48.Final//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
at io.n...@4.1.48.Final//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.n...@4.1.48.Final//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 org.jboss.as.cl...@20.0.0.Beta1//org.jboss.as.clustering.context.ContextReferenceExecutor.execute(ContextReferenceExecutor.java:49)
at org.jboss.as.cl...@20.0.0.Beta1//org.jboss.as.clustering.context.ContextualExecutor$1.run(ContextualExecutor.java:70)
at org.jboss.as.cl...@20.0.0.Beta1//org.jboss.as.clustering.context.ContextReferenceExecutor.execute(ContextReferenceExecutor.java:49)
at org.jboss.as.cl...@20.0.0.Beta1//org.jboss.as.clustering.context.ContextualExecutor$1.run(ContextualExecutor.java:70)
at java.base/java.lang.Thread.run(Thread.java:834)

Paul Ferraro

unread,
May 26, 2020, 9:19:06 AM5/26/20
to WildFly
I have a couple of questions:

1. To which version of infinispan-server are you connecting?
2. Are you intending to use infinispan-session-management or hotrod-session-management?  You have both configured, and the deployment clearly is using the infinispan-session-management (via the invalidation cache), but I'm not sure if this is what you intended.

... and an observation.  The "Unauthorized 'EXEC' operation" implies that your server requires authorization to create a remote cache on the server, but I don't see anything in your remote-cache-container configuration where you configure security.

On Thursday, May 21, 2020 at 5:52:35 PM UTC-4, Rafael Paz wrote:
Hello, I tried the Wildfly-20.0.0-Beta today, and I got the same error. Maybe I need another configuration to use HotRod? 

I tested it with Infinispan 9.x and it was also not possible to use it. 

Stacktrace:

18:28:25,250 WARN  [org.infinispan.HOTROD] (HotRod-client-async-pool-0) ISPN004005: Error received from the server: java.lang.SecurityException: ISPN006017: Unauthorized 'EXEC' operation
18:28:25,255 ERROR [org.infinispan.factories.impl.BasicComponentRegistryImpl] (ServerService Thread Pool -- 20) Error stopping component org.infinispan.persistence.manager.PersistenceManager: java.lang.NullPointerException
at org.jboss.as.clustering.infin...@20.0.0.Beta1//org.jboss.as.clustering.infinispan.subsystem.remote.HotRodStore.stop(HotRodStore.java:129)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.lambda$stop$5(PersistenceManagerImpl.java:275)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.stop(PersistenceManagerImpl.java:286)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.CorePackageImpl$3.stop(CorePackageImpl.java:90)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.CorePackageImpl$3.stop(CorePackageImpl.java:64)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStop(BasicComponentRegistryImpl.java:648)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.doStopWrapper(BasicComponentRegistryImpl.java:644)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.stopWrapper(BasicComponentRegistryImpl.java:632)
at org.inf...@10.1.8.Final//org.infinispan.factories.impl.BasicComponentRegistryImpl.stop(BasicComponentRegistryImpl.java:499)
at org.inf...@10.1.8.Final//org.infinispan.factories.AbstractComponentRegistry.internalStop(AbstractComponentRegistry.java:361)
at org.inf...@10.1.8.Final//org.infinispan.factories.AbstractComponentRegistry.stop(AbstractComponentRegistry.java:295)
at org.inf...@10.1.8.Final//org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:252)
at org.inf...@10.1.8.Final//org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:209)
at org.inf...@10.1.8.Final//org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:1088)
at org.inf...@10.1.8.Final//org.infinispan.cache.impl.AbstractDelegatingCache.start(AbstractDelegatingCache.java:513)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:706)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:645)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.internalGetCache(DefaultCacheManager.java:530)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:511)
at org.inf...@10.1.8.Final//org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:504)
at org.jboss.as.clustering.infin...@20.0.0.Beta1//org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:92)
at org.wildfly.clustering.infinis...@20.0.0.Beta1//org.wildfly.clustering.infinispan.spi.service.CacheServiceConfigurator.get(CacheServiceConfigurator.java:77)
at org.wildfly.clustering.infinis...@20.0.0.Beta1//org.wildfly.clustering.infinispan.spi.service.CacheServiceConfigurator.get(CacheServiceConfigurator.java:55)
at org.wildfly.clustering.ser...@20.0.0.Beta1//org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:63)
at org.wildfly.clustering.ser...@20.0.0.Beta1//org.wildfly.clustering.service.AsyncServiceConfigurator$AsyncService.lambda$start$0(AsyncServiceConfigurator.java:117)
at org.jbos...@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at java.base/java.lang.Thread.run(Thread.java:834)
at org.jbos...@2.3.3.Final//org.jboss.threads.JBossThread.run(JBossThread.java:485)

18:28:25,260 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 20) WFLYCLINF0003: Stopped sgn-web.war cache from web container
18:28:25,261 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 20) MSC000001: Failed to start service org.wildfly.clustering.infinispan.cache.web."sgn-web.war": org.jboss.msc.service.StartException in service org.wildfly.clustering.infinispan.cache.web."sgn-web.war": org.infinispan.commons.CacheException: Unable to start cache loaders
at org.wildfly.clustering.ser...@20.0.0.Beta1//org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:66)
at org.wildfly.clustering.ser...@20.0.0.Beta1//org.wildfly.clustering.service.AsyncServiceConfigurator$AsyncService.lambda$start$0(AsyncServiceConfigurator.java:117)
at org.jboss.as.clustering.infin...@20.0.0.Beta1//org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:92)
at org.wildfly.clustering.infinis...@20.0.0.Beta1//org.wildfly.clustering.infinispan.spi.service.CacheServiceConfigurator.get(CacheServiceConfigurator.java:77)
at org.wildfly.clustering.infinis...@20.0.0.Beta1//org.wildfly.clustering.infinispan.spi.service.CacheServiceConfigurator.get(CacheServiceConfigurator.java:55)
at org.wildfly.clustering.ser...@20.0.0.Beta1//org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:63)
... 7 more
Caused by: org.infinispan.persistence.spi.PersistenceException: org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=3 returned server error (status=0x85): java.lang.SecurityException: ISPN006017: Unauthorized 'EXEC' operation
at org.jboss.as.clustering.infin...@20.0.0.Beta1//org.jboss.as.clustering.infinispan.subsystem.remote.HotRodStore.init(HotRodStore.java:118)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.initializeBareInstance(PersistenceManagerImpl.java:1266)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.createLoadersAndWriters(PersistenceManagerImpl.java:1194)
at org.inf...@10.1.8.Final//org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:187)
... 48 more
Caused by: org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=3 returned server error (status=0x85): java.lang.SecurityException: ISPN006017: Unauthorized 'EXEC' operation
at org.infinispan.client.hotrod@10.1.8.Final//org.infinispan.client.hotrod.impl.protocol.Codec20.checkForErrorsInResponseStatus(Codec20.java:337)
at org.infinispan.client.hotrod@10.1.8.Final//org.infinispan.client.hotrod.impl.protocol.Codec20.readHeader(Codec20.java:176)
at org.infinispan.client.hotrod@10.1.8.Final//org.infinispan.client.hotrod.impl.transport.netty.HeaderDecoder.decode(HeaderDecoder.java:139)
at org.infinispan.client.hotrod@10.1.8.Final//org.infinispan.client.hotrod.impl.transport.netty.HintedReplayingDecoder.callDecode(HintedReplayingDecoder.java:94)
at io.n...@4.1.48.Final//io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.n...@4.1.48.Final//io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.n...@4.1.48.Final//io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.n...@4.1.48.Final//io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.n...@4.1.48.Final//io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.n...@4.1.48.Final//io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
at io.n...@4.1.48.Final//io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475)
at io.n...@4.1.48.Final//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
at io.n...@4.1.48.Final//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.n...@4.1.48.Final//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 org.jboss.as.clustering.com...@20.0.0.Beta1//org.jboss.as.clustering.context.ContextReferenceExecutor.execute(ContextReferenceExecutor.java:49)
at org.jboss.as.clustering.com...@20.0.0.Beta1//org.jboss.as.clustering.context.ContextualExecutor$1.run(ContextualExecutor.java:70)
at org.jboss.as.clustering.com...@20.0.0.Beta1//org.jboss.as.clustering.context.ContextReferenceExecutor.execute(ContextReferenceExecutor.java:49)
at org.jboss.as.clustering.com...@20.0.0.Beta1//org.jboss.as.clustering.context.ContextualExecutor$1.run(ContextualExecutor.java:70)
at java.base/java.lang.Thread.run(Thread.java:834)

Rafael Paz

unread,
May 26, 2020, 2:54:04 PM5/26/20
to WildFly

Thanks for your patience Paul. I've followed the docs as described here:

My intention is to use an remote Infinispan to store session, my concern is that the application crashes for some reason, and the users loses their session because Wildfly could be deleted on Openshift without gracefull shutdown. Because of that I'm configuring an external ActiveMQ and an external session store.

To answer your questions:
1. With Wildfly 19.1.0, I'm using the Infinispan 9.4.11.Final with the same config as I post on this topic, and it is working. In fact I do have some things to verify though, because sometimes I'm getting timeout to get the session key.
I tried to use Infinispan 10.1.7.Final-1 with Wildfly 19.1.0, but it was not possible as I described. Then I have tested the Wildfly-20.0.0.Beta1, and neither Infinispan 9.4.11.Final or 10.1.7.Final have worked for me with this configuration.
Both Infinispan 9.x and 10.x are the latest Docker images that I find.

2. Oh yes, Paul, I see that I have both configured and I'm using the infinispan-session-management as default, this way I'm using the external Infinispan with invalidation cache via HotRod right? This works in Wildfly 19.1.0.Final but not with Wildfly 20 Beta.

What I understand with the docs was that HotRod is the best protocol to use when connecting to an external Infinispan server. I tried now the hotrod-session-management but not worked for me. I'll send all config that I made, any help if this is the best option will be very welcome.

About the security, I didn't find where to configure the security for remote_cache_container in the docs. For the external ActiveMQ-Artemis I have this:

<pooled-connection-factory name="remote-artemis" entries="java:/jms/remoteCF" connectors="remote-artemis" user="${env.ARTEMIS_USERNAME:admin}" password="${env.ARTEMIS_PASSWORD:admin}" />


Standalone.xml:
 
   <subsystem xmlns="urn:jboss:domain:distributable-web:2.0" default-session-management="sgn" default-single-sign-on-management="default">
           
<hotrod-session-management name="sgn" remote-cache-container="sgn_cache_container" granularity="ATTRIBUTE">
               
<local-affinity/>
           
</hotrod-session-management>

           
<infinispan-single-sign-on-management name="default" cache-container="web" cache="sso"/>
           
<infinispan-routing cache-container="web" cache="routing"/>
   
</subsystem>

   
<subsystem xmlns="urn:jboss:domain:infinispan:9.0">
       
<cache-container name="web" default-cache="sgn-web" module="org.wildfly.clustering.web.infinispan">
           
<transport lock-timeout="60000"/>
           
<invalidation-cache name="sgn-web">
               
<locking isolation="REPEATABLE_READ"/>
               
<transaction mode="BATCH"/>
               
<hotrod-store remote-cache-container="sgn_cache_container" fetch-state="false" passivation="false" purge="false" shared="true"/>
           
</invalidation-cache>

            .....
            .....


       
<remote-cache-container name="sgn_cache_container" default-remote-cluster="infinispan-cluster">

           
<remote-clusters>
               
<remote-cluster name="infinispan-cluster" socket-bindings="remote-infinispan"/>
           
</remote-clusters>
       
</remote-cache-container>  
   
</subsystem>

   
<outbound-socket-binding name="remote-infinispan">
       
<remote-destination host="${env.INFINISPAN_HOST:localhost}" port="${env.INFINISPAN_PORT:11222}"/>
   
</outbound-socket-binding>


With this config I get the exception:

Caused by: org.infinispan.client.hotrod.exceptions.HotRodClientException:: Unable to marshall object of type [org.wildfly.clustering.web.hotrod.session.SessionCreationMetaDataKey]
at org.infinispan...@9.4.18.Final//org.infinispan.client.hotrod.marshall.MarshallerUtil.obj2bytes(MarshallerUtil.java:77)
at org.infinispan...@9.4.18.Final//org.infinispan.client.hotrod.DataFormat.keyToBytes(DataFormat.java:93)
at org.infinispan...@9.4.18.Final//org.infinispan.client.hotrod.impl.RemoteCacheImpl.keyToBytes(RemoteCacheImpl.java:558)
at org.infinispan...@9.4.18.Final//org.infinispan.client.hotrod.impl.RemoteCacheImpl.putIfAbsentAsync(RemoteCacheImpl.java:381)
at org.infinispan...@9.4.18.Final//org.infinispan.client.hotrod.impl.RemoteCacheImpl.putIfAbsent(RemoteCacheImpl.java:344)
at org.wildfly.clusteri...@19.1.0.Final//org.wildfly.clustering.infinispan.client.RegisteredRemoteCache.putIfAbsent(RegisteredRemoteCache.java:319)
at org.infinispan...@9.4.18.Final//org.infinispan.client.hotrod.impl.RemoteCacheSupport.putIfAbsent(RemoteCacheSupport.java:54)
at org.wildfly.clus...@19.1.0.Final//org.wildfly.clustering.web.hotrod.session.HotRodSessionMetaDataFactory.createValue(HotRodSessionMetaDataFactory.java:65)
at org.wildfly.clus...@19.1.0.Final//org.wildfly.clustering.web.hotrod.session.HotRodSessionMetaDataFactory.createValue(HotRodSessionMetaDataFactory.java:46)
at org.wildfly.clus...@19.1.0.Final//org.wildfly.clustering.web.cache.session.CompositeSessionFactory.createValue(CompositeSessionFactory.java:54)
at org.wildfly.clus...@19.1.0.Final//org.wildfly.clustering.web.cache.session.CompositeSessionFactory.createValue(CompositeSessionFactory.java:39)
at org.wildfly.clus...@19.1.0.Final//org.wildfly.clustering.web.hotrod.session.HotRodSessionManager.createSession(HotRodSessionManager.java:130)
at org.wildfly.clust...@19.1.0.Final//org.wildfly.clustering.web.undertow.session.DistributableSessionManager.createSession(DistributableSessionManager.java:167)
at io.undert...@2.1.0.Final//io.undertow.servlet.spec.ServletContextImpl.getSession(ServletContextImpl.java:932)
at io.undert...@2.1.0.Final//io.undertow.servlet.spec.HttpServletRequestImpl.getSession(HttpServletRequestImpl.java:418)
at javax.se...@2.0.0.Final//javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:221)
at deployment.sgn-web.war//org.apache.shiro.web.servlet.ShiroHttpServletRequest.getSession(ShiroHttpServletRequest.java:148)
at deployment.sgn-web.war//org.apache.shiro.web.servlet.ShiroHttpServletRequest.getSession(ShiroHttpServletRequest.java:190)
at deployment.sgn-web.war//org.apache.shiro.web.session.mgt.ServletContainerSessionManager.createSession(ServletContainerSessionManager.java:108)
at deployment.sgn-web.war//org.apache.shiro.web.session.mgt.ServletContainerSessionManager.start(ServletContainerSessionManager.java:64)
at deployment.sgn-web.war//org.apache.shiro.mgt.SessionsSecurityManager.start(SessionsSecurityManager.java:152)
at deployment.sgn-web.war//org.apache.shiro.subject.support.DelegatingSubject.getSession(DelegatingSubject.java:340)
at deployment.sgn-web.war//org.apache.shiro.subject.support.DelegatingSubject.getSession(DelegatingSubject.java:316)
at deployment.sgn-web.war//org.apache.shiro.web.util.WebUtils.saveRequest(WebUtils.java:622)
at deployment.sgn-web.war//org.apache.shiro.web.filter.AccessControlFilter.saveRequest(AccessControlFilter.java:208)
at deployment.sgn-web.war//org.apache.shiro.web.filter.AccessControlFilter.saveRequestAndRedirectToLogin(AccessControlFilter.java:191)
at deployment.sgn-web.war//br.senai.sc.sgn2.core.common.security.shiro.SgnAuthorizer.onAccessDenied(SgnAuthorizer.java:200)
at deployment.sgn-web.war//org.apache.shiro.web.filter.AccessControlFilter.onAccessDenied(AccessControlFilter.java:133)
at deployment.sgn-web.war//org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162)
at deployment.sgn-web.war//org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:214)
at deployment.sgn-web.war//org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:189)
at deployment.sgn-web.war//org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131)
... 56 more
Caused by: java.io.NotSerializableException: org.wildfly.clustering.web.hotrod.session.SessionCreationMetaDataKey
at org.jboss.mar...@2.0.9.Final//org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:272)
at org.jboss....@2.0.9.Final//org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
at org.jboss....@2.0.9.Final//org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
at org.infinis...@9.4.18.Final//org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.objectToObjectStream(AbstractJBossMarshaller.java:73)
at org.infinis...@9.4.18.Final//org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.objectToBuffer(AbstractJBossMarshaller.java:81)
at org.infinis...@9.4.18.Final//org.infinispan.commons.marshall.AbstractMarshaller.objectToByteBuffer(AbstractMarshaller.java:70)
at org.infinispan...@9.4.18.Final//org.infinispan.client.hotrod.marshall.MarshallerUtil.obj2bytes(MarshallerUtil.java:74)
... 87 more
Caused by: an exception which occurred:
in object org.wildfly.clustering.web.hotrod.session.SessionCreationMetaDataKey@ed3216c8

With infinispan-session-management I have session replication as expected.


--
Atenciosamente

Rafael Paz

Paul Ferraro

unread,
May 27, 2020, 10:07:26 AM5/27/20
to WildFly
Re: org.infinispan.client.hotrod.exceptions.HotRodClientException:: Unable to marshall object of type [org.wildfly.clustering.web.hotrod.session.SessionCreationMetaDataKey]

By default, Infinispan does not know how to marshal the cache keys/values used by WildFly's distributed session manager - to get this to work, we need to configure the marshaller used by the remote-cache-container.
To do this, simply specify the appropriate module.
e.g.

<remote-cache-container name="sgn_cache_container" default-remote-cluster="infinispan-cluster" module="org.wildfly.clustering.web.hotrod">
   
<!-- ... -->
</remote-cache-container>

That should do the trick.

Re: Infinispan server and security, see the docs here: https://infinispan.org/docs/stable/titles/server/server.html#security
at org.infinispan.client.hotrod@9.4.18.Final//org.infinispan.client.hotrod.marshall.MarshallerUtil.obj2bytes(MarshallerUtil.java:77)
at org.infinispan.client.hotrod@9.4.18.Final//org.infinispan.client.hotrod.DataFormat.keyToBytes(DataFormat.java:93)
at org.infinispan.client.hotrod@9.4.18.Final//org.infinispan.client.hotrod.impl.RemoteCacheImpl.keyToBytes(RemoteCacheImpl.java:558)
at org.infinispan.client.hotrod@9.4.18.Final//org.infinispan.client.hotrod.impl.RemoteCacheImpl.putIfAbsentAsync(RemoteCacheImpl.java:381)
at org.infinispan.client.hotrod@9.4.18.Final//org.infinispan.client.hotrod.impl.RemoteCacheImpl.putIfAbsent(RemoteCacheImpl.java:344)
at org.wildfly.clustering.infinisp...@19.1.0.Final//org.wildfly.clustering.infinispan.client.RegisteredRemoteCache.putIfAbsent(RegisteredRemoteCache.java:319)
at org.infinispan.client.hotrod@9.4.18.Final//org.infinispan.client.hotrod.impl.RemoteCacheSupport.putIfAbsent(RemoteCacheSupport.java:54)
at org.wildfly.clustering.web.hot...@19.1.0.Final//org.wildfly.clustering.web.hotrod.session.HotRodSessionMetaDataFactory.createValue(HotRodSessionMetaDataFactory.java:65)
at org.wildfly.clustering.web.hot...@19.1.0.Final//org.wildfly.clustering.web.hotrod.session.HotRodSessionMetaDataFactory.createValue(HotRodSessionMetaDataFactory.java:46)
at org.wildfly.clustering.web.ca...@19.1.0.Final//org.wildfly.clustering.web.cache.session.CompositeSessionFactory.createValue(CompositeSessionFactory.java:54)
at org.wildfly.clustering.web.ca...@19.1.0.Final//org.wildfly.clustering.web.cache.session.CompositeSessionFactory.createValue(CompositeSessionFactory.java:39)
at org.wildfly.clustering.web.hot...@19.1.0.Final//org.wildfly.clustering.web.hotrod.session.HotRodSessionManager.createSession(HotRodSessionManager.java:130)
at org.wildfly.clustering.web.unde...@19.1.0.Final//org.wildfly.clustering.web.undertow.session.DistributableSessionManager.createSession(DistributableSessionManager.java:167)
at io.undert...@2.1.0.Final//io.undertow.servlet.spec.ServletContextImpl.getSession(ServletContextImpl.java:932)
at io.undert...@2.1.0.Final//io.undertow.servlet.spec.HttpServletRequestImpl.getSession(HttpServletRequestImpl.java:418)
at javax.se...@2.0.0.Final//javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:221)
at deployment.sgn-web.war//org.apache.shiro.web.servlet.ShiroHttpServletRequest.getSession(ShiroHttpServletRequest.java:148)
at deployment.sgn-web.war//org.apache.shiro.web.servlet.ShiroHttpServletRequest.getSession(ShiroHttpServletRequest.java:190)
at deployment.sgn-web.war//org.apache.shiro.web.session.mgt.ServletContainerSessionManager.createSession(ServletContainerSessionManager.java:108)
at deployment.sgn-web.war//org.apache.shiro.web.session.mgt.ServletContainerSessionManager.start(ServletContainerSessionManager.java:64)
at deployment.sgn-web.war//org.apache.shiro.mgt.SessionsSecurityManager.start(SessionsSecurityManager.java:152)
at deployment.sgn-web.war//org.apache.shiro.subject.support.DelegatingSubject.getSession(DelegatingSubject.java:340)
at deployment.sgn-web.war//org.apache.shiro.subject.support.DelegatingSubject.getSession(DelegatingSubject.java:316)
at deployment.sgn-web.war//org.apache.shiro.web.util.WebUtils.saveRequest(WebUtils.java:622)
at deployment.sgn-web.war//org.apache.shiro.web.filter.AccessControlFilter.saveRequest(AccessControlFilter.java:208)
at deployment.sgn-web.war//org.apache.shiro.web.filter.AccessControlFilter.saveRequestAndRedirectToLogin(AccessControlFilter.java:191)
at deployment.sgn-web.war//br.senai.sc.sgn2.core.common.security.shiro.SgnAuthorizer.onAccessDenied(SgnAuthorizer.java:200)
at deployment.sgn-web.war//org.apache.shiro.web.filter.AccessControlFilter.onAccessDenied(AccessControlFilter.java:133)
at deployment.sgn-web.war//org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162)
at deployment.sgn-web.war//org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:214)
at deployment.sgn-web.war//org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:189)
at deployment.sgn-web.war//org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131)
... 56 more
Caused by: java.io.NotSerializableException: org.wildfly.clustering.web.hotrod.session.SessionCreationMetaDataKey
at org.jboss.marshalling.river@2.0.9.Final//org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:272)
at org.jboss....@2.0.9.Final//org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
at org.jboss....@2.0.9.Final//org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
at org.infinis...@9.4.18.Final//org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.objectToObjectStream(AbstractJBossMarshaller.java:73)
at org.infinis...@9.4.18.Final//org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.objectToBuffer(AbstractJBossMarshaller.java:81)
at org.infinis...@9.4.18.Final//org.infinispan.commons.marshall.AbstractMarshaller.objectToByteBuffer(AbstractMarshaller.java:70)
at org.infinispan.client.hotrod@9.4.18.Final//org.infinispan.client.hotrod.marshall.MarshallerUtil.obj2bytes(MarshallerUtil.java:74)
... 87 more
Caused by: an exception which occurred:
in object org.wildfly.clustering.web.hotrod.session.SessionCreationMetaDataKey@ed3216c8

With infinispan-session-management I have session replication as expected.


--
Atenciosamente

Rafael Paz

Rafael Paz

unread,
May 27, 2020, 8:43:50 PM5/27/20
to WildFly
Thanks Paul, I disabled HotRod authentication on Infinispan 10.1.7.Final and now I can use this version with Wildfly-20.0.0.Beta. This is not the best option, but for now, it is what I can do; I need to read Wildfly's security documents better to find out how to send username and password to an external Infinispan.

Regarding hotrod-session-management, I'm having some troubles using Apache Shiro and this protocol, I'll try some changes in my code to find how to do the job. But with the infinispan-session-management the application seems to be working fine , so I think I can use the infinispan-session-management in case I can't make the changes to work with hotrod directly.

This is the exception I'm getting when I am working with hotrod-session-management. This class SimplePrincipalCollection has it's own writeObject and readObject.

21:31:27,485 WARN  [org.wildfly.clustering.web.undertow] (default task-11) null: java.util.ConcurrentModificationException
at java.base/java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:719)
at java.base/java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:751)
at java.base/java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:749)
at org.wildfly.cluster...@20.0.0.Beta1//org.wildfly.clustering.marshalling.spi.util.MapExternalizer.writeObject(MapExternalizer.java:53)
at org.wildfly.cluster...@20.0.0.Beta1//org.wildfly.clustering.marshalling.spi.util.MapExternalizer.writeObject(MapExternalizer.java:38)
at org.wildfly.cluster...@20.0.0.Beta1//org.wildfly.clustering.marshalling.spi.DefaultExternalizer.writeObject(DefaultExternalizer.java:198)
at org.wildfly.clusteri...@20.0.0.Beta1//org.wildfly.clustering.marshalling.jboss.ExternalizerObjectTable$ExternalizerWriter.writeObject(ExternalizerObjectTable.java:137)
at org.jboss.mar...@2.0.9.Final//org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:139)
at org.jboss.mar...@2.0.9.Final//org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1141)
at org.jboss.mar...@2.0.9.Final//org.jboss.marshalling.river.RiverObjectOutputStream.defaultWriteObject(RiverObjectOutputStream.java:165)
at deployment.sgn-web.war//org.apache.shiro.subject.SimplePrincipalCollection.writeObject(SimplePrincipalCollection.java:274)
at org.jboss....@2.0.9.Final//org.jboss.marshalling.reflect.JDKSpecific$SerMethods.callWriteObject(JDKSpecific.java:89)
at org.jboss....@2.0.9.Final//org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:193)
at org.jboss.mar...@2.0.9.Final//org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1087)
at org.jboss.mar...@2.0.9.Final//org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:266)
at org.jboss....@2.0.9.Final//org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
at org.jboss....@2.0.9.Final//org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
at org.wildfly.clusteri...@20.0.0.Beta1//org.wildfly.clustering.marshalling.jboss.SimpleMarshalledValue.getBuffer(SimpleMarshalledValue.java:78)
at org.wildfly.clusteri...@20.0.0.Beta1//org.wildfly.clustering.marshalling.jboss.SimpleMarshalledValueExternalizer.writeObject(SimpleMarshalledValueExternalizer.java:64)
at org.wildfly.clusteri...@20.0.0.Beta1//org.wildfly.clustering.marshalling.jboss.SimpleMarshalledValueExternalizer.writeObject(SimpleMarshalledValueExternalizer.java:37)
at org.wildfly.clusteri...@20.0.0.Beta1//org.wildfly.clustering.marshalling.jboss.ExternalizerObjectTable$ExternalizerWriter.writeObject(ExternalizerObjectTable.java:137)
at org.jboss.mar...@2.0.9.Final//org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:139)
at org.jboss....@2.0.9.Final//org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
at org.jboss....@2.0.9.Final//org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
at org.wildfly.clustering...@20.0.0.Beta1//org.wildfly.clustering.infinispan.marshalling.jboss.JBossMarshaller.writeObject(JBossMarshaller.java:85)
at org.wildfly.clustering...@20.0.0.Beta1//org.wildfly.clustering.infinispan.marshalling.AbstractMarshaller.objectToBuffer(AbstractMarshaller.java:107)
at org.wildfly.clustering...@20.0.0.Beta1//org.wildfly.clustering.infinispan.marshalling.AbstractMarshaller.objectToByteBuffer(AbstractMarshaller.java:101)
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.marshall.MarshallerUtil.obj2bytes(MarshallerUtil.java:99)
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.DataFormat.valueToBytes(DataFormat.java:98)
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.impl.RemoteCacheImpl.valueToBytes(RemoteCacheImpl.java:611)
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.impl.RemoteCacheImpl.putAsync(RemoteCacheImpl.java:377)
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.impl.InvalidatedNearRemoteCache.putAsync(InvalidatedNearRemoteCache.java:60)
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.impl.RemoteCacheImpl.put(RemoteCacheImpl.java:346)
at org.wildfly.clusteri...@20.0.0.Beta1//org.wildfly.clustering.infinispan.client.RegisteredRemoteCache.put(RegisteredRemoteCache.java:159)
at org.infinispan...@10.1.8.Final//org.infinispan.client.hotrod.impl.RemoteCacheSupport.put(RemoteCacheSupport.java:89)
at org.wildfly.clus...@20.0.0.Beta1//org.wildfly.clustering.ee.hotrod.RemoteCacheEntryMutator.mutate(RemoteCacheEntryMutator.java:52)
at org.wildfly.clus...@20.0.0.Beta1//org.wildfly.clustering.web.cache.session.fine.FineSessionAttributes.close(FineSessionAttributes.java:184)
at org.wildfly.clus...@20.0.0.Beta1//org.wildfly.clustering.web.cache.session.CompositeSession.close(CompositeSession.java:78)
at org.wildfly.clus...@20.0.0.Beta1//org.wildfly.clustering.web.cache.session.ValidSession.close(ValidSession.java:88)
at org.wildfly.clust...@20.0.0.Beta1//org.wildfly.clustering.web.undertow.session.DistributableSession.requestDone(DistributableSession.java:89)
at io.undert...@2.1.1.Final//io.undertow.servlet.spec.ServletContextImpl.updateSessionAccessTime(ServletContextImpl.java:960)
at io.undert...@2.1.1.Final//io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:627)
at io.undert...@2.1.1.Final//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:328)
at io.undert...@2.1.1.Final//io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
at io.undert...@2.1.1.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
at io.undert...@2.1.1.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
at io.undert...@2.1.1.Final//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undert...@2.1.1.Final//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at org.wildfly.ext...@20.0.0.Beta1//org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
at org.wildfly.ext...@20.0.0.Beta1//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
at org.wildfly.ext...@20.0.0.Beta1//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
at org.wildfly.ext...@20.0.0.Beta1//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
at org.wildfly.ext...@20.0.0.Beta1//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
at org.wildfly.ext...@20.0.0.Beta1//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
at io.undert...@2.1.1.Final//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
at io.undert...@2.1.1.Final//io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
at io.undert...@2.1.1.Final//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
at io.under...@2.1.1.Final//io.undertow.server.Connectors.executeRootHandler(Connectors.java:370)
at io.under...@2.1.1.Final//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
at org.jbos...@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jbos...@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: an exception which occurred:
in field org.apache.shiro.subject.SimplePrincipalCollection.realmPrincipals
in object org.apache.shiro.subject.SimplePrincipalCollection@e371561
in object org.apache.shiro.subject.SimplePrincipalCollection@e371561
in object org.wildfly.clustering.marshalling.jboss.SimpleMarshalledValue@e371561

Paul Ferraro

unread,
Jun 5, 2020, 11:34:41 AM6/5/20
to WildFly
Unfortunately, this is a bug that will need to be addressed by Shiro.  SimplePrincipalCollection should certainly be implemented using concurrent collections, as an object of this nature will inevitably be accessed/modified by multiple threads.

Swapnil Bidwai

unread,
Jun 23, 2022, 6:42:32 AM6/23/22
to WildFly
Hi,
I am new to infinispan and want to externalize my session to infinispan in my domain mode wildfly server.

Thanks
Swapnil Bidwai

Paul Ferraro

unread,
Jun 23, 2022, 7:47:08 AM6/23/22
to Swapnil Bidwai, WildFly
Start here: https://github.com/wildfly/wildfly/blob/main/docs/src/main/asciidoc/_high-availability/subsystem-support/Distributable_Web_Applications.adoc#distributable-web-applications
> --
> You received this message because you are subscribed to the Google Groups "WildFly" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to wildfly+u...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/wildfly/216ca6ef-fdac-4fff-a841-a4cfaae06288n%40googlegroups.com.

Swapnil Bidwai

unread,
Jun 23, 2022, 11:33:16 PM6/23/22
to Paul Ferraro, WildFly
Hi Paul,
I want to do both Embedded and Remote Cache management at infinispan.Can we have some good articles for both this cache management.

Thanks
Swapnil Bidwai
Reply all
Reply to author
Forward
0 new messages