Upgrading from 6.2.3 to 6.8.1 and issues with collation
Asked by Bjorn Harvold:

Hi Team Atlassian,

I upgraded to Atlassian 6.8.1 today and saw a lot of collation errors in the catalina.out log when I started it up again for the first time. My db collation was set to utf8_general_ci but it looks like Bamboo wants it to be utf8_bin. So I changed the db and all the tables to utf8_bin.

Now I get this error in the log:

2019-03-18 14:39:43,665 ERROR \[http-nio-8089-exec-7\] \[ThrowableExceptionMapper\] Uncaught exception thrown by REST service: bundle \[com.atlassian.troubleshooting.plugin-bamboo\]  
com.atlassian.activeobjects.internal.ActiveObjectsInitException: bundle \[com.atlassian.troubleshooting.plugin-bamboo\]  
at com.atlassian.activeobjects.osgi.TenantAwareActiveObjects$1$1$1.call(TenantAwareActiveObjects.java:95)  
at com.atlassian.activeobjects.osgi.TenantAwareActiveObjects$1$1$1.call(TenantAwareActiveObjects.java:86)  
at com.atlassian.sal.core.executor.ThreadLocalDelegateCallable.call(ThreadLocalDelegateCallable.java:38)  
at java.util.concurrent.FutureTask.run(FutureTask.java:266)  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)  
at java.lang.Thread.run(Thread.java:748)  
Caused by: java.lang.RuntimeException: Could not read fields for table AO_4789DD_HEALTH_CHECK_STATUS  
at net.java.ao.schema.helper.DatabaseMetaDataReaderImpl.getFields(DatabaseMetaDataReaderImpl.java:139)  
at net.java.ao.schema.ddl.SchemaReader.readFields(SchemaReader.java:126)  
at net.java.ao.schema.ddl.SchemaReader.readTable(SchemaReader.java:110)  
at net.java.ao.schema.ddl.SchemaReader.access$000(SchemaReader.java:62)  
at net.java.ao.schema.ddl.SchemaReader$1.apply(SchemaReader.java:99)  
at net.java.ao.schema.ddl.SchemaReader$1.apply(SchemaReader.java:97)  
at com.google.common.collect.Iterators$8.transform(Iterators.java:799)  
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)  
at com.google.common.collect.Iterators.addAll(Iterators.java:362)  
at com.google.common.collect.Lists.newArrayList(Lists.java:160)  
at com.google.common.collect.Lists.newArrayList(Lists.java:144)  
at net.java.ao.schema.ddl.SchemaReader.readSchema(SchemaReader.java:97)  
at net.java.ao.schema.ddl.SchemaReader.readSchema(SchemaReader.java:88)  
at net.java.ao.schema.ddl.SchemaReader.readSchema(SchemaReader.java:81)  
at net.java.ao.schema.SchemaGenerator.generateImpl(SchemaGenerator.java:107)  
at net.java.ao.schema.SchemaGenerator.migrate(SchemaGenerator.java:84)  
at net.java.ao.EntityManager.migrate(EntityManager.java:128)  
at com.atlassian.activeobjects.internal.EntityManagedActiveObjects.migrate(EntityManagedActiveObjects.java:51)  
at com.atlassian.activeobjects.internal.AbstractActiveObjectsFactory$1.doInTransaction(AbstractActiveObjectsFactory.java:77)  
at com.atlassian.activeobjects.internal.AbstractActiveObjectsFactory$1.doInTransaction(AbstractActiveObjectsFactory.java:72)  
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:21)  
at com.atlassian.sal.spring.component.SpringHostContextAccessor$1.doInTransaction(SpringHostContextAccessor.java:71)  
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)  
at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:68)  
at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
at java.lang.reflect.Method.invoke(Method.java:498)  
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)  
at com.sun.proxy.$Proxy409.doInTransaction(Unknown Source)  
at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
at java.lang.reflect.Method.invoke(Method.java:498)  
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)  
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)  
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)  
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)  
at com.sun.proxy.$Proxy684.doInTransaction(Unknown Source)  
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:18)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
at java.lang.reflect.Method.invoke(Method.java:498)  
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)  
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)  
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)  
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)  
at com.sun.proxy.$Proxy784.execute(Unknown Source)  
at com.atlassian.activeobjects.internal.AbstractActiveObjectsFactory.create(AbstractActiveObjectsFactory.java:72)  
at com.atlassian.activeobjects.internal.DelegatingActiveObjectsFactory.create(DelegatingActiveObjectsFactory.java:32)  
at com.atlassian.activeobjects.osgi.TenantAwareActiveObjects$1$1$1.call(TenantAwareActiveObjects.java:91)  
... 6 more  
Caused by: java.sql.SQLSyntaxErrorException: Unknown table 'AO_4789DD_HEALTH_CHECK_STATUS' in information_schema  
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)  
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)  
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)  
at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1218)  
at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:2950)  
at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:2938)  
at com.mysql.cj.jdbc.IterateBlock.doForAll(IterateBlock.java:56)  
at com.mysql.cj.jdbc.DatabaseMetaData.getPrimaryKeys(DatabaseMetaData.java:2991)  
at com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData.getPrimaryKeys(NewProxyDatabaseMetaData.java:3222)  
at net.java.ao.schema.helper.DatabaseMetaDataReaderImpl.getFields(DatabaseMetaDataReaderImpl.java:127)  
... 79 more

Any idea what this is?


Answers:
author: Bjorn Harvold
body: Hi Rafael,

I am using MySQL.

I used ALTER database and ALTER table command for each individual table.

I started over with a backup of my DB. The real issue was the mysql driver. Bamboo does not like the latest v8.x driver. When I reverted to 5.x driver there are not errors or complaints in the log. So my collation is still utf8_general_ci and everything works as it should.

I found that you have an open ticket with Confluence as having the same problem and the solution was to downgrade the driver.

Cheers,

Bjorn


author: Rafael Pinto Sperafico
body: Hi [@Bjorn Harvold](/t5/user/viewprofilepage/user-id/712360) ,

Could you please inform which command(s) have you used to change database and tables from *utf8_general_ci* to *utf8_bin*?

Also, what is the database (*MySQL, PostgreSQL, MSSQL, Oracle* ) and driver (*\<bamboo-install\>/lib*) you are using to connect to it?

Last but not least, since you mentioned about upgrading Bamboo, could you please review if there is any *default_schema* property defined in *\<bamboo-home\>/bamboo.cfg.xml* ? Reason for inquire - <https://jira.atlassian.com/browse/BAM-18610>

Kind regards,  
Rafael