Details
Description
Issue Summary
Rate limiting plugins fails to find AO tables in the DB side, despite the tables being there.
This is reproducible on Data Center: yes
Steps to Reproduce
- Install Crowd for the first time, or upgrade to Crowd 5.2.1 (or later version)
Expected Results
There are no DB errors in the logs or the Crowd UI when accessing the Rate Limiting plugin
Actual Results
The following error can be observed when accessing to Rate Limiting menu in Crowd UI:
The below exception is thrown in the atlassian-crowd.log file, depending on yoru DB version.
- In PostgreSQL:
2024-02-05 13:41:37,136 main ERROR [db.internal.dao.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 2024-02-05 13:41:37,137 main ERROR [sal.core.lifecycle.DefaultLifecycleManager] LifecycleAware.onStart() failed for component with class 'com.atlassian.ratelimiting.internal.crowd.CrowdRateLimitModificationSettingsService' from plugin 'com.atlassian.ratelimiting.rate-limiting-plugin' com.querydsl.core.QueryException: Caught PSQLException for select "AO_AC3877_SYSTEM_RL_SETTINGS"."NAME", "AO_AC3877_SYSTEM_RL_SETTINGS"."MODE", "AO_AC3877_SYSTEM_RL_SETTINGS"."CAPACITY", "AO_AC3877_SYSTEM_RL_SETTINGS"."FILL_RATE", "AO_AC3877_SYSTEM_RL_SETTINGS"."INTERVAL_FREQUENCY", "AO_AC3877_SYSTEM_RL_SETTINGS"."INTERVAL_TIME_UNIT", "AO_AC3877_SYSTEM_RL_SETTINGS"."FLUSH_JOB_DURATION", "AO_AC3877_SYSTEM_RL_SETTINGS"."REAPER_JOB_DURATION", "AO_AC3877_SYSTEM_RL_SETTINGS"."RETENTION_PERIOD_DURATION", "AO_AC3877_SYSTEM_RL_SETTINGS"."CLEAN_JOB_DURATION", "AO_AC3877_SYSTEM_RL_SETTINGS"."SETTINGS_RELOAD_JOB_DURATION" from "public"."AO_AC3877_SYSTEM_RL_SETTINGS" "AO_AC3877_SYSTEM_RL_SETTINGS" where "AO_AC3877_SYSTEM_RL_SETTINGS"."NAME" = ? limit ? at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50) ~[?:?] at com.querydsl.sql.Configuration.translate(Configuration.java:459) ~[?:?] at com.querydsl.sql.AbstractSQLQuery.iterateSingle(AbstractSQLQuery.java:410) ~[?:?] at com.querydsl.sql.AbstractSQLQuery.iterate(AbstractSQLQuery.java:342) ~[?:?] at com.querydsl.sql.ProjectableSQLQuery.fetchOne(ProjectableSQLQuery.java:397) ~[?:?] at com.querydsl.core.support.FetchableQueryBase.fetchFirst(FetchableQueryBase.java:51) ~[?:?] at com.atlassian.ratelimiting.db.internal.dao.QDSLSystemRateLimitingSettingsDao.lambda$getSystemSettings$8(QDSLSystemRateLimitingSettingsDao.java:153) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:69) ~[?:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:109) ~[sal-core-5.1.4.jar:?] ... ...
- In Oracle:
024-02-07 07:23:32,791 main ERROR [db.internal.dao.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 2024-02-07 07:23:32,791 main ERROR [sal.core.lifecycle.DefaultLifecycleManager] LifecycleAware.onStart() failed for component with class 'com.atlassian.ratelimiting.internal.crowd.CrowdRateLimitModificationSettingsService' from plugin 'com.atlassian.ratelimiting.rate-limiting-plugin' com.querydsl.core.QueryException: Caught SQLSyntaxErrorException for select * from ( select "AO_AC3877_SYSTEM_RL_SETTINGS"."NAME", "AO_AC3877_SYSTEM_RL_SETTINGS"."MODE", "AO_AC3877_SYSTEM_RL_SETTINGS"."CAPACITY", "AO_AC3877_SYSTEM_RL_SETTINGS"."FILL_RATE", "AO_AC3877_SYSTEM_RL_SETTINGS"."INTERVAL_FREQUENCY", "AO_AC3877_SYSTEM_RL_SETTINGS"."INTERVAL_TIME_UNIT", "AO_AC3877_SYSTEM_RL_SETTINGS"."FLUSH_JOB_DURATION", "AO_AC3877_SYSTEM_RL_SETTINGS"."REAPER_JOB_DURATION", "AO_AC3877_SYSTEM_RL_SETTINGS"."RETENTION_PERIOD_DURATION", "AO_AC3877_SYSTEM_RL_SETTINGS"."CLEAN_JOB_DURATION", "AO_AC3877_SYSTEM_RL_SETTINGS"."SETTINGS_RELOAD_JOB_DURATION" from "ATLASSIAN"."AO_AC3877_SYSTEM_RL_SETTINGS" "AO_AC3877_SYSTEM_RL_SETTINGS" where "AO_AC3877_SYSTEM_RL_SETTINGS"."NAME" = ? ) where rownum <= ? at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50) ~[?:?] at com.querydsl.sql.Configuration.translate(Configuration.java:459) ~[?:?] at com.querydsl.sql.AbstractSQLQuery.iterateSingle(AbstractSQLQuery.java:410) ~[?:?] at com.querydsl.sql.AbstractSQLQuery.iterate(AbstractSQLQuery.java:342) ~[?:?] at com.querydsl.sql.ProjectableSQLQuery.fetchOne(ProjectableSQLQuery.java:397) ~[?:?] at com.querydsl.core.support.FetchableQueryBase.fetchFirst(FetchableQueryBase.java:51) ~[?:?] at com.atlassian.ratelimiting.db.internal.dao.QDSLSystemRateLimitingSettingsDao.lambda$getSystemSettings$8(QDSLSystemRateLimitingSettingsDao.java:153) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:69) ~[?:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:109) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.lambda$execute$0(DefaultTransactionalExecutor.java:64) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.spring.connection.SpringHostConnectionAccessor.lambda$execute$0(SpringHostConnectionAccessor.java:55) ~[sal-spring-5.1.4.jar:?] at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.3.30.jar:5.3.30] at com.atlassian.sal.spring.connection.SpringHostConnectionAccessor.execute(SpringHostConnectionAccessor.java:49) ~[sal-spring-5.1.4.jar:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.execute(DefaultTransactionalExecutor.java:61) ~[sal-core-5.1.4.jar:?] ... ... Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1054) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:226) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:59) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:747) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3780) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1343) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3822) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1165) ~[ojdbc8-12.2.0.1-atlassian-hosted.jar:12.2.0.1.0] at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:431) ~[c3p0-0.9.5.4.jar:0.9.5.4] at com.querydsl.sql.AbstractSQLQuery.iterateSingle(AbstractSQLQuery.java:370) ~[?:?] ... 113 more
- In MySQL:
2024-02-07 07:19:37,122 pool-9-thread-1 INFO [atlassian.marketplace.client.MarketplaceClient] GET https://marketplace.atlassian.com/rest/2/applications/crowd/versions/build/1944 2024-02-07 07:19:37,008 main ERROR [sal.core.lifecycle.DefaultLifecycleManager] LifecycleAware.onStart() failed for component with class 'com.atlassian.ratelimiting.internal.crowd.CrowdRateLimitModificationSettingsService' from plugin 'com.atlassian.ratelimiting.rate-limiting-plugin' com.querydsl.core.QueryException: Caught MySQLSyntaxErrorException for select `AO_AC3877_SYSTEM_RL_SETTINGS`.`NAME`, `AO_AC3877_SYSTEM_RL_SETTINGS`.`MODE`, `AO_AC3877_SYSTEM_RL_SETTINGS`.`CAPACITY`, `AO_AC3877_SYSTEM_RL_SETTINGS`.`FILL_RATE`, `AO_AC3877_SYSTEM_RL_SETTINGS`.`INTERVAL_FREQUENCY`, `AO_AC3877_SYSTEM_RL_SETTINGS`.`INTERVAL_TIME_UNIT`, `AO_AC3877_SYSTEM_RL_SETTINGS`.`FLUSH_JOB_DURATION`, `AO_AC3877_SYSTEM_RL_SETTINGS`.`REAPER_JOB_DURATION`, `AO_AC3877_SYSTEM_RL_SETTINGS`.`RETENTION_PERIOD_DURATION`, `AO_AC3877_SYSTEM_RL_SETTINGS`.`CLEAN_JOB_DURATION`, `AO_AC3877_SYSTEM_RL_SETTINGS`.`SETTINGS_RELOAD_JOB_DURATION` from `AO_AC3877_SYSTEM_RL_SETTINGS` `AO_AC3877_SYSTEM_RL_SETTINGS` where `AO_AC3877_SYSTEM_RL_SETTINGS`.`NAME` = ? limit ? at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50) ~[?:?] at com.querydsl.sql.Configuration.translate(Configuration.java:459) ~[?:?] at com.querydsl.sql.AbstractSQLQuery.iterateSingle(AbstractSQLQuery.java:410) ~[?:?] at com.querydsl.sql.AbstractSQLQuery.iterate(AbstractSQLQuery.java:342) ~[?:?] at com.querydsl.sql.ProjectableSQLQuery.fetchOne(ProjectableSQLQuery.java:397) ~[?:?] at com.querydsl.core.support.FetchableQueryBase.fetchFirst(FetchableQueryBase.java:51) ~[?:?] at com.atlassian.ratelimiting.db.internal.dao.QDSLSystemRateLimitingSettingsDao.lambda$getSystemSettings$8(QDSLSystemRateLimitingSettingsDao.java:153) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:69) ~[?:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:109) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.lambda$execute$0(DefaultTransactionalExecutor.java:64) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.spring.connection.SpringHostConnectionAccessor.lambda$execute$0(SpringHostConnectionAccessor.java:55) ~[sal-spring-5.1.4.jar:?] at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.3.30.jar:5.3.30] at com.atlassian.sal.spring.connection.SpringHostConnectionAccessor.execute(SpringHostConnectionAccessor.java:49) ~[sal-spring-5.1.4.jar:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.execute(DefaultTransactionalExecutor.java:61) ~[sal-core-5.1.4.jar:?] 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.getSystemSettings(QDSLSystemRateLimitingSettingsDao.java:149) ~[?:?] at com.atlassian.ratelimiting.db.internal.dao.QDSLSystemRateLimitingSettingsDao.lambda$initializeDbIfNeeded$0(QDSLSystemRateLimitingSettingsDao.java:40) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:69) ~[?:?] ... ...
- In SQLServer, there is also a DB error, but slightly different:
024-02-07 10:56:14,884 main WARN [internal.querydsl.schema.DatabaseSchemaCreationImpl] ActiveObjects method flushAll is not available : org.joor.ReflectException: java.lang.reflect.InvocationTargetException 2024-02-07 10:56:14,895 main ERROR [sal.core.lifecycle.DefaultLifecycleManager] LifecycleAware.onStart() failed for component with class 'com.atlassian.ratelimiting.internal.crowd.CrowdRateLimitModificationSettingsService' from plugin 'com.atlassian.ratelimiting.rate-limiting-plugin' java.lang.AbstractMethodError: null at net.sourceforge.jtds.jdbc.JtdsConnection.getSchema(JtdsConnection.java:2881) ~[jtds-1.3.1.jar:1.3.1] at com.mchange.v2.c3p0.impl.NewProxyConnection.getSchema(NewProxyConnection.java:1668) ~[c3p0-0.9.5.4.jar:0.9.5.4] at com.atlassian.crowd.ratelimiting.CrowdConnectionProvider.getSchemaName(CrowdConnectionProvider.java:34) ~[crowd-server-5.2.3.jar:?] at com.atlassian.sal.spring.connection.SpringHostConnectionAccessor.getSchemaName(SpringHostConnectionAccessor.java:62) ~[sal-spring-5.1.4.jar:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.getSchemaName(DefaultTransactionalExecutor.java:71) ~[sal-core-5.1.4.jar:?] at com.atlassian.pocketknife.internal.querydsl.schema.ProductSchemaProvider.getProductSchema(ProductSchemaProvider.java:24) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.schema.DefaultSchemaProvider.getProductSchema(DefaultSchemaProvider.java:64) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.dialect.DefaultDialectConfiguration.enrich(DefaultDialectConfiguration.java:80) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.dialect.DefaultDialectConfiguration.buildTemplates(DefaultDialectConfiguration.java:117) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.dialect.DefaultDialectConfiguration.detect(DefaultDialectConfiguration.java:72) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.util.MemoizingResettingReference.lambda$get$0(MemoizingResettingReference.java:59) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.util.MemoizingResettingReference$SmarterMemoizingSupplier.get(MemoizingResettingReference.java:150) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.util.MemoizingResettingReference.safelyGetT(MemoizingResettingReference.java:71) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.util.MemoizingResettingReference.get(MemoizingResettingReference.java:63) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.dialect.DefaultDialectConfiguration.getDialectConfig(DefaultDialectConfiguration.java:61) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.DatabaseConnectionConverterImpl.getDialectConfig(DatabaseConnectionConverterImpl.java:46) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.DatabaseConnectionConverterImpl.convertImpl(DatabaseConnectionConverterImpl.java:40) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.DatabaseConnectionConverterImpl.convertExternallyManaged(DatabaseConnectionConverterImpl.java:34) ~[?:?] at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:68) ~[?:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:109) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.lambda$execute$0(DefaultTransactionalExecutor.java:64) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.spring.connection.SpringHostConnectionAccessor.lambda$execute$0(SpringHostConnectionAccessor.java:55) ~[sal-spring-5.1.4.jar:?] at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.3.30.jar:5.3.30] at com.atlassian.sal.spring.connection.SpringHostConnectionAccessor.execute(SpringHostConnectionAccessor.java:49) ~[sal-spring-5.1.4.jar:?] at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.execute(DefaultTransactionalExecutor.java:61) ~[sal-core-5.1.4.jar:?] 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) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$1.accept(DefaultLifecycleManager.java:259) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyLifecyleAware(DefaultLifecycleManager.java:290) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyOnStartIfStartedAndEnabled(DefaultLifecycleManager.java:258) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyLifecycleAwares(DefaultLifecycleManager.java:243) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyStartableLifecycleAwares(DefaultLifecycleManager.java:221) ~[sal-core-5.1.4.jar:?] at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.startIfApplicationSetup(DefaultLifecycleManager.java:209) ~[sal-core-5.1.4.jar:?] ... ...
Despite these errors, the related tables are present in the Crowd database schema.
Workaround
Oracle DB:
If you install Oracle 21c driver the issue with the Rate Limiting doesn't occur. If you would like to apply this workaround please follow the below steps:
- Go to the <installatin directory>/apache-tomcat/lib directory.
- Move the jar files starting with ojdbc8 to a safe location outside of <installatin directory>/apache-tomcat/lib directory.
- Download the new ojdbc8.jar to <installatin directory>/apache-tomcat/lib. Make sure that permission is set properly for this jar file like the other jar files.
- Restart Crowd server.
- Check the Rate Limiting page if you see any errors.
Attachments
Issue Links
- is cloned by
-
KRAK-5632 Loading...