ActiveObjects fails to detect existing tables or create tables with MySQL JDBC Connector 8.0.11

Description

Summary

The ActiveObjects library appears to have incompatibilities with MySQL JDBC Connector 8.0.11. It's unable to detect existing AO_ tables (after upgrade) or create new AO_ tables (for new installations, encountered at least once during Bamboo reproduction attempts). Looks like it's targeting the wrong database / schema.

Environment

  • Bamboo 6.5.0

  • Bitbucket 5.10.0

  • Fisheye/Crucible 4.5.3

  • MySQL 5.7

  • MySQL JDBC Connector 8.0.11

  • Other products unconfirmed / tested.

Steps to Reproduce

Bamboo
  1. Create two MySQL databases (grant permissions to both databases for the same user)

  2. Install Bamboo 6.5.0

  3. Copy the MySQL JDBC Connector 8 into <bamboo-install>/lib

  4. Start Bamboo and install it using one of the databases from Step 1

  5. Immediately there should be errors referencing the AO_2F1435_HEALTH_CHECK_STATUS table in the logs.

  6. Create a plan and perform a build

  7. Click the build result -> Internal Server Error regarding AO_7A45FB_AOTRACKING_ENTRY

  8. If there isn't any errors, try restarting Bamboo. There does appear to be some level of inconsistency to reproduction.

Bitbucket
  1. Install Bitbucket 5.10

  2. Copy the MySQL JDBC Connector 8 into <bitbucket-home>/lib

  3. Start Bitbucket and install it using a MySQL database

  4. Navigate to the Bitbucket URLs (errors should have already started due to background tasks)

Fisheye/Crucible
  1. Install Fisheye/Crucible 4.5.3

  2. Copy the MySQL JDBC Connector 8 into <FISHEYE_INST>/lib

  3. Start Fisheye/Crucible and complete the setup wizard

  4. Migrate to MySQL

  5. In the administration area, try accessing the 'Smart Commits' menu option on the left

Expected Results

AO tables are found in the correct schema and created.

Actual Results

The below exception is thrown in the atlassian-bitbucket.log:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 2018-05-08 06:15:53,013 ERROR [AtlassianEvent::thread-3] @NEHORJx375x10x0 ai8cx7 172.17.0.1 "POST /setup HTTP/1.1" c.a.s.s.a.l.PatchedLifecycleManager LifecycleAware.onStart() failed for component with class 'com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirrorService' from plugin 'com.atlassian.bitbucket.server.bitbucket-mirroring-upstream' com.atlassian.activeobjects.internal.ActiveObjectsInitException: bundle [com.atlassian.bitbucket.server.bitbucket-mirroring-upstream] 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.lang.Thread.run(Thread.java:748) ... 1 frame trimmed Caused by: java.lang.RuntimeException: Could not read fields for table AO_8E6075_MIRRORING_REQUEST 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.stash.internal.sal.spi.HostContextAccessorImpl.doInTransaction(HostContextAccessorImpl.java:54) at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:18) at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26) 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.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.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57) 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 common frames omitted Caused by: java.sql.SQLSyntaxErrorException: Unknown table 'AO_8E6075_MIRRORING_REQUEST' in information_schema at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1247) at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:3149) at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:3137) at com.mysql.cj.jdbc.IterateBlock.doForAll(IterateBlock.java:56) at com.mysql.cj.jdbc.DatabaseMetaData.getPrimaryKeys(DatabaseMetaData.java:3190) at net.java.ao.schema.helper.DatabaseMetaDataReaderImpl.getFields(DatabaseMetaDataReaderImpl.java:127) ... 37 common frames omitted

  • Many other AO tables such as AO_777666_JIRA_INDEX, AO_D6A508_IMPORT_JOB and AO_92D5D5_REPO_NOTIFICATION will also present the same error without any action in the UI. Presumably background tasks.

