[ 
http://mifosforge.jira.com/browse/MIFOS-5097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

keithwoodlock updated MIFOS-5097:
---------------------------------

    Fix Version/s: Unscheduled
    
> Connection Leak in ConfigurationInitializer (not critical, because one time)
> ----------------------------------------------------------------------------
>
>                 Key: MIFOS-5097
>                 URL: http://mifosforge.jira.com/browse/MIFOS-5097
>             Project: mifos
>          Issue Type: Bug
>            Reporter: Michael Vorburger
>            Assignee: Michael Vorburger
>            Priority: Major
>              Labels: Other
>             Fix For: Unscheduled
>
>
> Using MIFOS-5096, I've identified what appears to be a Connection Leak in 
> ConfigurationInitializer:
> {noformat}2011-07-23/23:55:47.346/IST INFO, 
> com.mchange.v2.resourcepool.BasicResourcePool, ?, ?, ?, A checked-out 
> resource is overdue, and will be destroyed: 
> com.mchange.v2.c3p0.impl.NewPooledConnection@1499616
> 2011-07-23/23:55:47.350/IST INFO, 
> com.mchange.v2.resourcepool.BasicResourcePool, ?, ?, ?, Logging the stack 
> trace by which the overdue resource was checked-out.
> java.lang.Exception: DEBUG ONLY: Overdue resource check-out stack trace.
>       at 
> com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:506)
>       at 
> com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
>       at 
> com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
>       at 
> org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:78)
>       at 
> org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
>       at 
> org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
>       at 
> org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
>       at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1700)
>       at org.hibernate.loader.Loader.doQuery(Loader.java:801)
>       at 
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
>       at org.hibernate.loader.Loader.doList(Loader.java:2533)
>       at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
>       at org.hibernate.loader.Loader.list(Loader.java:2271)
>       at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
>       at 
> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
>       at 
> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
>       at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
>       at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
>       at 
> org.mifos.framework.persistence.LegacyGenericDao.executeNamedQuery(LegacyGenericDao.java:105)
>       at 
> org.mifos.config.persistence.ConfigurationPersistence.getCurrency(ConfigurationPersistence.java:55)
>       at 
> org.mifos.config.AccountingRules.getMifosCurrency(AccountingRules.java:93)
>       at 
> org.mifos.config.AccountingRules.getMifosCurrency(AccountingRules.java:89)
>       at 
> org.mifos.config.util.helpers.ConfigurationInitializer.createSystemConfiguration(ConfigurationInitializer.java:66)
>       at 
> org.mifos.config.util.helpers.ConfigurationInitializer.initialize(ConfigurationInitializer.java:113)
>       at 
> org.mifos.config.business.Configuration.initialize(Configuration.java:57)
>       at 
> org.mifos.config.business.Configuration.getInstance(Configuration.java:50)
>       at 
> org.mifos.framework.ApplicationInitializer.setAttributesOnContext(ApplicationInitializer.java:352)
>       at 
> org.mifos.framework.ApplicationInitializer.init(ApplicationInitializer.java:206)
>       at 
> org.mifos.framework.ApplicationInitializer.contextInitialized(ApplicationInitializer.java:150)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:645)
>       at 
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:229)
>       at 
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1158)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:588)
>       at 
> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:436)
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
>       at 
> org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
>       at org.eclipse.jetty.server.Server.doStart(Server.java:258)
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
>       at 
> org.mifos.server.AbstractServerLauncher.startServer(AbstractServerLauncher.java:67)
>       at 
> org.mifos.server.workspace.WorkspaceServerLauncherMain.main(WorkspaceServerLauncherMain.java:39){noformat}
> This appears without doing anything in particular (if you have the MIFOS-5096 
> c3p0.properties on the CP), just start-up, and wait a bit (don't even have to 
> log in).
> It appears to me ConfigurationInitializer uses 
> AccountingRules.getMifosCurrency which uses Hibernate but the underlying 
> Connection is never closed?  I've tried fixing this by simply adding a 
> StaticHibernateUtil.closeSession(); as the last statement in 
> ApplicationInitializer's dbUpgrade(), but that didn't help - somebody (not 
> me..) would have to dig deeper into this.
> As far as I undestand this specific Connection Leak, while always bad, is not 
> critical/blocker, because it will leak exactly one connection during start-up 
> - not an ever increasing pile of connectionS in function and as a result of 
> end user load.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
http://mifosforge.jira.com/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Mifos-issues mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mifos-issues

Reply via email to