Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-3711

CNFE org.jboss.interceptor.spi.model.InterceptionModel accessing replicated session on a CDI app with an interceptor

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • 7.1.0.Final
    • None
    • Clustering
    • None
    • Hide

      1. setup a two node cluster, e.g. on address node1 and node2
      2.

      node1/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=node1
      node2/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=node2

      3. deploy the attached app to both servers
      4. Go to http://node1:8080/weld-numberguess and guess a few numbers
      5. Remove any cookies for the node2 domain
      6. Get the cookie for the node1:8080/weld-numberguess domain/path
      7. Go to http://node2:8080/weld-numberguess/home.jsf;jsessionid=eB7kT6lxYzT4eMo5OHDOHW5n (replace the jsessionid with the cookie from 6.)
      8. Notice the game is in the reset state, instead of the expected one.

      Show
      1. setup a two node cluster, e.g. on address node1 and node2 2. node1/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=node1 node2/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=node2 3. deploy the attached app to both servers 4. Go to http://node1:8080/weld-numberguess and guess a few numbers 5. Remove any cookies for the node2 domain 6. Get the cookie for the node1:8080/weld-numberguess domain/path 7. Go to http://node2:8080/weld-numberguess/home.jsf;jsessionid=eB7kT6lxYzT4eMo5OHDOHW5n (replace the jsessionid with the cookie from 6.) 8. Notice the game is in the reset state, instead of the expected one.

    Description

      After AS7-3582 fixed, the modified weld-numberguess app (with added decorator and an interceptor) still doesn't work properly in cluster. The original weld-numberguess example works properly in the same scenario.

      After deploying to a two node cluster, trying to access the replicated session with a supplied jsessionid on the second node, a message

      11:58:31,535 WARN  [org.jboss.as.clustering.web.infinispan] (http--127.0.2.1-8080-1) JBAS010322: Problem accessing session [eB7kT6lxYzT4eMo5OHDOHW5n]: JBAS010334: Failed to store session attributes for session: eB7kT6lxYzT4eMo5OHDOHW5n
      

      is displayed in the logs and the state is not the replicated state from the first node.

      11:58:31,512 DEBUG [org.jboss.as.clustering.web.infinispan] (http--127.0.2.1-8080-1) JBAS010322: Problem accessing session [eB7kT6lxYzT4eMo5OHDOHW5n]: JBAS010334: Failed to store session attributes for session: eB7kT6lxYzT4eMo5OHDOHW5n: java.lang.RuntimeException: JBAS010334: Failed to store session attributes for session: eB7kT6lxYzT4eMo5OHDOHW5n
      	at org.jboss.as.clustering.web.infinispan.DistributedCacheManager$2.invoke(DistributedCacheManager.java:225)
      	at org.jboss.as.clustering.web.infinispan.DistributedCacheManager$2.invoke(DistributedCacheManager.java:208)
      	at org.jboss.as.clustering.infinispan.invoker.RetryingCacheInvoker.invoke(RetryingCacheInvoker.java:61)
      	at org.jboss.as.clustering.web.infinispan.DistributedCacheManager$ForceSynchronousCacheInvoker.invoke(DistributedCacheManager.java:523)
      	at org.jboss.as.clustering.web.infinispan.DistributedCacheManager.invoke(DistributedCacheManager.java:491)
      	at org.jboss.as.clustering.web.infinispan.DistributedCacheManager.getData(DistributedCacheManager.java:234)
      	at org.jboss.as.clustering.web.infinispan.DistributedCacheManager.getSessionData(DistributedCacheManager.java:191)
      	at org.jboss.as.web.session.DistributableSessionManager.loadSession(DistributableSessionManager.java:1388) [jboss-as-web-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
      	at org.jboss.as.web.session.DistributableSessionManager.findSession(DistributableSessionManager.java:684) [jboss-as-web-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
      	at org.jboss.as.web.session.DistributableSessionManager.findSession(DistributableSessionManager.java:84) [jboss-as-web-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
      	at org.apache.catalina.connector.Request.doGetSession(Request.java:2618) [jbossweb-7.0.10.Final.jar:]
      	at org.apache.catalina.connector.Request.getSession(Request.java:2375) [jbossweb-7.0.10.Final.jar:]
      	at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:841) [jbossweb-7.0.10.Final.jar:]
      	at org.jboss.weld.context.beanstore.http.LazySessionBeanStore.getSession(LazySessionBeanStore.java:72) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
      	at org.jboss.weld.context.beanstore.http.LazySessionBeanStore.<init>(LazySessionBeanStore.java:58) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
      	at org.jboss.weld.context.http.HttpSessionContextImpl.associate(HttpSessionContextImpl.java:31) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
      	at org.jboss.weld.context.http.HttpSessionContextImpl.associate(HttpSessionContextImpl.java:16) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
      	at org.jboss.weld.servlet.WeldListener.requestInitialized(WeldListener.java:134) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) [jbossweb-7.0.10.Final.jar:]
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.10.Final.jar:]
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.10.Final.jar:]
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.10.Final.jar:]
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.10.Final.jar:]
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.10.Final.jar:]
      	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.10.Final.jar:]
      	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
      Caused by: java.lang.ClassNotFoundException: org.jboss.interceptor.spi.model.InterceptionModel from [Module "deployment.weld-numberguess.war:main" from Service Module Loader]
      	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
      	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
      	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
      	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
      	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
      	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
      	at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_30]
      	at java.lang.Class.forName(Class.java:247) [rt.jar:1.6.0_30]
      	at org.jboss.marshalling.AbstractClassResolver.loadClass(AbstractClassResolver.java:135)
      	at org.jboss.marshalling.AbstractClassResolver.resolveClass(AbstractClassResolver.java:116)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:868)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:898)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1200)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
      	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1673)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1589)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1231)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
      	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1673)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1589)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1231)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
      	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1673)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1589)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1553)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1231)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
      	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1673)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1589)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1231)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadCollectionObject(RiverUnmarshaller.java:180)
      	at org.jboss.marshalling.river.RiverUnmarshaller.readCollectionData(RiverUnmarshaller.java:769)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:649)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
      	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1673)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1589)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1553)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1231)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
      	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1673)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1589)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1231)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
      	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1673)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1589)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1231)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadMapObject(RiverUnmarshaller.java:195)
      	at org.jboss.marshalling.river.RiverUnmarshaller.readMapData(RiverUnmarshaller.java:791)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:682)
      	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
      	at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37)
      	at org.jboss.as.clustering.SimpleMarshalledValue.get(SimpleMarshalledValue.java:108)
      	at org.jboss.as.clustering.web.impl.SessionAttributeMarshallerImpl.unmarshal(SessionAttributeMarshallerImpl.java:72)
      	at org.jboss.as.clustering.web.infinispan.CoarseSessionAttributeStorage.load(CoarseSessionAttributeStorage.java:65)
      	at org.jboss.as.clustering.web.infinispan.DistributedCacheManager$2.invoke(DistributedCacheManager.java:223)
      	... 25 more
      
      11:58:31,535 WARN  [org.jboss.as.clustering.web.infinispan] (http--127.0.2.1-8080-1) JBAS010322: Problem accessing session [eB7kT6lxYzT4eMo5OHDOHW5n]: JBAS010334: Failed to store session attributes for session: eB7kT6lxYzT4eMo5OHDOHW5n
      

      Attachments

        1. weld-numberguess.tar.gz
          17 kB
          Marek Schmidt
        2. weld-numberguess.war
          124 kB
          Marek Schmidt

        Issue Links

          Activity

            People

              pferraro@redhat.com Paul Ferraro
              maschmid@redhat.com Marek Schmidt
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: