Return-Path: X-Original-To: apmail-db-derby-dev-archive@www.apache.org Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EDEFBC291 for ; Fri, 27 Apr 2012 09:04:23 +0000 (UTC) Received: (qmail 70281 invoked by uid 500); 27 Apr 2012 09:04:22 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 70220 invoked by uid 500); 27 Apr 2012 09:04:22 -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 69450 invoked by uid 99); 27 Apr 2012 09:04:21 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Apr 2012 09:04:21 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Apr 2012 09:04:18 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 90145423D62 for ; Fri, 27 Apr 2012 09:03:57 +0000 (UTC) Date: Fri, 27 Apr 2012 09:03:57 +0000 (UTC) From: "Knut Anders Hatlen (JIRA)" To: derby-dev@db.apache.org Message-ID: <750841454.2155.1335517437592.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1644724966.2121.1335516958132.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Updated] (DERBY-5730) DataDictionaryImpl leaks references to itself via SYSFUN_AD MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/DERBY-5730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Knut Anders Hatlen updated DERBY-5730: -------------------------------------- Attachment: Sysfun.java Attaching a repro that exposes the leak. The repro repeatedly boot a database, performs some db operations, and shuts down the database. One of the db operations it performs, is preparing a statement that calls one of the SYSFUN functions, and it is a different function in each iteration. When running the repro with -Xmx20M, I see an OutOfMemoryError. If I comment out the preparing of the function call, the repro completes successfully with -Xmx5M. > DataDictionaryImpl leaks references to itself via SYSFUN_AD > ----------------------------------------------------------- > > Key: DERBY-5730 > URL: https://issues.apache.org/jira/browse/DERBY-5730 > Project: Derby > Issue Type: Bug > Components: Services > Affects Versions: 10.9.0.0 > Reporter: Knut Anders Hatlen > Attachments: Sysfun.java > > > DataDictionaryImpl contains a static field called SYSFUN_AD, which holds an array of AliasDescriptor objects for the functions in the SYSFUN schema. This array is lazily populated as the functions are called, and it is shared between all DataDictionaryImpl instances on the system. > The AliasDescriptors contain references to the DataDictionaryImpl that created them, so SYSFUN_AD may end up referencing indirectly to a number of different DataDictionaryImpl instances, depending on where the respective SYSFUN functions are called the first time. Once an AliasDescriptor has been added to SYSFUN_AD, it stays there until the DataDictionaryImpl class is unloaded (in most cases, until the JVM terminates). This means the array may hold references to DataDictionaryImpl instances that belong to database instances that have been shut down, and that the memory held by those database instances never becomes eligible for garbage collection. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira