[Geoserver-devel] [jira] (GEOS-5899) GWC External quota storage fails.

Jonathan Moules created BugGEOS-5899
GWC External quota storage fails.

Issue Type:

BugBug

Assignee:

Andrea Aime

Components:

GWC

Created:

19/Jul/13 6:29 AM

Description:

My test GeoServer was being flaky and slow, so I restarted it. Now the main admin page says the below.
Am using an external Oracle database for storage.

Loading quota store failed, the disk quota subsystem is disabled, please re-configure: Failed to execute statement INSERT INTO TILESET select :key, :layerName, :gridSetId, :blobFormat, :parametersId, 0 FROM DUAL WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = :key) with params:

{parametersId=null, blobFormat=image/jpeg, gridSetId=UK_OSGB, layerName=Misc_Rasters:Aerial_2006_jpeg, key=Misc_Rasters:Aerial_2006_jpeg#UK_OSGB#image/jpeg}

; nested exception is org.springframework.dao.DuplicateKeyException: PreparedStatementCallback; SQL [INSERT INTO TILESET select ?, ?, ?, ?, ?, 0 FROM DUAL WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = ?)]; ORA-00001: unique constraint (GEOSERVER_SYSTEMS.SYS_IOT_TOP_291312) violated ; nested exception is java.sql.SQLException: ORA-00001: unique constraint (GEOSERVER_SYSTEMS.SYS_IOT_TOP_291312) violated


The stacktrace is I believe this:

2013-07-19 11:23:07,587 ERROR [org.geoserver.gwc] - Failed to get a quota store, the GeoWebCache disk quota subsystem will stop working now
org.geowebcache.diskquota.jdbc.ParametricDataAccessException: Failed to execute statement INSERT INTO TILESET select :key, :layerName, :gridSetId, :blobFormat, :parametersId, 0 FROM DUAL WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = :key) with params:

{parametersId=null, blobFormat=image/jpeg, gridSetId=UK_OSGB, layerName=Misc_Rasters:Aerial_2006_jpeg, key=Misc_Rasters:Aerial_2006_jpeg#UK_OSGB#image/jpeg}

; nested exception is org.springframework.dao.DuplicateKeyException: PreparedStatementCallback; SQL [INSERT INTO TILESET select ?, ?, ?, ?, ?, 0 FROM DUAL WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = ?)]; ORA-00001: unique constraint (GEOSERVER_SYSTEMS.SYS_IOT_TOP_291312) violated
; nested exception is java.sql.SQLException: ORA-00001: unique constraint (GEOSERVER_SYSTEMS.SYS_IOT_TOP_291312) violated

at org.geowebcache.diskquota.jdbc.SimpleJdbcTemplate.update(SimpleJdbcTemplate.java:69)
at org.geowebcache.diskquota.jdbc.JDBCQuotaStore.createTileSet(JDBCQuotaStore.java:411)
at org.geowebcache.diskquota.jdbc.JDBCQuotaStore.access$100(JDBCQuotaStore.java:67)
at org.geowebcache.diskquota.jdbc.JDBCQuotaStore$2.doInTransactionWithoutResult(JDBCQuotaStore.java:235)
at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at org.geowebcache.diskquota.jdbc.JDBCQuotaStore.createLayerInternal(JDBCQuotaStore.java:224)
at org.geowebcache.diskquota.jdbc.JDBCQuotaStore.access$000(JDBCQuotaStore.java:67)
at org.geowebcache.diskquota.jdbc.JDBCQuotaStore$1.doInTransactionWithoutResult(JDBCQuotaStore.java:207)
at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at org.geowebcache.diskquota.jdbc.JDBCQuotaStore.initialize(JDBCQuotaStore.java:179)
at org.geowebcache.diskquota.jdbc.JDBCQuotaStoreFactory.getJDBCStore(JDBCQuotaStoreFactory.java:131)
at org.geowebcache.diskquota.jdbc.JDBCQuotaStoreFactory.getJDBCStore(JDBCQuotaStoreFactory.java:91)
at org.geowebcache.diskquota.jdbc.JDBCQuotaStoreFactory.getQuotaStore(JDBCQuotaStoreFactory.java:74)
at org.geowebcache.diskquota.QuotaStoreProvider.getQuotaStoreByName(QuotaStoreProvider.java:58)
at org.geoserver.gwc.ConfigurableQuotaStoreProvider.reloadQuotaStore(ConfigurableQuotaStoreProvider.java:78)
at org.geowebcache.diskquota.QuotaStoreProvider.afterPropertiesSet(QuotaStoreProvider.java:40)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.geoserver.platform.GeoServerContextLoaderListener.contextInitialized(GeoServerContextLoaderListener.java:22)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.springframework.dao.DuplicateKeyException: PreparedStatementCallback; SQL [INSERT INTO TILESET select ?, ?, ?, ?, ?, 0 FROM DUAL WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = ?)]; ORA-00001: unique constraint (GEOSERVER_SYSTEMS.SYS_IOT_TOP_291312) violated
; nested exception is java.sql.SQLException: ORA-00001: unique constraint (GEOSERVER_SYSTEMS.SYS_IOT_TOP_291312) violated

at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:241)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:603)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:812)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:834)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:260)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:264)
at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.update(SimpleJdbcTemplate.java:243)
at org.geowebcache.diskquota.jdbc.SimpleJdbcTemplate.update(SimpleJdbcTemplate.java:67)
… 80 more
Caused by: java.sql.SQLException: ORA-00001: unique constraint (GEOSERVER_SYSTEMS.SYS_IOT_TOP_291312) violated

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3400)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:818)
at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:1)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587)
… 86 more

Project:

GeoServer

Priority:

MajorMajor

Reporter:

Jonathan Moules

This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: [http://www.atlassian.com/software/jira](http://www.atlassian.com/software/jira)