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

Clustering: java.lang.NullPointerException in JDG SSO hotrod test

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.4.0.GA
    • 7.4.0.Beta
    • Clustering
    • None
    • False
    • False
    • Undefined

      The error is present in EAP Clustering tests where SSO data is offloaded to a remote JDG cluster using hotrod;

      The 4 EAP cluster nodes are configured as follows:

      embed-server --server-config=standalone-ha.xml
      /subsystem=jgroups/channel=ee:write-attribute(name=stack,value=tcp)
      /subsystem=transactions:write-attribute(name=node-identifier,value=wildfly1)
      /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-jdg-server1:add(host=10.0.146.26, port=11222)
      /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-jdg-server2:add(host=10.0.146.27, port=11222)
      /subsystem=elytron/key-store=twoWayKS:add(path=jdg.keystore.jks,relative-to=jboss.home.dir,credential-reference={clear-text=123PIPPOBAUDO},type=JKS)
      /subsystem=elytron/key-store=twoWayTS:add(path=jdg.truststore.jks,relative-to=jboss.home.dir,credential-reference={clear-text=123PIPPOBAUDO},type=JKS)
      /subsystem=elytron/key-manager=twoWayKM:add(key-store=twoWayKS, algorithm="SunX509", credential-reference={clear-text=123PIPPOBAUDO})
      /subsystem=elytron/trust-manager=twoWayTM:add(key-store=twoWayTS, algorithm="SunX509")
      /subsystem=elytron/server-ssl-context=SERVER_SSL_CONTEXT:add(key-manager=twoWayKM, protocols=["TLSv1.2"], trust-manager=twoWayTM, need-client-auth=true)
      batch
      /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm)
      /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=SERVER_SSL_CONTEXT)
      run-batch
      /subsystem=elytron/client-ssl-context=CLIENT_SSL_CONTEXT:add(key-manager=twoWayKM, trust-manager=twoWayTM, protocols=["TLSv1.2"])
      batch
      /subsystem=infinispan/remote-cache-container=web-sessions:add(default-remote-cluster=jdg-server-cluster, protocol-version=3.0, statistics-enabled=true, properties={infinispan.client.hotrod.auth_username=admin, infinispan.client.hotrod.auth_password=pass.1234})
      /subsystem=infinispan/remote-cache-container=web-sessions/remote-cluster=jdg-server-cluster:add(socket-bindings=[remote-jdg-server1,remote-jdg-server2])
      run-batch
      /subsystem=infinispan/remote-cache-container=web-sessions/component=security:write-attribute(name=ssl-context,value=CLIENT_SSL_CONTEXT)
      /subsystem=infinispan/cache-container=web/invalidation-cache=offload_ic:add()
      /subsystem=infinispan/cache-container=web/invalidation-cache=offload_ic/store=hotrod:add(remote-cache-container=web-sessions, fetch-state=false, preload=false, passivation=false, purge=false, shared=true)
      /subsystem=infinispan/cache-container=web/invalidation-cache=offload_ic/component=transaction:add(mode=BATCH)
      /subsystem=infinispan/cache-container=web:write-attribute(name=default-cache, value=offload_ic)
      /subsystem=elytron/filesystem-realm=clustering-realm:add(path=clustering-realm, relative-to=jboss.server.config.dir)
      /subsystem=elytron/security-domain=clustering-domain:add(default-realm=clustering-realm, permission-mapper=default-permission-mapper,realms=[{realm=clustering-realm, role-decoder=groups-to-roles}]
      /subsystem=elytron/filesystem-realm=clustering-realm:add-identity(identity=ssoUser)
      /subsystem=elytron/filesystem-realm=clustering-realm:set-password(identity=ssoUser, clear={password=ssoPassw})
      /subsystem=elytron/filesystem-realm=clustering-realm:add-identity-attribute(identity=ssoUser, name=groups, value=["User"])
      /subsystem=elytron/http-authentication-factory=clustering-http-authentication:add(security-domain=clustering-domain, http-server-mechanism-factory=global, mechanism-configurations=[{mechanism-name=FORM}])
      /subsystem=undertow/application-security-domain=other:add(http-authentication-factory=clustering-http-authentication)
      /subsystem=elytron/key-store=clustering-keystore:add(path=sso.keystore.jks, relative-to=jboss.home.dir, credential-reference={clear-text=123PIPPOBAUDO}, type=JKS)
      /subsystem=undertow/application-security-domain=other/setting=single-sign-on:add(key-store=clustering-keystore, key-alias=localhost, domain=10.0.147.38, credential-reference={clear-text=123PIPPOBAUDO})
      batch
      /subsystem=infinispan/remote-cache-container=sso_data_cc:add(default-remote-cluster=jdg-server-cluster, module=org.wildfly.clustering.web.hotrod, protocol-version=3.0, statistics-enabled=true, properties={infinispan.client.hotrod.auth_username=admin, infinispan.client.hotrod.auth_password=pass.1234})
      /subsystem=infinispan/remote-cache-container=sso_data_cc/remote-cluster=jdg-server-cluster:add(socket-bindings=[remote-jdg-server1,remote-jdg-server2])
      run-batch
      /subsystem=infinispan/remote-cache-container=sso_data_cc/component=security:write-attribute(name=ssl-context,value=CLIENT_SSL_CONTEXT)
      /subsystem=distributable-web/hotrod-single-sign-on-management=other:add(remote-cache-container=sso_data_cc)
      /subsystem=distributable-web:write-attribute(name=default-single-sign-on-management, value=other)
      /subsystem=infinispan/remote-cache-container=sso_data_cc/near-cache=invalidation:add(max-entries=1000)
      

      The error happens right after the nodes have been shut-down and restarted:

      2021-02-18 14:53:46,148 ERROR [io.undertow.request] (default task-27) UT005023: Exception handling request to /clusterbench-sso-1/j_security_check: java.lang.NullPointerException
      	at org.wildfly.clustering.web.cache@7.4.0.Beta-redhat-00001//org.wildfly.clustering.web.cache.session.ConcurrentSessionManager$ConcurrentSession.getMetaData(ConcurrentSessionManager.java:166)
      	at org.wildfly.clustering.web.undertow@7.4.0.Beta-redhat-00001//org.wildfly.clustering.web.undertow.session.DistributableSession.<init>(DistributableSession.java:72)
      	at org.wildfly.clustering.web.undertow@7.4.0.Beta-redhat-00001//org.wildfly.clustering.web.undertow.session.DistributableSessionManager.createSession(DistributableSessionManager.java:175)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.spec.ServletContextImpl.getSession(ServletContextImpl.java:932)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.spec.HttpServletRequestImpl.getSession(HttpServletRequestImpl.java:421)
      	at org.wildfly.security.elytron-web.undertow-server-servlet@1.8.0.Final-redhat-00001//org.wildfly.elytron.web.undertow.server.servlet.ElytronHttpServletExchange$3.create(ElytronHttpServletExchange.java:259)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.util.sso.DefaultSingleSignOnSession.put(DefaultSingleSignOnSession.java:98)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.auth.callback.CachedIdentityAuthorizeCallback.setAuthorized(CachedIdentityAuthorizeCallback.java:158)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.util.sso.SingleSignOnServerMechanismFactory$2.setAuthorized(SingleSignOnServerMechanismFactory.java:284)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.auth.server.ServerAuthenticationContext$1.handleOne(ServerAuthenticationContext.java:1126)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.auth.server.ServerAuthenticationContext$1.handle(ServerAuthenticationContext.java:868)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.auth.server.SecurityIdentityServerMechanismFactory$SecurityIdentityCallbackHandler.handle(SecurityIdentityServerMechanismFactory.java:121)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.util.sso.SingleSignOnServerMechanismFactory.lambda$createCallbackHandler$0(SingleSignOnServerMechanismFactory.java:300)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.form.FormAuthenticationMechanism.authorize(FormAuthenticationMechanism.java:266)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.form.FormAuthenticationMechanism.attemptAuthentication(FormAuthenticationMechanism.java:205)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.form.FormAuthenticationMechanism.evaluateRequest(FormAuthenticationMechanism.java:104)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.util.SetMechanismInformationMechanismFactory$1.evaluateRequest(SetMechanismInformationMechanismFactory.java:119)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.util.SocketAddressCallbackServerMechanismFactory$1.evaluateRequest(SocketAddressCallbackServerMechanismFactory.java:82)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.util.sso.SingleSignOnServerMechanismFactory$1.evaluateRequest(SingleSignOnServerMechanismFactory.java:95)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.auth.server.SecurityIdentityServerMechanismFactory$1.evaluateRequest(SecurityIdentityServerMechanismFactory.java:85)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.HttpAuthenticator$AuthenticationExchange.authenticate(HttpAuthenticator.java:270)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.HttpAuthenticator$AuthenticationExchange.access$800(HttpAuthenticator.java:249)
      	at org.wildfly.security.elytron-private@1.14.1.Final-redhat-00001//org.wildfly.security.http.HttpAuthenticator.authenticate(HttpAuthenticator.java:97)
      	at org.wildfly.security.elytron-web.undertow-server@1.8.0.Final-redhat-00001//org.wildfly.elytron.web.undertow.server.SecurityContextImpl.authenticate(SecurityContextImpl.java:96)
      	at org.wildfly.security.elytron-web.undertow-server-servlet@1.8.0.Final-redhat-00001//org.wildfly.elytron.web.undertow.server.servlet.ServletSecurityContextImpl.authenticate(ServletSecurityContextImpl.java:115)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:55)
      	at io.undertow.core@2.2.3.SP1-redhat-00001//io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33)
      	at io.undertow.core@2.2.3.SP1-redhat-00001//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
      	at io.undertow.core@2.2.3.SP1-redhat-00001//io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:53)
      	at io.undertow.core@2.2.3.SP1-redhat-00001//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:59)
      	at io.undertow.core@2.2.3.SP1-redhat-00001//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
      	at org.wildfly.security.elytron-web.undertow-server-servlet@1.8.0.Final-redhat-00001//org.wildfly.elytron.web.undertow.server.servlet.CleanUpHandler.handleRequest(CleanUpHandler.java:38)
      	at io.undertow.core@2.2.3.SP1-redhat-00001//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
      	at org.wildfly.extension.undertow@7.4.0.Beta-redhat-00001//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
      	at io.undertow.core@2.2.3.SP1-redhat-00001//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
      	at org.wildfly.extension.undertow@7.4.0.Beta-redhat-00001//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
      	at io.undertow.core@2.2.3.SP1-redhat-00001//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
      	at org.wildfly.extension.undertow@7.4.0.Beta-redhat-00001//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
      	at org.wildfly.extension.undertow@7.4.0.Beta-redhat-00001//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
      	at org.wildfly.extension.undertow@7.4.0.Beta-redhat-00001//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
      	at org.wildfly.extension.undertow@7.4.0.Beta-redhat-00001//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
      	at io.undertow.servlet@2.2.3.SP1-redhat-00001//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
      	at io.undertow.core@2.2.3.SP1-redhat-00001//io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
      	at io.undertow.core@2.2.3.SP1-redhat-00001//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:841)
      	at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
      	at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
      	at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
      	at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1348)
      	at org.jboss.xnio@3.8.4.Final-redhat-00001//org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1280)
      	at java.base/java.lang.Thread.run(Thread.java:834)
      

      The error doesn't affect the client significantly;

      Complete run here:

      Find attached the logs for the EAP and JDG nodes;

              Unassigned Unassigned
              tborgato@redhat.com Tommaso Borgato
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: