Unable to establish LDAP connectivity with Sonarqube DCE 9.5.0

Sonarqube DCE is deployed using docker-compose version 9.5.0. Kindly help to fix this behaviour. FYI - I have already tested the setup by disabling the LDAP related configs and it works fine.

Sharing docker-compose snippet for reference.

---
version: "3"
services:
  sonarqube:
    image: sonarqube-dc:9.5.0-datacenter-app
    container_name: "sonarqube-app"
    network_mode: host
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://xxxx
      SONAR_JDBC_USERNAME: xx
      SONAR_JDBC_PASSWORD: xxx

      SONAR_CLUSTER_NAME: sonarqube-dev
      SONAR_WEB_PORT: 9000
      SONAR_CLUSTER_SEARCH_HOSTS: "listofips"
      SONAR_CLUSTER_HOSTS: "listofips"

      SONAR_AUTH_JWTBASE64HS256SECRET: xxx
      SONAR_LOG_LEVEL: DEBUG
      SONAR_WEB_ACCESSLOGS_PATTERN: '%i{X-Forwarded-For} %l %u [%t] "%r" %s %b "%i{Referer}" "%i{User-Agent}" "%reqAttribute{ID}"'
      SONAR_WEB_ACCESSLOGS_ENABLE: 'true'
      SONAR_LOG_MAXFILES: '1'

      http_proxy: proxy.com
      https_proxy: proxy.com
      HTTP_PROXYHOST: proxy.com
      HTTP_PROXYPORT: port#
      HTTPS_PROXYHOST: proxy.com
      HTTPS_PROXYPORT: port#

      SONAR_SECURITY_REALM: LDAP
      LDAP_URL: ldap://ldap.com:1234
      LDAP_BINDDN: CN=xx,OU=xx,OU=xx,OU=xx,DC=xx,DC=xx,DC=net
      LDAP_BINDPASSWORD: xxxxxxy
      LDAP_USER_BASEDN: dc=xx,dc=net
      LDAP_USER_REQUEST: (&(sAMAccountName={0})(|(memberOf=CN=xx,OU=Users,OU=PH,OU=xx,DC=EU,DC=xx,DC=net)))
      LDAP_GROUP_BASEDN: dc=xx,dc=net
      LDAP_GROUP_REQUEST: (&(objectClass=group)(member={dn}))
      LDAP_GROUP_IDATTRIBUTE: sAMAccountName
      LDAP_USER_REALNAMEATTRIBUTE: displayName

    ulimits:
      nofile:
        soft: 262144
        hard: 262144
    volumes:
      - /opt/tools/sonarqube/extensions/plugins:/opt/sonarqube/extensions/plugins
      - /opt/tools/sonarqube/logs:/opt/sonarqube/logs
      - /opt/tools/sonarqube/data:/opt/sonarqube/data
      - /opt/tools/sonarqube/conf/sonar.properties:/opt/sonarqube/conf/sonar.properties```

Error Details -

2023.03.08 12:17:48 ERROR sonarqube-d80c5682-723a-4cf2-b2c1-24c9b2b82310 web[][o.s.s.p.Platform] Background initialization failed. Stopping SonarQube
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.ws.WebServiceEngine': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.authentication.ws.AuthenticationWs': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.authentication.ws.LoginAction': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.authentication.CredentialsAuthentication': Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.authentication.CredentialsExternalAuthentication': Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.user.SecurityRealmFactory': Initialization of bean failed; nested exception is org.sonar.api.utils.SonarException: Security realm fails to start: Unable to open LDAP connection
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800)
        at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229)
Caused by: org.sonar.api.utils.SonarException: Security realm fails to start: Unable to open LDAP connection
        at org.sonar.server.user.SecurityRealmFactory.start(SecurityRealmFactory.java:98)
        at org.sonar.core.platform.StartableBeanPostProcessor.postProcessBeforeInitialization(StartableBeanPostProcessor.java:33)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
        ... 94 common frames omitted
Caused by: org.sonar.auth.ldap.LdapException: Unable to open LDAP connection
        at org.sonar.auth.ldap.LdapContextFactory.testConnection(LdapContextFactory.java:214)
        at org.sonar.auth.ldap.LdapRealm.init(LdapRealm.java:63)
        at org.sonar.server.user.SecurityRealmFactory.start(SecurityRealmFactory.java:92)
        ... 98 common frames omitted
Caused by: javax.naming.CommunicationException: ldap.server.net:3268
        at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:252)
        at java.naming/com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:137)
        at java.naming/com.sun.jndi.ldap.LdapClientFactory.createPooledConnection(LdapClientFactory.java:64)
        at java.naming/com.sun.jndi.ldap.pool.Connections.<init>(Connections.java:114)
        at java.naming/com.sun.jndi.ldap.pool.Pool.getPooledConnection(Pool.java:136)
        at java.naming/com.sun.jndi.ldap.LdapPoolManager.getLdapClient(LdapPoolManager.java:340)
        at java.naming/com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1608)
        at java.naming/com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2847)
        at java.naming/com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:348)
        at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxFromUrl(LdapCtxFactory.java:262)
        at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:226)
        at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:280)
        at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:185)
        at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:115)
        at java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:730)
        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 org.sonar.auth.ldap.LdapContextFactory.createInitialDirContext(LdapContextFactory.java:137)
        at org.sonar.auth.ldap.LdapContextFactory.createBindContext(LdapContextFactory.java:95)
        at org.sonar.auth.ldap.LdapContextFactory.testConnection(LdapContextFactory.java:210)
        ... 100 common frames omitted
Caused by: java.net.UnknownHostException: ldap.server.net
        at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:229)
        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.base/java.net.Socket.connect(Socket.java:609)
        at java.base/java.net.Socket.connect(Socket.java:558)
        at java.base/java.net.Socket.<init>(Socket.java:454)
        at java.base/java.net.Socket.<init>(Socket.java:231)
        at java.naming/com.sun.jndi.ldap.Connection.createSocket(Connection.java:345)

Could someone please look into this ? Also let me know if any more details are needed.

Hey there.

This is a community forum, not a support forum. Please review our FAQ.

And, as a DCE user, you certainly have access to SonarSource commercial support. I would suggest reaching out through that channel. If you don’t know how to access it – contact your account rep.