The below exception is thrown in the atlassian-bamboo.log file:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 2018-05-08 05:47:40,348 ERROR [http-nio-8085-exec-23] [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_2F1435_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.GeneratedMethodAccessor175.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.$Proxy372.doInTransaction(Unknown Source) at sun.reflect.GeneratedMethodAccessor175.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.$Proxy611.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.$Proxy700.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: Table 'bamboo1.AO_2F1435_HEALTH_CHECK_STATUS' doesn't exist at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1247) at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:3149) at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:3137) at com.mysql.cj.jdbc.IterateBlock.doForAll(IterateBlock.java:56) at com.mysql.cj.jdbc.DatabaseMetaData.getPrimaryKeys(DatabaseMetaData.java:3190) at com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData.getPrimaryKeys(NewProxyDatabaseMetaData.java:3222) at net.java.ao.schema.helper.DatabaseMetaDataReaderImpl.getFields(DatabaseMetaDataReaderImpl.java:127) ... 79 more

Note, the schema bamboo1 is not the one defined in the JDBC connection string, it's another database:

1 <property name="hibernate.connection.url">jdbc:mysql://localhost/bambooupgrade?autoReconnect=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC&lt;/property>

If we then go and drop bamboo1 (empty db created for reproduction purposes), it starts looking in sys schemas such as information_schema instead:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 2018-05-08 05:52:46,894 ERROR [http-nio-8085-exec-18] [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_2F1435_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.GeneratedMethodAccessor171.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.$Proxy372.doInTransaction(Unknown Source) at sun.reflect.GeneratedMethodAccessor171.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.$Proxy611.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.$Proxy704.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_2F1435_HEALTH_CHECK_STATUS' in information_schema at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1247) at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:3149) at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:3137) at com.mysql.cj.jdbc.IterateBlock.doForAll(IterateBlock.java:56) at com.mysql.cj.jdbc.DatabaseMetaData.getPrimaryKeys(DatabaseMetaData.java:3190) at com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData.getPrimaryKeys(NewProxyDatabaseMetaData.java:3222) at net.java.ao.schema.helper.DatabaseMetaDataReaderImpl.getFields(DatabaseMetaDataReaderImpl.java:127) ... 79 more

The below exception is thrown in the atlassian-fisheye.log file after clicking on the 'Smart Commits' menu:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2018-05-09 09:43:12,295 WARN [qtp400103862-1073 ] org.eclipse.jetty.servlet.ServletHandler ServletHandler-doHandle - /plugins/servlet/smart-commits/config com.atlassian.activeobjects.internal.ActiveObjectsInitException: bundle [com.atlassian.fecru.plugin.commithook.fecru-commithooks-plugin] 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) [?:1.8.0_162] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_162] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_162] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_162] Caused by: java.lang.RuntimeException: Could not read fields for table AO_8219D4_COMMIT_HOOK_CONFIG 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) [?:?] ... Caused by: java.sql.SQLSyntaxErrorException: Unknown table 'AO_8219D4_COMMIT_HOOK_CONFIG' in information_schema at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1247) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:3149) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:3137) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.IterateBlock.doForAll(IterateBlock.java:56) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.DatabaseMetaData.getPrimaryKeys(DatabaseMetaData.java:3190) [mysql-connector-java-8.0.11.jar:8.0.11] at net.java.ao.schema.helper.DatabaseMetaDataReaderImpl.getFields(DatabaseMetaDataReaderImpl.java:127) [?:?] ... 67 more

The atlassian-fisheye.log also report problems with the AO_2913F5_COMMENT_ISSUE Active Objects table:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2018-05-09 09:41:12,651 WARN [qtp400103862-1072 ] fisheye DefaultInjectableWebFragmentDataFactory-lambda$getWebPanels$2 - Error getting html for web panel: com.atlassian.plugin.web.descriptors.DefaultWebPanelModuleDescriptor$ContextAwareWebPanel@3aba7958 at location: system.crucible.review.comment com.atlassian.activeobjects.internal.ActiveObjectsInitException: bundle [com.atlassian.crucible.plugins.jira-ril] 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) [?:1.8.0_162] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_162] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_162] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_162] Caused by: java.lang.RuntimeException: Could not read fields for table AO_2913F5_COMMENT_ISSUE 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) [?:?] ... Caused by: java.sql.SQLSyntaxErrorException: Unknown table 'AO_2913F5_COMMENT_ISSUE' in information_schema at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1247) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:3149) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.DatabaseMetaData$7.forEach(DatabaseMetaData.java:3137) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.IterateBlock.doForAll(IterateBlock.java:56) [mysql-connector-java-8.0.11.jar:8.0.11] at com.mysql.cj.jdbc.DatabaseMetaData.getPrimaryKeys(DatabaseMetaData.java:3190) [mysql-connector-java-8.0.11.jar:8.0.11] at net.java.ao.schema.helper.DatabaseMetaDataReaderImpl.getFields(DatabaseMetaDataReaderImpl.java:127) [?:?] ... 67 more

Workaround

Downgrade the JDBC connector to 5.1.46 and restart the application:

Environment

None

Testing Notes

Add notes...

Status

Assignee

Unassigned

Reporter

Jeremy Owen

Labels

None

Add-on Type

None

Team

None

CC

None

Risk factor

None

QA Kickoff Status

None

QA Demo Status

None

Priority

Major
Configure