On Wed, Feb 24, 2010 at 12:52 PM, Ruwan Linton <[email protected]> wrote:

> Senaka Fernando wrote:
> >
> >
> > On Wed, Feb 24, 2010 at 12:22 PM, Ruwan Linton <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >     Running perf tests will help us identify these issues.
> >
> >     Senaka Fernando wrote:
> >     > Hi it seems that you have persisted a resource + created an
> >     > association at the same time in two threads.
> >     Are you trying to say that Registry cannot handle 2 concurrent
> >     requests??
> >
> >     Folks, none of these scenarios shouldn't cause a deadlock, these are
> >     possible scenarios, at exceptional flows and Registry shouldn't
> >     deadlock, rather it should handle them gracefully. It might decide to
> >     fail some operations, but cannot deadlock.
> >
> >
> > Even the current implementation doesn't deadlock. But, we don't
> > gracefully handle this. We instead let it be handled by the driver,
> > which simply rolls back the second transaction and let the first one
> > in. But, it expects these to be handled at a higher level, and writes
> > out the exception stating deadlocked. Hence the confusion.
> Correct! what I am saying is we have to handle it, not the driver. We
> shouldn't assume that driver will take care of everything, rather we
> need to program the flow in a manner that it doesn't cause any deadlocks
> to be detected by the driver.
>
> +1

Thanks,
Senaka.


> Thanks,
> Ruwan
> >
> > Thanks,Senaka.
> >
> >
> >     Thanks,
> >     Ruwan
> >     > How could this happen? Is it a part of the same process? or two
> >     > things? And +1 for running perf tests. But, this time we need to
> >     > eradicate the possibilities of such or at least introduce some
> retry
> >     > mechanism (or handle exceptions), instead of simply treating
> >     this as a
> >     > perf issue. Not everybody have the same hardware configurations
> that
> >     > we do, and there can be possibilities of such.
> >     >
> >     > Thanks,
> >     > Senaka.
> >     >
> >     > On Wed, Feb 24, 2010 at 11:52 AM, Sumedha Rubasinghe
> >     <[email protected] <mailto:[email protected]>
> >     > <mailto:[email protected] <mailto:[email protected]>>> wrote:
> >     >
> >     >     Hi Hiranya,
> >     >     Did you press save config button multiple times?
> >     >
> >     >     /sumedha
> >     >
> >     >
> >     >
> >     >     On Wed, Feb 24, 2010 at 11:28 AM, Hiranya Jayathilaka
> >     >     <[email protected] <mailto:[email protected]>
> >     <mailto:[email protected] <mailto:[email protected]>>> wrote:
> >     >
> >     >         Following exception encountered in the ESB while updating a
> >     >         proxy service:
> >     >
> >     >
> >     >         Exception in thread "Thread-23"
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.ServiceBusPersistenceException:
> >     >         Error while saving mediation configuration changes
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.handleException(MediationPersistenceManager.java:278)
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.access$1200(MediationPersistenceManager.java:48)
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager$MediationPersistenceWorker.run(MediationPersistenceManager.java:320)
> >     >         Caused by:
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.ServiceBusPersistenceException:
> >     >         Unable to persist the proxy service in the path :
> >     >         /repository/synapse/proxy-services/FooProxy
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.registry.AbstractRegistryStore.handleException(AbstractRegistryStore.java:101)
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.registry.ProxyServiceRegistryStore.persistElement(ProxyServiceRegistryStore.java:72)
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.AbstractStore.saveToRegistry(AbstractStore.java:154)
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.AbstractStore.save(AbstractStore.java:82)
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.persistElement(MediationPersistenceManager.java:335)
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.access$1000(MediationPersistenceManager.java:48)
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager$MediationPersistenceWorker.run(MediationPersistenceManager.java:314)
> >     >         Caused by:
> >     >         org.wso2.carbon.registry.core.exceptions.RegistryException:
> >     >         Unable to persist element
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.registry.AbstractRegistryStore.persistElement(AbstractRegistryStore.java:95)
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.registry.ProxyServiceRegistryStore.persistElement(ProxyServiceRegistryStore.java:69)
> >     >         ... 5 more
> >     >         Caused by:
> >     >         org.wso2.carbon.registry.core.exceptions.RegistryException:
> >     >         Failed to add log entry for resource
> >     >         /_system/config/repository/synapse/proxy-services. Deadlock
> >     >         detected. The current transaction was rolled back. Details:
> >     >         Session #9 (user: WSO2CARBON) is waiting to lock
> >     >         PUBLIC.REG_RESOURCE while locking PUBLIC.REG_ASSOCIATION
> >     >         (exclusive), PUBLIC.REG_LOG (exclusive).
> >     >         Session #12 (user: WSO2CARBON) is waiting to lock
> >     >         PUBLIC.REG_LOG while locking PUBLIC.REG_CONTENT_HISTORY
> >     >         (exclusive), PUBLIC.REG_RESOURCE_HISTORY (exclusive),
> >     >         PUBLIC.REG_RESOURCE (exclusive), PUBLIC.REG_CONTENT
> >     >         (exclusive), PUBLIC.REG_SNAPSHOT (exclusive).; SQL
> >     statement:
> >     >         INSERT INTO REG_LOG (REG_PATH, REG_USER_ID,
> REG_LOGGED_TIME,
> >     >         REG_ACTION, REG_ACTION_DATA, REG_TENANT_ID) VALUES (?, ?,
> ?,
> >     >         ?, ?, ?) [40001-112]
> >     >         at
> >     >
> >
> org.wso2.carbon.registry.core.jdbc.dao.LogsDAO.addLog(LogsDAO.java:79)
> >     >         at
> >     >
> >
> org.wso2.carbon.registry.core.jdbc.Repository.update(Repository.java:966)
> >     >         at
> >     >
> >
> org.wso2.carbon.registry.core.jdbc.Repository.updateParent(Repository.java:947)
> >     >         at
> >     >
> >
> org.wso2.carbon.registry.core.jdbc.Repository.delete(Repository.java:403)
> >     >         at
> >     >
> >
> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.delete(EmbeddedRegistry.java:807)
> >     >         at
> >     >
> >
> org.wso2.carbon.registry.core.session.UserRegistry.delete(UserRegistry.java:625)
> >     >         at
> >     >
> >
> org.wso2.carbon.mediation.initializer.persistence.registry.AbstractRegistryStore.persistElement(AbstractRegistryStore.java:79)
> >     >         ... 6 more
> >     >         Caused by: org.h2.jdbc.JdbcSQLException: Deadlock detected.
> >     >         The current transaction was rolled back. Details:
> >     >         Session #9 (user: WSO2CARBON) is waiting to lock
> >     >         PUBLIC.REG_RESOURCE while locking PUBLIC.REG_ASSOCIATION
> >     >         (exclusive), PUBLIC.REG_LOG (exclusive).
> >     >         Session #12 (user: WSO2CARBON) is waiting to lock
> >     >         PUBLIC.REG_LOG while locking PUBLIC.REG_CONTENT_HISTORY
> >     >         (exclusive), PUBLIC.REG_RESOURCE_HISTORY (exclusive),
> >     >         PUBLIC.REG_RESOURCE (exclusive), PUBLIC.REG_CONTENT
> >     >         (exclusive), PUBLIC.REG_SNAPSHOT (exclusive).; SQL
> >     statement:
> >     >         INSERT INTO REG_LOG (REG_PATH, REG_USER_ID,
> REG_LOGGED_TIME,
> >     >         REG_ACTION, REG_ACTION_DATA, REG_TENANT_ID) VALUES (?, ?,
> ?,
> >     >         ?, ?, ?) [40001-112]
> >     >         at org.h2.message.Message.getSQLException(Message.java:107)
> >     >         at org.h2.message.Message.getSQLException(Message.java:118)
> >     >         at org.h2.message.Message.getSQLException(Message.java:77)
> >     >         at org.h2.table.TableData.doLock(TableData.java:428)
> >     >         at org.h2.table.TableData.lock(TableData.java:375)
> >     >         at org.h2.command.dml.Insert.update(Insert.java:99)
> >     >         at
> >     >
> >     org.h2.command.CommandContainer.update(CommandContainer.java:71)
> >     >         at org.h2.command.Command.executeUpdate(Command.java:207)
> >     >         at
> >     >
> >
> org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:139)
> >     >         at
> >     >
> >
> org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:128)
> >     >         at
> >     >
> >
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
> >     >         at
> >     >
> >
> org.wso2.carbon.registry.core.jdbc.dao.LogsDAO.addLog(LogsDAO.java:72)
> >     >         ... 12 more
> >     >
> >     >         Thanks
> >     >         --
> >     >         Hiranya Jayathilaka
> >     >         Software Engineer;
> >     >         WSO2 Inc.;  http://wso2.org
> >     >         E-mail: [email protected] <mailto:[email protected]>
> >     <mailto:[email protected] <mailto:[email protected]>>;  Mobile:
> >     >         +94 77 633 3491
> >     >         Blog: http://techfeast-hiranya.blogspot.com
> >     >
> >     >         _______________________________________________
> >     >         Carbon-dev mailing list
> >     >         [email protected] <mailto:[email protected]>
> >     <mailto:[email protected] <mailto:[email protected]>>
> >     >         https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
> >     >
> >     >
> >     >
> >     >     _______________________________________________
> >     >     Carbon-dev mailing list
> >     >     [email protected] <mailto:[email protected]>
> >     <mailto:[email protected] <mailto:[email protected]>>
> >     >     https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
> >     >
> >     >
> >     >
> >     >
> >     > --
> >     > Senaka Fernando
> >     > Software Engineer
> >     > WSO2 Inc.
> >     > E-mail: senaka AT wso2.com <http://wso2.com> <http://wso2.com>;
> >      Mobile: +94 77 322 1818
> >     >
> >     > http://www.wso2.com/ - "Lean . Enterprise . Middleware"
> >     >
> >
> ------------------------------------------------------------------------
> >     >
> >     > _______________________________________________
> >     > Carbon-dev mailing list
> >     > [email protected] <mailto:[email protected]>
> >     > https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
> >     >
> >
> >
> >     --
> >     Ruwan Linton
> >     Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb
> >     WSO2 Inc.; http://wso2.org
> >     email: [email protected] <mailto:[email protected]>; cell: +94 77 341 3097
> >     blog: http://blog.ruwan.org
> >
> >     Lean . Enterprise . Middleware
> >
> >
> >     _______________________________________________
> >     Carbon-dev mailing list
> >     [email protected] <mailto:[email protected]>
> >     https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
> >
> >
> >
> >
> > --
> > Senaka Fernando
> > Software Engineer
> > WSO2 Inc.
> > E-mail: senaka AT wso2.com <http://wso2.com>;  Mobile: +94 77 322 1818
> >
> > http://www.wso2.com/ - "Lean . Enterprise . Middleware"
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Carbon-dev mailing list
> > [email protected]
> > https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
> >
>
>
> --
> Ruwan Linton
> Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb
> WSO2 <http://wso2.org/esb%0AWSO2> Inc.; http://wso2.org
> email: [email protected]; cell: +94 77 341 3097
> blog: http://blog.ruwan.org
>
> Lean . Enterprise . Middleware
>
>
> _______________________________________________
> Carbon-dev mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>



-- 
Senaka Fernando
Software Engineer
WSO2 Inc.
E-mail: senaka AT wso2.com;  Mobile: +94 77 322 1818

http://www.wso2.com/ - "Lean . Enterprise . Middleware"
_______________________________________________
Carbon-dev mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to