Failed to enable Rate Limiting on Bamboo - ORA-04043

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

Failed to enable Rate Limiting on Bamboo with the following error:

(Auto-migrated image: description temporarily unavailable)

Environment

Bamboo 8.2.4

Diagnosis

From <bamboo-home>/logs/atlassian-bamboo.log, you will see the following error:

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 WARN [AtlassianEvent::0-BAM::EVENTS:pool-1-thread-9] [QDSLSystemRateLimitingSettingsDao] Initializing system rate limiting settings DB with default settings: [SystemRateLimitingSettings(mode=OFF, bucketSettings=TokenBucketSettings(capacity=50, fillRate=10, intervalFrequency=1, intervalTimeUnit=Seconds), jobControlSettings=SystemJobControlSettings(reportingDbArchivingJobFrequencyDuration=PT1M10S, reportingDbRetentionPeriodDuration=PT24H, bucketCollectionJobFrequencyDuration=PT5M, bucketCleanupJobFrequencyDuration=PT15M, settingsReloadJobFrequencyDuration=PT1M))] ERROR [AtlassianEvent::0-BAM::EVENTS:pool-1-thread-9] [QDSLSystemRateLimitingSettingsDao] Caught error inserting system rate limiting settings: [SystemRateLimitingSettings(mode=OFF, bucketSettings=TokenBucketSettings(capacity=50, fillRate=10, intervalFrequency=1, intervalTimeUnit=Seconds), jobControlSettings=SystemJobControlSettings(reportingDbArchivingJobFrequencyDuration=PT1M10S, reportingDbRetentionPeriodDuration=PT24H, bucketCollectionJobFrequencyDuration=PT5M, bucketCleanupJobFrequencyDuration=PT15M, settingsReloadJobFrequencyDuration=PT1M))] into DB - rolling back transaction ERROR [AtlassianEvent::0-BAM::EVENTS:pool-1-thread-9] [QDSLSystemRateLimitingSettingsDao] Caught error initializing system rate limiting settings: [SystemRateLimitingSettings(mode=OFF, bucketSettings=TokenBucketSettings(capacity=50, fillRate=10, intervalFrequency=1, intervalTimeUnit=Seconds), jobControlSettings=SystemJobControlSettings(reportingDbArchivingJobFrequencyDuration=PT1M10S, reportingDbRetentionPeriodDuration=PT24H, bucketCollectionJobFrequencyDuration=PT5M, bucketCleanupJobFrequencyDuration=PT15M, settingsReloadJobFrequencyDuration=PT1M))] in DB - rolling back transaction ERROR [AtlassianEvent::0-BAM::EVENTS:pool-1-thread-9] [DefaultLifecycleManager] LifecycleAware.onStart() failed for component with class 'com.atlassian.ratelimiting.internal.settings.DefaultRateLimitModificationSettingsService' from plugin 'com.atlassian.ratelimiting.rate-limiting-plugin' java.lang.reflect.UndeclaredThrowableException at com.sun.proxy.$Proxy1846.prepareStatement(Unknown Source) at com.atlassian.pocketknife.internal.querydsl.SpecificBehaviourConnection.prepareStatement(SpecificBehaviourConnection.java:247) at com.querydsl.sql.dml.SQLInsertClause.prepareStatementAndSetParameters(SQLInsertClause.java:339) at com.querydsl.sql.dml.SQLInsertClause.createStatement(SQLInsertClause.java:270) at com.querydsl.sql.dml.SQLInsertClause.executeWithKeys(SQLInsertClause.java:364) at com.querydsl.sql.dml.SQLInsertClause.executeWithKey(SQLInsertClause.java:201) at com.querydsl.sql.dml.SQLInsertClause.executeWithKey(SQLInsertClause.java:182) at com.atlassian.ratelimiting.db.internal.dao.QDSLSystemRateLimitingSettingsDao.lambda$create$4(QDSLSystemRateLimitingSettingsDao.java:87) at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:69) at com.atlassian.bamboo.spring.PluginSpringHibernateTransactionalExecutor.lambda$null$0(PluginSpringHibernateTransactionalExecutor.java:56) at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:37) at org.hibernate.internal.AbstractSharedSessionContract.lambda$doWork$1(AbstractSharedSessionContract.java:1109) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:308) at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1125) at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1112) at com.atlassian.bamboo.spring.PluginSpringHibernateTransactionalExecutor.lambda$toSpringCallback$1(PluginSpringHibernateTransactionalExecutor.java:54) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) at com.atlassian.bamboo.spring.PluginSpringHibernateTransactionalExecutor.execute(PluginSpringHibernateTransactionalExecutor.java:39) at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.execute(DatabaseAccessorImpl.java:67) at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.runInTransaction(DatabaseAccessorImpl.java:43) at com.atlassian.ratelimiting.db.internal.dao.QDSLSystemRateLimitingSettingsDao.create(QDSLSystemRateLimitingSettingsDao.java:68) at com.atlassian.ratelimiting.db.internal.dao.QDSLSystemRateLimitingSettingsDao.lambda$initializeDbIfNeeded$0(QDSLSystemRateLimitingSettingsDao.java:44) at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:69) at com.atlassian.bamboo.spring.PluginSpringHibernateTransactionalExecutor.lambda$null$0(PluginSpringHibernateTransactionalExecutor.java:56) at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:37) at org.hibernate.internal.AbstractSharedSessionContract.lambda$doWork$1(AbstractSharedSessionContract.java:1109) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:308) at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1125) at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1112) at com.atlassian.bamboo.spring.PluginSpringHibernateTransactionalExecutor.lambda$toSpringCallback$1(PluginSpringHibernateTransactionalExecutor.java:54) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) at com.atlassian.bamboo.spring.PluginSpringHibernateTransactionalExecutor.execute(PluginSpringHibernateTransactionalExecutor.java:39) at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.execute(DatabaseAccessorImpl.java:67) at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.runInTransaction(DatabaseAccessorImpl.java:43) at com.atlassian.ratelimiting.db.internal.dao.QDSLSystemRateLimitingSettingsDao.initializeDbIfNeeded(QDSLSystemRateLimitingSettingsDao.java:39) at com.atlassian.ratelimiting.internal.configuration.DefaultSystemPropertiesService.initializeData(DefaultSystemPropertiesService.java:64) at com.atlassian.ratelimiting.internal.settings.RateLimitModificationSettingsService.onStart(RateLimitModificationSettingsService.java:92) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$1.accept(DefaultLifecycleManager.java:262) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$1.accept(DefaultLifecycleManager.java:259) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyLifecyleAware(DefaultLifecycleManager.java:290) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyOnStartIfStartedAndEnabled(DefaultLifecycleManager.java:258) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyLifecycleAwares(DefaultLifecycleManager.java:243) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyStartableLifecycleAwares(DefaultLifecycleManager.java:221) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.startIfApplicationSetup(DefaultLifecycleManager.java:209) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.start(DefaultLifecycleManager.java:200) at com.atlassian.sal.bamboo.lifecycle.BambooLifecycleManager.onBambooContainerStart(BambooLifecycleManager.java:40) at com.atlassian.sal.bamboo.lifecycle.ServerStartupListener.handleEvent(ServerStartupListener.java:37) 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 com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:42) at com.atlassian.event.internal.ComparableListenerInvoker.invoke(ComparableListenerInvoker.java:48) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.lambda$null$0(AsynchronousAbleEventDispatcher.java:37) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:48) at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:26) at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:17) at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:41) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.reflect.InvocationTargetException 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 com.atlassian.bamboo.spring.NonLeakableConnection$1.invoke(NonLeakableConnection.java:35) ... 61 more Caused by: java.sql.SQLSyntaxErrorException: ORA-04043: object "TEST" does not exist at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509) at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:456) at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:451) at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:1123) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:553) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:269) at oracle.jdbc.driver.T4C8Odsy.doODSY(T4C8Odsy.java:146) at oracle.jdbc.driver.T4C8Odsy.doODSYTable(T4C8Odsy.java:126) at oracle.jdbc.driver.T4CConnection.doDescribeTable(T4CConnection.java:5181) at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:4656) at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:372) at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java) ... 66 more

Cause

The error appears if you are using an Oracle JDBC driver earlier than 21.x.

To check the version of the current Oracle JDBC on your Bamboo instance, go to the <bamboo-install>/bin/folder and run the command java -jar ojdbcX.jar:

1 2 java -jar ojdbc8.jar Oracle 23.3.0.23.09 JDBC 4.2 debug compiled with javac 1.8.0_381-ea on Thu_Aug_31_22:00:13_PDT_2023

ℹ️The version of ojdbc8.jar here is 23.3.0.23.09.

Solution

Rate limiting is only compatible with the Oracle JDBC 21.x driver. Upgrade the Oracle driver to version 21 or later.

Updated on April 7, 2025

Still need help?

The Atlassian Community is here for you.