JBoss shutdown thread is stalled by LDAP Connection.readReply

Solution Unverified - Updated -

Issue

  • The JON agent is shutting down the HTTP listener but failing to shutdown the process on the server
    Thread dump shows the shutdown thread is blocked by a call to com.sun.jndi.ldap.Connection.readReply
"JBoss Shutdown Hook" daemon prio=10 tid=0x00002aaac473f800 nid=0x6689 waiting for monitor entry [0x00000000555dc000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.jboss.remoting.transport.socket.ServerThread.shutdown(ServerThread.java:344)
    - waiting to lock <0x000000078c7210f0> (a org.jboss.remoting.transport.socket.ServerThread)
    at org.jboss.remoting.transport.socket.SocketServerInvoker.cleanup(SocketServerInvoker.java:473)
    - locked <0x000000078a2d7970> (a org.jboss.remoting.transport.socket.LRUPool)
    at org.jboss.remoting.transport.socket.SocketServerInvoker.stop(SocketServerInvoker.java:427)
    - locked <0x000000078a511200> (a org.jboss.remoting.transport.socket.SocketServerInvoker)
    at org.jboss.remoting.transport.Connector.stop(Connector.java:1175)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        .. .. ..
    at org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:339)
    at org.jboss.bootstrap.AbstractServerImpl.shutdownServer(AbstractServerImpl.java:571)
    at org.jboss.bootstrap.AbstractServerImpl$ShutdownHook.run(AbstractServerImpl.java:909)

"WorkerThread#1[10.20.30.40:59616]" prio=10 tid=0x00002aaac4477000 nid=0x248c in Object.wait() [0x00000000542cb000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at com.sun.jndi.ldap.Connection.readReply(Connection.java:438)
    - locked <0x00000007910cc110> (a com.sun.jndi.ldap.LdapRequest)
    at com.sun.jndi.ldap.LdapClient.ldapBind(LdapClient.java:338)
    - locked <0x00000007910a2640> (a com.sun.jndi.ldap.LdapClient)
    at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:190)
    - locked <0x00000007910a2640> (a com.sun.jndi.ldap.LdapClient)
    at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2720)
    at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:296)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193)
    at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:136)
    at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:66)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    at javax.naming.InitialContext.init(InitialContext.java:223)
    at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:134)
    at org.jboss.security.auth.spi.LdapExtLoginModule.constructInitialLdapContext(LdapExtLoginModule.java:646)
    at org.jboss.security.auth.spi.LdapExtLoginModule.createLdapInitContext(LdapExtLoginModule.java:424)
    at org.jboss.security.auth.spi.LdapExtLoginModule.validatePassword(LdapExtLoginModule.java:308)
    at org.jboss.security.auth.spi.UsernamePasswordLoginModule.login(UsernamePasswordLoginModule.java:249)
    at sun.reflect.GeneratedMethodAccessor329.invoke(Unknown Source)
        .. .. ..
    at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
    at org.jboss.profileservice.remoting.ProfileServiceInvocationHandler.invoke(ProfileServiceInvocationHandler.java:99)
    at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:967)
    at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:791)
    - locked <0x000000078c7210f0> (a org.jboss.remoting.transport.socket.ServerThread)
    at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:744)
    at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:548)
    at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234)
  • The Host Controller process does not terminate completely after a shutdown CLI command has been issued using ldap-security-realm in the legacy way.
shutdown --host=master --suspend-timeout=5

Environment

  • JBoss Operations Network (JON) 3.1.2
  • JBoss Enterprise Application Platform (EAP)
    • 5.1.2
    • 7.3

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content