Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 27659 invoked from network); 21 May 2008 14:52:20 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 21 May 2008 14:52:20 -0000 Received: (qmail 48987 invoked by uid 500); 21 May 2008 14:52:21 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 48950 invoked by uid 500); 21 May 2008 14:52:21 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 48934 invoked by uid 99); 21 May 2008 14:52:21 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 May 2008 07:52:21 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 May 2008 14:51:35 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 6D789234C120 for ; Wed, 21 May 2008 07:51:56 -0700 (PDT) Message-ID: <196830424.1211381516447.JavaMail.jira@brutus> Date: Wed, 21 May 2008 07:51:56 -0700 (PDT) From: "Kristian Waagan (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Updated: (DERBY-3596) Creation of logical connections from a pooled connection causes resource leak on the server In-Reply-To: <1878506709.1207318404518.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-3596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kristian Waagan updated DERBY-3596: ----------------------------------- Attachment: complex-fix-heap.png simple-fix-heap.png nofix-heap.png Attaching three images showing the heap usage of the various builds: no fix, simple fix and complex fix. Note the left side axis, it is not the same across all the images! I used the attached repro to measure performance, and JConsole to monitor heap usage. I ran the repro 10 times, each run lasting 30 seconds using Sun JDK 1.6.0 with default settings on my dual core machine with 4 GB memory. Number of iterations done by the repro; - no fix: 48 000 [25 - 56] - simple fix: 78 000 [70 - 79] - complex fix: 125 000 [120 - 128] Note that the complex fix is not optimal, but feasible without changing the client driver as well. I haven't verified, but I believe it should work fine with older client versions. The simple fix keeps the semantics unchanged. > Creation of logical connections from a pooled connection causes resource leak on the server > ------------------------------------------------------------------------------------------- > > Key: DERBY-3596 > URL: https://issues.apache.org/jira/browse/DERBY-3596 > Project: Derby > Issue Type: Bug > Components: Network Client, Network Server, Performance > Affects Versions: 10.1.3.1, 10.2.2.0, 10.3.2.1, 10.4.1.3, 10.5.0.0 > Reporter: Kristian Waagan > Assignee: Kristian Waagan > Attachments: complex-fix-heap.png, ConnectionPoolingBug.java, derby-3596-1a-complex_approach.diff, derby-3596-2a-simple_approach.diff, nofix-heap.png, simple-fix-heap.png > > > When using ClientConnectionPoolDataSource and connection pooling, a new connection / transaction is created for every new logical connection, and the resources are not freed / cleaned up in the server. They are not even cleaned up when the physical connection (ClientPooledConnection) is closed. > A logical connection is obtained by invoking ClientPooledConnection.getConnection(). > I have observed that if you run the repro enough times against the same server, the number of transaction in the transaction table will be reduced now and then. I believe this is garbage collection, but I have not investigated the problem enough to tell for sure what's going on. > I have also seen some locks not being freed, causing timeouts in some applications. I don't have a repro for the lock problem at this time, but it is very likely related to this issue. > Note that XA connections are handled differently on the server, and do probably not have this problem. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.