Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-11145

Wrong eviction strategy used when using local-cache

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.1.0.ER1
    • 7.1.0.DR18
    • Clustering
    • None

      When following the steps to reproduce for JBEAP-10582, I configured "ejb" cache-container in standalone-ha.xml this way:

      <cache-container name="ejb" aliases="sfsb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan">
          <local-cache name="passivation">
      	<locking isolation="REPEATABLE_READ"/>
      	<transaction mode="BATCH"/>
      	<eviction strategy="LRU" max-entries="100"/>
      	<expiration max-idle="30000"/>
      	<file-store passivation="true" purge="false"/>
          </local-cache>
      </cache-container>
      

      Then I started EAP (with ejb application deployed) and got this error message:

      12:03:11,997 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-6) WFLYEJB0473: JNDI bindings for session bean named 'HelloBean' in deployment unit 'deployment "server.jar"' are as follows:
      
              java:global/server/HelloBean!ejb.HelloBeanRemote
              java:app/server/HelloBean!ejb.HelloBeanRemote
              java:module/HelloBean!ejb.HelloBeanRemote
              java:jboss/exported/server/HelloBean!ejb.HelloBeanRemote
              java:global/server/HelloBean
              java:app/server/HelloBean
              java:module/HelloBean
      
      12:03:12,089 INFO  [org.jboss.weld.Version] (MSC service thread 1-6) WELD-000900: 2.4.3 (redhat)
      12:03:12,167 WARN  [org.wildfly.clustering.ejb.infinispan] (MSC service thread 1-5) WFLYCLEJBINF0010: Disabling expiration from org.wildfly.clustering.infinispan.default-cache-configuration.ejb.  SFSB expiration should be configured per ยง4.3.11 of the EJB specification.
      12:03:12,167 WARN  [org.wildfly.clustering.ejb.infinispan] (MSC service thread 1-5) WFLYCLEJBINF0009: Disabling eviction from org.wildfly.clustering.infinispan.default-cache-configuration.ejb.  SFSB passivation should be configured via the associated EJB subsytem passivation-store.
      12:03:12,325 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 68) WFLYCLINF0002: Started client-mappings cache from ejb container
      12:03:12,374 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 68) MSC000001: Failed to start service org.wildfly.clustering.infinispan.cache.ejb.server.jar: org.jboss.msc.service.StartException in service org.wildfly.clustering.infinispan.cache.ejb.server.jar: org.infinispan.commons.CacheConfigurationException: Unknown eviction strategy MANUAL
              at org.wildfly.clustering.service.FunctionalValueService.start(FunctionalValueService.java:70)
              at org.wildfly.clustering.service.AsynchronousServiceBuilder.lambda$start$0(AsynchronousServiceBuilder.java:99)
              at org.wildfly.clustering.service.AsynchronousServiceBuilder$$Lambda$578/785687163.run(Unknown Source)
              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)
              at org.jboss.threads.JBossThread.run(JBossThread.java:320)
      Caused by: org.infinispan.commons.CacheConfigurationException: Unknown eviction strategy MANUAL
              at org.infinispan.factories.DataContainerFactory.construct(DataContainerFactory.java:74)
              at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:297)
              at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:156)
              at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:246)
              at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:71)
              at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:787)
              at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:219)
              at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:193)
              at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:171)
              at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:300)
              at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:156)
              at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:246)
              at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:71)
              at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:787)
              at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:219)
              at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:193)
              at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:171)
              at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:300)
              at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:156)
              at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:246)
              at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:71)
              at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:787)
              at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:219)
              at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:193)
              at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:171)
              at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:300)
              at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:156)
              at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:246)
              at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:71)
              at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:787)
              at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:219)
              at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:193)
              at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:171)
              at org.infinispan.factories.InternalCacheFactory.bootstrap(InternalCacheFactory.java:132)
              at org.infinispan.factories.InternalCacheFactory.createAndWire(InternalCacheFactory.java:73)
              at org.infinispan.factories.InternalCacheFactory.createCache(InternalCacheFactory.java:56)
              at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:625)
              at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:585)
              at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:451)
              at org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:108)
              at org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:103)
              at org.wildfly.clustering.infinispan.spi.service.CacheBuilder.lambda$build$0(CacheBuilder.java:83)
              at org.wildfly.clustering.infinispan.spi.service.CacheBuilder$$Lambda$672/643844604.get(Unknown Source)
              at org.wildfly.clustering.service.SuppliedValueService.lambda$new$0(SuppliedValueService.java:42)
              at org.wildfly.clustering.service.SuppliedValueService$$Lambda$605/94666937.apply(Unknown Source)
              at org.wildfly.clustering.service.FunctionalValueService.start(FunctionalValueService.java:68)
              ... 6 more
      
      12:03:12,592 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "server.jar")]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.clustering.infinispan.cache.ejb.server.jar" => "org.infinispan.commons.CacheConfigurationException: Unknown eviction strategy MANUAL
          Caused by: org.infinispan.commons.CacheConfigurationException: Unknown eviction strategy MANUAL"}}
      
      

      I think this WARN message is important (and the fact that MANUAL eviction is then used which results in the above mentioned error):

      12:03:12,167 WARN  [org.wildfly.clustering.ejb.infinispan] (MSC service thread 1-5) WFLYCLEJBINF0009: Disabling eviction from org.wildfly.clustering.infinispan.default-cache-configuration.ejb.  SFSB passivation should be configured via the associated EJB subsytem passivation-store.
      

              pferraro@redhat.com Paul Ferraro
              mvinkler1@redhat.com Michal Vinkler
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: