I'm trying to upgrade our sandbox/test instance of Stash from 2.1.2 (what Prod is currently on) to the 2.2.0 release, and after the upgrade (which on our test instance is merely unzipping the new 2.2.0 folder, stopping the old release, updating the service wrapper in /etc/init.d, and starting the new version) the web UI shows the following:
A fatal error has occurred
The following problem occurred which prevents Atlassian Stash from starting correctly:
- The database, as currently configured, is not accessible.
The stash log shows the following:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'crowdUserDao' defined in class path resource [crowd-spi-context.xml]: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.springframework.transaction.PlatformTransactionManager]: : Error creating bean with name 'pluginConfiguration' defined in class path resource [stash-context.xml]: Cannot resolve reference to bean 'pluginPersistentStateStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginPersistentStateStore' defined in class path resource [stash-context.xml]: Cannot create inner bean 'com.atlassian.stash.internal.plugin.DefaultPluginPersistentStateStore#79720870' of type [com.atlassian.stash.internal.plugin.DefaultPluginPersistentStateStore] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.atlassian.stash.internal.plugin.DefaultPluginPersistentStateStore#79720870' defined in class path resource [stash-context.xml]: Cannot resolve reference to bean 'pluginStateDao' while setting constructor argument; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pluginStateDao' defined in URL [jar:file:/opt/atlassian/atlassian-stash-2.2.0/atlassian-stash/WEB-INF/lib/stash-dao-impl-2.2.0.jar!/com/atlassian/stash/internal/plugin/HibernatePluginStateDao.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.SessionFactory]: : Error creating bean with name 'databaseService': Invocation of init method failed; nested exception is com.atlassian.util.concurrent.LazyReference$InitializationException: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:sqlserver://XXX;databaseName=XXX;, username = XXX. Terminating connection pool. Original Exception: ------
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'XXX'. ClientConnectionId:656e6fe7-88c3-4d39-9e70-4642c5135447
The stash-config.properties was migrated to jdbc in the 2.1.x upgrade, and is the following (anonymized of course):
jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://XXX;databaseName=XXX
jdbc.user=XXX
jdbc.password=XXX
If I shut Stash 2.2.0 down and go to the 2.1.2 folder, I can run start-stash.sh in the bin subfolder and it starts right up. I switch back to 2.2.0 and I go back to "login failed". Since I can go back to 2.1.2 with the same jdbc values and the same file, I don't feel it's likely the ms-sql account is locked out.
Did something change in 2.2.0? Our username and password contains special characters consisting from the pool of !
@#$%^&*() (the shift-number values on a US keyboard). Could 2.2.0 not be thrilled with our characters now?