commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jeho0815 (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DBCP-470) Create a new BasicDataSource, the database hasn't start, the DBCP's pool will be leaked
Date Thu, 25 Aug 2016 02:32:20 GMT

    [ https://issues.apache.org/jira/browse/DBCP-470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15436149#comment-15436149
] 

jeho0815 commented on DBCP-470:
-------------------------------

has two solutions:
1、if validate connectionFactory failed, close the pool
2、Such as dbcp2, change the order,first create the factory, then create the pool。

> Create a new BasicDataSource, the database hasn't start, the DBCP's pool will be leaked
> ---------------------------------------------------------------------------------------
>
>                 Key: DBCP-470
>                 URL: https://issues.apache.org/jira/browse/DBCP-470
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.4
>         Environment: All environment
>            Reporter: jeho0815
>              Labels: robustness, security
>             Fix For: 1.4.1
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> First the database hasn't start, then create a new BasicDataSource.  The method createDataSource
judge dataSource == null, will create a new dataSource. The first step is create a connectionPool,
second create a connectionFactory, but validateConnectionFactory will throw a SQLNestedException,
the dataSource will be null again. Next itme repeat the steps again and again. The most import
issue is create the connectionPool will be refered by a java.lang.Timer, so it can't be collected
by GC. If the minIdle is positive, when database status is ok, it will create connection also.
> As a word, the bug will cause memory leak and may cause connection leak.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message