Skip to content

Conversation

vladak
Copy link
Member

@vladak vladak commented Aug 13, 2024

When investigating why some of the LDAP servers are down, I noticed the NamingException is not logged in connect(). This change fixes that.

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Aug 13, 2024
@vladak vladak merged commit 591f40d into oracle:master Aug 13, 2024
9 checks passed
@vladak vladak deleted the ldap_server_log_naming_exc branch August 13, 2024 09:42
@vladak
Copy link
Member Author

vladak commented Aug 13, 2024

Example of such exception logged:

13-Aug-2024 09:17:00.168 WARNING [Catalina-utility-1] opengrok.auth.plugin.ldap.LdapServer.connect LDAP server ldaps://ldap.example.com is not responding
        javax.naming.CommunicationException: ldap.example.com:636 [Root exception is javax.net.ssl.SSLException: Connection reset]
                at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:237)
                at java.naming/com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:137)
                at java.naming/com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1610)
                at java.naming/com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2752)
                at java.naming/com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:320)
                at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:192)
                at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:210)
                at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:153)
                at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:83)
                at java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:719)
                at java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
                at java.naming/javax.naming.InitialContext.init(InitialContext.java:236)
                at java.naming/javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
                at opengrok.auth.plugin.ldap.LdapServer.connect(LdapServer.java:290)
                at opengrok.auth.plugin.ldap.LdapServer.isWorking(LdapServer.java:253)
                at opengrok.auth.plugin.ldap.LdapFacade.prepareServers(LdapFacade.java:201)
                at opengrok.auth.plugin.ldap.LdapFacade.<init>(LdapFacade.java:187)
                at opengrok.auth.plugin.AbstractLdapPlugin.load(AbstractLdapPlugin.java:134)
                at opengrok.auth.plugin.LdapUserPlugin.load(LdapUserPlugin.java:91)
                at org.opengrok.indexer.authorization.AuthorizationPlugin.load(AuthorizationPlugin.java:118)
                at org.opengrok.indexer.authorization.AuthorizationStack.load(AuthorizationStack.java:146)
                at org.opengrok.indexer.authorization.AuthorizationFramework.loadAllPlugins(AuthorizationFramework.java:318)
                at org.opengrok.indexer.authorization.AuthorizationFramework.afterReload(AuthorizationFramework.java:378)
                at org.opengrok.indexer.framework.PluginFramework.reload(PluginFramework.java:399)
                at org.opengrok.web.WebappListener.contextInitialized(WebappListener.java:110)
                at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4422)
                at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4860)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
                at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
                at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
                at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:712)
                at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:975)
                at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1952)
                at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
                at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
                at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
                at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:776)
                at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426)
                at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1708)
                at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:305)
                at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)
                at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1098)
                at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1301)
                at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1305)
                at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1283)
                at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
                at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
                at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
                at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
                at java.base/java.lang.Thread.run(Thread.java:834)
        Caused by: javax.net.ssl.SSLException: Connection reset
                at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:127)
                at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:320)
                at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:263)
                at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:258)
                at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:137)
                at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1144)
                at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1055)
                at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:395)
                at java.naming/com.sun.jndi.ldap.Connection.createSocket(Connection.java:348)
                at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:216)
                ... 52 more
                Suppressed: java.net.SocketException: Broken pipe (Write failed)
                        at java.base/java.net.SocketOutputStream.socketWrite0(Native Method)
                        at java.base/java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:110)
                        at java.base/java.net.SocketOutputStream.write(SocketOutputStream.java:150)
                        at java.base/sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81)
                        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:351)
                        ... 60 more
        Caused by: java.net.SocketException: Connection reset
                at java.base/java.net.SocketInputStream.read(SocketInputStream.java:186)
                at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
                at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:448)
                at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:165)
                at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:108)
                ... 57 more

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
authorization OCA Verified All contributors have signed the Oracle Contributor Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant