This seems to be an issue with H2. There are many occasions that this error
has been reported when using an H2 DB. Can you try:

1. replacing the currently used DB with a new H2 (from a fresh pack)
2. use a MySQL DB

and see if the error is reproducible?

On Thu, May 7, 2015 at 4:42 PM, Imesh Gunaratne <im...@apache.org> wrote:

> It looks like a database table lock is not being released until it reaches
> the timeout:
>
> Timeout trying to lock table "REG_RESOURCE"; SQL statement:
> SELECT REG_VERSION FROM REG_RESOURCE WHERE REG_PATH_ID=? AND REG_NAME=?
> AND REG_TENANT_ID=? [50200-140]
>
> The concern is we do not handle any database locks in Stratos code, they
> are handled by the Carbon Registry. Shall we try to narrow down the problem
> by running it again without using the Metadata API?
>
> Thanks
>
>
> On Thu, May 7, 2015 at 12:37 PM, Udara Liyanage <ud...@wso2.com> wrote:
>
>> Hi,
>>
>> I frequently get this exception when running Stratos for longtime (10+
>> minutes). Please note that most failures occurs when metadata service also
>> save properties in the registry (not all the time, this occurs when
>> metadata is not persisting too).
>>
>>
>> 2015-05-07 07:03:11,725] ERROR
>> {org.apache.stratos.cloud.controller.registry.RegistryManager} - * Failed
>> to persist resource in registry: /cloud.controller/topology*
>> org.wso2.carbon.registry.core.exceptions.RegistryException: Failed to
>> check the existence of the resource
>> /_system/governance/cloud.controller/topology. Timeout trying to lock table
>> "REG_RESOURCE"; SQL statement:
>> SELECT REG_VERSION FROM REG_RESOURCE WHERE REG_PATH_ID=? AND REG_NAME=?
>> AND REG_TENANT_ID=? [50200-140]
>> at
>> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.getVersion(JDBCResourceDAO.java:206)
>> at
>> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.resourceExists(JDBCResourceDAO.java:147)
>> at
>> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.resourceExists(JDBCResourceDAO.java:156)
>> at
>> org.wso2.carbon.registry.core.jdbc.Repository.resourceExists(Repository.java:134)
>> at
>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.put(EmbeddedRegistry.java:688)
>> at
>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.put(CacheBackedRegistry.java:465)
>> at
>> org.wso2.carbon.registry.core.session.UserRegistry.put(UserRegistry.java:657)
>> at
>> org.apache.stratos.cloud.controller.registry.RegistryManager.persist(RegistryManager.java:73)
>> at
>> org.apache.stratos.cloud.controller.util.CloudControllerUtil.persistTopology(CloudControllerUtil.java:276)
>> at
>> org.apache.stratos.cloud.controller.messaging.topology.TopologyManager.updateTopology(TopologyManager.java:103)
>> at
>> org.apache.stratos.cloud.controller.messaging.topology.TopologyBuilder.handleMemberStarted(TopologyBuilder.java:555)
>> at
>> org.apache.stratos.cloud.controller.messaging.receiver.instance.status.InstanceStatusTopicReceiver$2.onEvent(InstanceStatusTopicReceiver.java:75)
>> at
>> org.apache.stratos.messaging.listener.EventListener.update(EventListener.java:42)
>> at java.util.Observable.notifyObservers(Observable.java:159)
>> at
>> org.apache.stratos.messaging.event.EventObservable.notifyEventListeners(EventObservable.java:51)
>> at
>> org.apache.stratos.messaging.message.processor.instance.status.InstanceStatusMemberStartedMessageProcessor.process(InstanceStatusMemberStartedMessageProcessor.java:49)
>> at
>> org.apache.stratos.messaging.message.processor.instance.status.InstanceStatusMemberActivatedMessageProcessor.process(InstanceStatusMemberActivatedMessageProcessor.java:53)
>> at
>> org.apache.stratos.messaging.message.processor.MessageProcessorChain.process(MessageProcessorChain.java:61)
>> at
>> org.apache.stratos.messaging.message.receiver.instance.status.InstanceStatusEventMessageDelegator.run(InstanceStatusEventMessageDelegator.java:71)
>> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>> at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>> at java.lang.Thread.run(Thread.java:744)
>> Caused by: org.h2.jdbc.JdbcSQLException: Timeout trying to lock table
>> "REG_RESOURCE"; SQL statement:
>> SELECT REG_VERSION FROM REG_RESOURCE WHERE REG_PATH_ID=? AND REG_NAME=?
>> AND REG_TENANT_ID=? [50200-140]
>> at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
>> at org.h2.message.DbException.get(DbException.java:167)
>> at org.h2.message.DbException.get(DbException.java:144)
>> at org.h2.table.RegularTable.doLock(RegularTable.java:466)
>> at org.h2.table.RegularTable.lock(RegularTable.java:404)
>> at org.h2.table.TableFilter.lock(TableFilter.java:139)
>> at org.h2.command.dml.Select.queryWithoutCache(Select.java:554)
>> at org.h2.command.dml.Query.query(Query.java:241)
>> at org.h2.command.CommandContainer.query(CommandContainer.java:80)
>> at org.h2.command.Command.executeQuery(Command.java:132)
>> at
>> org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:96)
>> at
>> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.getVersion(JDBCResourceDAO.java:197)
>> ... 23 more
>> [2015-05-07 07:03:11,726] FATAL
>> {org.apache.stratos.cloud.controller.util.CloudControllerUtil} -  Failed to
>> persist the Topology in registry.
>> org.wso2.carbon.registry.core.exceptions.RegistryException: Failed to
>> persist resource in registry: /cloud.controller/topology
>> at
>> org.apache.stratos.cloud.controller.registry.RegistryManager.persist(RegistryManager.java:85)
>> at
>> org.apache.stratos.cloud.controller.util.CloudControllerUtil.persistTopology(CloudControllerUtil.java:276)
>> at
>> org.apache.stratos.cloud.controller.messaging.topology.TopologyManager.updateTopology(TopologyManager.java:103)
>> at
>> org.apache.stratos.cloud.controller.messaging.topology.TopologyBuilder.handleMemberStarted(TopologyBuilder.java:555)
>> at
>> org.apache.stratos.cloud.controller.messaging.receiver.instance.status.InstanceStatusTopicReceiver$2.onEvent(InstanceStatusTopicReceiver.java:75)
>> at
>> org.apache.stratos.messaging.listener.EventListener.update(EventListener.java:42)
>> at java.util.Observable.notifyObservers(Observable.java:159)
>> at
>> org.apache.stratos.messaging.event.EventObservable.notifyEventListeners(EventObservable.java:51)
>> at
>> org.apache.stratos.messaging.message.processor.instance.status.InstanceStatusMemberStartedMessageProcessor.process(InstanceStatusMemberStartedMessageProcessor.java:49)
>> at
>> org.apache.stratos.messaging.message.processor.instance.status.InstanceStatusMemberActivatedMessageProcessor.process(InstanceStatusMemberActivatedMessageProcessor.java:53)
>> at
>> org.apache.stratos.messaging.message.processor.MessageProcessorChain.process(MessageProcessorChain.java:61)
>> at
>> org.apache.stratos.messaging.message.receiver.instance.status.InstanceStatusEventMessageDelegator.run(InstanceStatusEventMessageDelegator.java:71)
>> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>> at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>> at java.lang.Thread.run(Thread.java:744)
>> Caused by: org.wso2.carbon.registry.core.exceptions.RegistryException:
>> Failed to check the existence of the resource
>> /_system/governance/cloud.controller/topology. Timeout trying to lock table
>> "REG_RESOURCE"; SQL statement:
>> SELECT REG_VERSION FROM REG_RESOURCE WHERE REG_PATH_ID=? AND REG_NAME=?
>> AND REG_TENANT_ID=? [50200-140]
>> at
>> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.getVersion(JDBCResourceDAO.java:206)
>> at
>> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.resourceExists(JDBCResourceDAO.java:147)
>> at
>> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.resourceExists(JDBCResourceDAO.java:156)
>> at
>> org.wso2.carbon.registry.core.jdbc.Repository.resourceExists(Repository.java:134)
>> at
>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.put(EmbeddedRegistry.java:688)
>> at
>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.put(CacheBackedRegistry.java:465)
>> at
>> org.wso2.carbon.registry.core.session.UserRegistry.put(UserRegistry.java:657)
>> at
>> org.apache.stratos.cloud.controller.registry.RegistryManager.persist(RegistryManager.java:73)
>> ... 16 more
>> Caused by: org.h2.jdbc.JdbcSQLException: Timeout trying to lock table
>> "REG_RESOURCE"; SQL statement:
>> SELECT REG_VERSION FROM REG_RESOURCE WHERE REG_PATH_ID=? AND REG_NAME=?
>> AND REG_TENANT_ID=? [50200-140]
>> at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
>> at org.h2.message.DbException.get(DbException.java:167)
>> at org.h2.message.DbException.get(DbException.java:144)
>> at org.h2.table.RegularTable.doLock(RegularTable.java:466)
>> at org.h2.table.RegularTable.lock(RegularTable.java:404)
>> at org.h2.table.TableFilter.lock(TableFilter.java:139)
>> at org.h2.command.dml.Select.queryWithoutCache(Select.java:554)
>> at org.h2.command.dml.Query.query(Query.java:241)
>> at org.h2.command.CommandContainer.query(CommandContainer.java:80)
>> at org.h2.command.Command.executeQuery(Command.java:132)
>> at
>> org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:96)
>> at
>> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.getVersion(JDBCResourceDAO.java:197)
>> ... 23 more
>>
>>
>> --
>>
>> Udara Liyanage
>> Software Engineer
>> WSO2, Inc.: http://wso2.com
>> lean. enterprise. middleware
>>
>> web: http://udaraliyanage.wordpress.com
>> phone: +94 71 443 6897
>>
>
>
>
> --
> Imesh Gunaratne
>
> Senior Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>
> --
> Thanks and Regards,
>
> Isuru H.
> +94 716 358 048* <http://wso2.com/>*
>
>
> * <http://wso2.com/>*
>
>
> * <http://wso2.com/>*
>
>
>

Reply via email to