Sonarqube integration with Active Directory

Template for a good bug report, formatted with Markdown:

  • versions used (SonarQube, Scanner, Plugin, and any relevant extension)

SonarQube version: SonarQube 8.0
Database: AzureSQL
Connectivity : Active Directory

scenario : With Active Directory Authentication. :

Any help would be highly appreciable.

Unable to establish the connectivity. the following errors :

2019.12.05 11:06:45 INFO web[o.s.p.ProcessEntryPoint] Starting web
2019.12.05 11:06:46 INFO web[o.a.t.u.n.NioSelectorPool] Using a shared selector for servlet write/read
2019.12.05 11:06:47 INFO web[o.s.c.e.CoreExtensionsLoader] Loaded core extensions: developer-edition, developer-scanner, developer-server, license
2019.12.05 11:06:47 INFO web[o.e.p.PluginsService] no modules loaded
2019.12.05 11:06:47 INFO web[o.e.p.PluginsService] loaded plugin [org.elasticsearch.join.ParentJoinPlugin]
2019.12.05 11:06:47 INFO web[o.e.p.PluginsService] loaded plugin [org.elasticsearch.percolator.PercolatorPlugin]
2019.12.05 11:06:47 INFO web[o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2019.12.05 11:06:49 INFO web[o.s.s.e.EsClientProvider] Connected to local Elasticsearch: [127.0.0.1:9002]
2019.12.05 11:06:49 INFO web[o.s.s.p.LogServerVersion] SonarQube Server / 8.0.0.29455 / f869d840f12a4dfa69533e17d3b27558617a7f82
2019.12.05 11:06:49 INFO web[o.sonar.db.Database] Create JDBC data source for jdbc:sqlserver://...database.windows.net:1433;databaseName=sonar;User=sonar@abc.com;Password=**;encrypt=true;trustServerCertificate=false;hostNameInCertificate=.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword
2019.12.05 11:06:49 ERROR web[o.s.s.p.PlatformImpl] Web server startup failed
java.lang.IllegalStateException: Fail to connect to database
at org.sonar.db.DefaultDatabase.start(DefaultDatabase.java:87)
at org.sonar.core.platform.StartableCloseableSafeLifecyleStrategy.start(StartableCloseableSafeLifecyleStrategy.java:40)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)
at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)
at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)
at org.picocontainer.behaviors.Stored.start(Stored.java:110)
at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)
at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)
at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:90)
at org.sonar.server.platform.platformlevel.PlatformLevel1.start(PlatformLevel1.java:164)
at org.sonar.server.platform.PlatformImpl.start(PlatformImpl.java:213)
at org.sonar.server.platform.PlatformImpl.startLevel1Container(PlatformImpl.java:172)
at org.sonar.server.platform.PlatformImpl.init(PlatformImpl.java:86)
at org.sonar.server.platform.web.PlatformServletContextListener.contextInitialized(PlatformServletContextListener.java:43)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4770)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5236)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1423)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1413)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalStateException: Can not connect to database. Please check connectivity and settings (see the properties prefixed by ‘sonar.jdbc.’).
at org.sonar.db.DefaultDatabase.checkConnection(DefaultDatabase.java:119)
at org.sonar.db.DefaultDatabase.start(DefaultDatabase.java:84)
… 24 common frames omitted
Caused by: java.sql.SQLException: Cannot create PoolableConnectionFactory (Both “User” (or “UserName”) and “Password” connection string keywords must be specified, if “Authentication=ActiveDirectoryPassword”.)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2385)
at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2110)
at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563)
at org.sonar.db.profiling.NullConnectionInterceptor.getConnection(NullConnectionInterceptor.java:31)
at org.sonar.db.profiling.ProfiledDataSource.getConnection(ProfiledDataSource.java:317)
at org.sonar.db.DefaultDatabase.checkConnection(DefaultDatabase.java:116)
… 25 common frames omitted
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Both “User” (or “UserName”) and “Password” connection string keywords must be specified, if “Authentication=ActiveDirectoryPassword”.
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1606)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1162)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:735)
at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:53)
at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:291)
at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2395)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2381)
… 30 common frames omitted
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][[timer]]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/java.lang.Thread.sleep(Native Method)
app//org.elasticsearch.threadpool.ThreadPool$CachedTimeThread.run(ThreadPool.java:574)
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][scheduler][T#1]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
java.base@11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
java.base@11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11/java.lang.Thread.run(Thread.java:834)
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][transport_worker][T#1]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:339)
java.base@11/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:167)
java.base@11/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
java.base@11/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:765)
app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:413)
app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
java.base@11/java.lang.Thread.run(Thread.java:834)
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][generic][T#1]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11/java.util.concurrent.LinkedTransferQueue.awaitMatch(LinkedTransferQueue.java:743)
java.base@11/java.util.concurrent.LinkedTransferQueue.xfer(LinkedTransferQueue.java:684)
java.base@11/java.util.concurrent.LinkedTransferQueue.take(LinkedTransferQueue.java:1366)
java.base@11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11/java.lang.Thread.run(Thread.java:834)
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][transport_worker][T#2]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:339)
java.base@11/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:167)
java.base@11/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
java.base@11/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:765)
app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:413)
app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
java.base@11/java.lang.Thread.run(Thread.java:834)
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][transport_worker][T#3]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:339)
java.base@11/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:167)
java.base@11/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
java.base@11/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:765)
app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:413)
app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
java.base@11/java.lang.Thread.run(Thread.java:834)
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][transport_worker][T#4]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:339)
java.base@11/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:167)
java.base@11/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
java.base@11/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:765)
app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:413)
app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
java.base@11/java.lang.Thread.run(Thread.java:834)
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][transport_worker][T#5]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:339)
java.base@11/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:167)
java.base@11/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
java.base@11/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:765)
app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:413)
app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
java.base@11/java.lang.Thread.run(Thread.java:834)
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][transport_worker][T#6]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:339)
java.base@11/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:167)
java.base@11/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
java.base@11/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:765)
app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:413)
app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
java.base@11/java.lang.Thread.run(Thread.java:834)
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][transport_worker][T#7]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:339)
java.base@11/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:167)
java.base@11/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
java.base@11/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:765)
app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:413)
app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
java.base@11/java.lang.Thread.run(Thread.java:834)
2019.12.05 11:06:49 WARN web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[client][transport_worker][T#8]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
java.base@11/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:339)
java.base@11/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:167)
java.base@11/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
java.base@11/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:765)
app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:413)
app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
java.base@11/java.lang.Thread.run(Thread.java:834)
2019.12.05 11:06:49 INFO web[o.s.s.a.EmbeddedTomcat] HTTP connector enabled on port 9000
2019.12.05 11:06:49 INFO web[o.s.p.ProcessEntryPoint] Hard stopping process

  • error observed (wrap logs/code around triple quote ``` for proper formatting)
  • steps to reproduce
  • potential workaround

P.S.: use the #bug:fault sub-category if you’re hitting a specific crash/error , or the #bug:fp sub-category for rules-related behaviour

Welcome :slight_smile:

there’s a troubleshooting guide in the sonarqube docs.
Seems it should be more prominent on doc main site with an own entry like Frequently Asked Questions.
Also it’s not that difficult to search for ‘Error | Exception | Fail(ed) …’ in a log :wink:

It’s maybe related to AD connectivity, but not because of Sonarqube, there’s a problem with your database connection. We’re also using MSSQL, but with integrated authentication like that
jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;
Don’t know how and if authentication for jdbc connection works via AD.
AFAIK the Sonarqube AD connection applies only when user logs in to Sonarqube server
and for the mapping of AD groups to Sonarqube groups.

Gilbert

You saw the exception:

ATM we also have issues with MS SQL database connection, see Start SonarQube 8.0 as service: problem with MS SQL integrated authentication

I believe this exception comes from MSSQL, not from Sonarqube.

Seems there is a problem with the jdbc connection string.