6 Replies Latest reply on Mar 18, 2014 2:19 PM by jokser

    Web Sessions crossing

    jokser

      Hello everyone.

       

      I have web-application (100+ active online users) based on JSF 2.2 + Primefaces 4. So application takes a lot of ajax and non-ajax requests. Addionaly I actively use Conversations and @ConversationScoped beans (There are no @SessionScoped or @ManagedBean beans). After 2-3 hours from the start application (server), users start getting responses for his requests from another Web Sessions (E.g. when i click to search page, i receive search page view from random another user with his own data. And it randomly happens for any request). It leads to undesirable effects and incorrect work for application. I don't know what has caused this strange behavior. I just noticed, that time period after which begins this effect, depends on long-running Conversation timeout (I made 2 standalone nodes + mod_cluster balancer, increased session and conversation timeouts to 10 hours and application was  working correctly 3 days). So i can suppose, that something wrong happens in destroying/deactivating conversations.

      I unsuccessfully tried to solve this problem for a week and found no other way except to post it here.

       

      Application server is Wildfly 8.0.0.Final (Weld 2.1.2.Final, Mojarra 2.2.5, etc).

      JVM snapshot:

      jvm_snapshot.png

      Next i will describe key points in the code and exceptions from server log:

       

      First of all all my jsf views inherit one template, which has PreRenderView event:

      <f:metadata>
           <f:event type="preRenderView" listener="#{view_controller.onPreRenderView}"/>
      </f:metadata>
      

      In this method i check conversation (start it if need) and depending on GET-parameters programmaticaly redirect to one of the views. Shortened ViewController class with key methods:

      @Named("view_controller")
      @ConversationScoped
      public class ViewController implements Serializable {
      
          private @Inject Conversation conversation;
          private @Inject FacesContext fc;
          private @Inject HttpServletRequest request;
      
          /**
            *  We need to start a new conversation at the first access to web resources
            */
          public void onPreRenderView() {
              boolean cnvexists = checkConversation();
              String paramPageName = checkRequestParameters();
              if (!cnvexists || paramPageName != null) {
                  if (paramPageName == null) {
                      // Getting paramPageName
                  }
                  toPage(paramPageName);
              }
              if (!checkPageAccess()) {
                  toPage("search");
              }
          }
      
          private String generateCid() {
              return String.valueOf(Math.abs(new Random().nextLong()));
          }
      
          private boolean checkConversation() {
              if (conversation.isTransient()) {
                  conversation.begin(generateCid());
                  conversation.setTimeout(10L*60*60*1000);
                  return false;
              }
              return true;
          }
      
          public void toPage(String pageName) {
              fc.getApplication().getNavigationHandler().handleNavigation(fc, null, pageName + "?faces-redirect=true");
          }
      
      }
      

       

      I also have many @ConversationScoped beans, which i use to store data from jsf-views, iteracting with users and invoking ejbs. But work with Conversations occurs only in ViewController class. Cid parameter is automatically inserted into URL.

       

      One of frequent exceptions:

      2014-03-06 22:05:18,745 ERROR [io.undertow.request] (default task-2) UT005023: Exception handling request to /requests/search.xhtml: javax.servlet.ServletException

          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) [jboss-jsf-api_2.2_spec-2.2.5.jar:2.2.5]

          at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:70) [primefaces-4.0.jar:4.0]

          at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at org.jboss.weld.servlet.ConversationFilter.doFilter(ConversationFilter.java:70) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at com.mtelecom.CharsetFilter.doFilter(CharsetFilter.java:28) [classes:]

          at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

          at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

          at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.Connectors.executeRootHandler(Connectors.java:168) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:687) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]

          at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]

      Caused by: java.lang.IllegalStateException

          at com.sun.faces.context.FacesContextImpl.assertNotReleased(FacesContextImpl.java:702) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at com.sun.faces.context.FacesContextImpl.getApplication(FacesContextImpl.java:149) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at org.jboss.weldx.faces.context.FacesContext$Proxy$_$$_WeldClientProxy.getApplication(Unknown Source) [jboss-jsf-api_2.2_spec-2.2.5.jar:]

          at com.mtelecom.requests.components.ViewController.toPage(ViewController.java:134) [classes:]

          at com.mtelecom.requests.components.ViewController.onPreRenderView(ViewController.java:78) [classes:]

          at com.mtelecom.requests.components.ViewController$Proxy$_$$_WeldClientProxy.onPreRenderView(Unknown Source) [classes:]

          at sun.reflect.GeneratedMethodAccessor1041.invoke(Unknown Source) [:1.7.0_45]

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_45]

          at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45]

          at com.sun.el.parser.AstValue.invoke(AstValue.java:275) [javax.el-3.0.0.jar:3.0.0]

          at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) [javax.el-3.0.0.jar:3.0.0]

          at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at com.sun.faces.facelets.tag.jsf.core.DeclarativeSystemEventListener.processEvent(EventHandler.java:128) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2563) [jboss-jsf-api_2.2_spec-2.2.5.jar:2.2.5]

          at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108) [jboss-jsf-api_2.2_spec-2.2.5.jar:2.2.5]

          at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:118) [jboss-jsf-api_2.2_spec-2.2.5.jar:2.2.5]

          at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2187) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:2135) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:289) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:247) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at org.jboss.as.jsf.injection.weld.ForwardingApplication.publishEvent(ForwardingApplication.java:299) [wildfly-jsf-injection-8.0.0.Final.jar:8.0.0.Final]

          at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) [jsf-impl-2.2.5-jbossorg-3.jar:]

          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647) [jboss-jsf-api_2.2_spec-2.2.5.jar:2.2.5]

          ... 38 more

      Some strange exception:

      2014-03-06 22:07:32,278 ERROR [io.undertow.request] (default task-2) UT005023: Exception handling request to /requests/search.xhtml: java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "2j"

          at java.net.URLDecoder.decode(URLDecoder.java:192) [rt.jar:1.7.0_45]

          at io.undertow.server.handlers.form.FormEncodedDataDefinition$FormEncodedDataParser.doParse(FormEncodedDataDefinition.java:166) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.handlers.form.FormEncodedDataDefinition$FormEncodedDataParser.parseBlocking(FormEncodedDataDefinition.java:226) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.spec.HttpServletRequestImpl.parseFormData(HttpServletRequestImpl.java:726) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.spec.HttpServletRequestImpl.getParameter(HttpServletRequestImpl.java:600) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at org.jboss.weld.servlet.ConversationContextActivator.determineConversationId(ConversationContextActivator.java:182) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.servlet.ConversationContextActivator.activate(ConversationContextActivator.java:109) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.servlet.ConversationContextActivator.activateConversationContext(ConversationContextActivator.java:93) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.servlet.ConversationContextActivator.startConversationContext(ConversationContextActivator.java:75) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.servlet.ConversationFilter.doFilter(ConversationFilter.java:68) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at com.mtelecom.CharsetFilter.doFilter(CharsetFilter.java:28) [classes:]

          at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

          at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

          at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.Connectors.executeRootHandler(Connectors.java:168) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:687) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]

          at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]

      2014-03-06 22:10:16,047 ERROR [io.undertow.servlet.request] (default task-9) UT015005: Error invoking method requestDestroyed on listener class org.jboss.weld.servlet.WeldInitialListener: java.util.ConcurrentModificationException

          at java.util.HashMap$HashIterator.remove(HashMap.java:944) [rt.jar:1.7.0_45]

          at org.jboss.weld.context.AbstractConversationContext.deactivate(AbstractConversationContext.java:301) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.context.http.LazyHttpConversationContextImpl.deactivate(LazyHttpConversationContextImpl.java:74) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.servlet.ConversationContextActivator.deactivateConversationContext(ConversationContextActivator.java:154) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.servlet.HttpContextLifecycle.requestDestroyed(HttpContextLifecycle.java:217) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at org.jboss.weld.servlet.WeldInitialListener.requestDestroyed(WeldInitialListener.java:136) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]

          at io.undertow.servlet.core.ApplicationListeners.requestDestroyed(ApplicationListeners.java:225) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:283) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.Connectors.executeRootHandler(Connectors.java:168) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:687) [undertow-core-1.0.0.Final.jar:1.0.0.Final]

          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]

          at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]

      Also there are many NullPointer and PropertyNotFound exceptions. But the are a consequence of receiving wrong responses. Total weight of server.log is 50 Mb. If it needed, i can attach it all.

       

      I also attached web.xml and Wildfly standalone.xml (without datasources).

       

      Please help. It's very critical bug.

        • 1. Re: Web Sessions crossing
          swd847

          This sounds very odd, are you using session clustering?

          • 2. Re: Web Sessions crossing
            jokser

            No. Furthermore, before i made 2 standalone nodes with mod_cluster, i had got this effect on single node.

            • 3. Re: Web Sessions crossing
              jokser

              So, i have moved it to Weld branch. I think the problem comes from Weld. Please help.

              • 4. Re: Web Sessions crossing
                mkouba

                Hi Pavel,

                 

                IllegalStateException at com.sun.faces.context.FacesContextImpl.assertNotReleased

                How does the FacesContext producer look like? Since it is a request-scoped artifact, it's scope should be @RequestScoped. Also an instance of FacesContext should never be manually set on a bean instance which is stored in the session (e.g. @ConversationScoped). See also this thread.


                java.lang.IllegalArgumentException: URLDecoder

                Feel free to ask Undertow community.


                java.util.ConcurrentModificationException

                This could we a weld issue. It seems like the session cleanup is not thread-safe which may theoretically cause this exception.

                1 of 1 people found this helpful
                • 5. Re: Web Sessions crossing
                  mkouba

                  i receive search page view from random another user with his own data

                  Once I stumbled with similar issue. The reason was a proxy server between the user and the app server. The solution was to set corresponding HTTP response headers (Cache-control, Pragma, ...) properly (e.g. by means of servlet filter or JSF PhaseListener).

                  • 6. Re: Web Sessions crossing
                    jokser

                    I don't have proxy server between clients and app server. I have tested and noticed that time, when this effect starts directly depends on session timeout. If i set small session timeout time (about 3-4 hours), i get this effect quite fast - after 5-6 hours after starting server. So if i set big session timeout time (10-12 hours or infinity) application can work without bugs for about 2-3 days. The key condition is at least 50-60 online users are on the server. I think it somehow linked with session destroying. But i don't know how.