Hello,
I am trying to get BitBucket to run over SSL. I have updated my bitbucket.properties file with the following lines:
server.port=8443
server.secure=true
server.scheme=https
server.ssl.enabled=true
server.ssl.client-auth=want
server.ssl.protocol=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
server.ssl.key-store=/root/.keystore
server.ssl.key-store-password=changeit
server.ssl.key-password=changeit
When I go to restart BitBucket, it fails with the following error:
2018-07-13 11:51:43,678 INFO [spring-startup] c.a.s.internal.home.HomeLockAcquirer Releasing lock on /var/atlassian/application-data/bitbucket 2018-07-13 11:51:43,682 ERROR [spring-startup] c.a.j.s.w.s.JohnsonDispatcherServlet SpringMVC dispatcher [springMvc] could not be started org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'crowdAliasDao': Unsatisfied dependency expressed through method 'setSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sharedHomeLockAcquirer' defined in class path resource [stash-context.xml]: Cannot resolve reference to bean 'licenseHelper' while setting constructor argument; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'licenseHelper' defined in URL [jar:file:/opt/atlassian/bitbucket/5.10.1/app/WEB-INF/lib/bitbucket-service-impl-5.10.1.jar!/com/atlassian/stash/internal/license/DefaultLicenseHelper.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'databaseSupplier': Invocation of init method failed; nested exception is org.springframework.dao.DataRetrievalFailureException: Could not load database metadata; nested exception is java.sql.SQLException: bitbucket - Interrupted during connection acquisition at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:667) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) at javax.servlet.GenericServlet.init(GenericServlet.java:158) at java.lang.Thread.run(Thread.java:748) ... 18 frames trimmed Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sharedHomeLockAcquirer' defined in class path resource [stash-context.xml]: Cannot resolve reference to bean 'licenseHelper' while setting constructor argument; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'licenseHelper' defined in URL [jar:file:/opt/atlassian/bitbucket/5.10.1/app/WEB-INF/lib/bitbucket-service-impl-5.10.1.jar!/com/atlassian/stash/internal/license/DefaultLicenseHelper.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'databaseSupplier': Invocation of init method failed; nested exception is org.springframework.dao.DataRetrievalFailureException: Could not load database metadata; nested exception is java.sql.SQLException: bitbucket - Interrupted during connection acquisition at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359) ... 5 common frames omitted Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'licenseHelper' defined in URL [jar:file:/opt/atlassian/bitbucket/5.10.1/app/WEB-INF/lib/bitbucket-service-impl-5.10.1.jar!/com/atlassian/stash/internal/license/DefaultLicenseHelper.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'databaseSupplier': Invocation of init method failed; nested exception is org.springframework.dao.DataRetrievalFailureException: Could not load database metadata; nested exception is java.sql.SQLException: bitbucket - Interrupted during connection acquisition at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ... 5 common frames omitted Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'databaseSupplier': Invocation of init method failed; nested exception is org.springframework.dao.DataRetrievalFailureException: Could not load database metadata; nested exception is java.sql.SQLException: bitbucket - Interrupted during connection acquisition at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137) ... 5 common frames omitted Caused by: org.springframework.dao.DataRetrievalFailureException: Could not load database metadata; nested exception is java.sql.SQLException: bitbucket - Interrupted during connection acquisition at com.atlassian.stash.internal.db.MetadataDatabaseFactory.create(MetadataDatabaseFactory.java:65) at com.atlassian.stash.internal.db.MetadataDatabaseFactory.create(MetadataDatabaseFactory.java:76) at com.atlassian.stash.internal.db.DefaultDatabaseSupplier$1.create(DefaultDatabaseSupplier.java:73) at com.atlassian.stash.internal.db.DefaultDatabaseSupplier$1.create(DefaultDatabaseSupplier.java:69) at com.atlassian.util.concurrent.ResettableLazyReference$InternalReference.create(ResettableLazyReference.java:179) at com.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:325) at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:143) at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112) at com.atlassian.util.concurrent.ResettableLazyReference.get(ResettableLazyReference.java:92) at com.atlassian.stash.internal.db.DefaultDatabaseSupplier.get(DefaultDatabaseSupplier.java:82) at com.atlassian.stash.internal.db.DefaultDatabaseSupplier.validate(DefaultDatabaseSupplier.java:144) ... 5 common frames omitted Caused by: java.sql.SQLException: bitbucket - Interrupted during connection acquisition at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:187) at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:149) at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:85) at com.atlassian.stash.internal.hikari.ExtendedHikariDataSource.getConnection(ExtendedHikariDataSource.java:125) at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.getTargetConnection(LazyConnectionDataSourceProxy.java:403) at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.invoke(LazyConnectionDataSourceProxy.java:376) at com.atlassian.stash.internal.db.MetadataDatabaseFactory.create(MetadataDatabaseFactory.java:6
Has anyone seen this error message before?
Hi,
The "server.ssl.protocol=" is expecting a single protocol type rather than a list of versions. In this case, the error provided so far is usually just a symptom of an earlier error, particularly:
2018-07-13 11:51:39,193 ERROR [main] o.a.catalina.core.StandardService Failed to start connector [Connector[HTTP/1.1-8443]] org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-8443]] ... Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed ... Caused by: java.lang.IllegalArgumentException: TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 SSLContext not available ... Caused by: java.security.NoSuchAlgorithmException: TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 SSLContext not available
To resolve this issue, simply edit the protocol line to only include "TLS" as shown below.
server.ssl.protocol=TLS
Cheers!