Failed to enable Rate Limiting on Bamboo - ORA-04043

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

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:

Environment

Bamboo 8.2.4

Diagnosis

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

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 location <bamboo-install>bin folder and run the command java -jar ojdbcx.jar:

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 

(info) 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.

Last modified on Jan 22, 2024

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.