You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Mamta A. Satoor (JIRA)" <ji...@apache.org> on 2013/07/16 01:28:50 UTC

[jira] [Updated] (DERBY-5730) DataDictionaryImpl leaks references to itself via SYSFUN_AD

     [ https://issues.apache.org/jira/browse/DERBY-5730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mamta A. Satoor updated DERBY-5730:
-----------------------------------

    Attachment: DERBY5730_backport_patch1_diff.txt

I am working on backporting the fix to 10.8 codeline and I get error for the newly added test through the patch
1) testLeak(org.apache.derbyTesting.functionTests.tests.memory.Derby5730Test)java.security.AccessControlException: Access denied (java.io.FilePermission C:\Program Files (x86)\IBM\Java60\jre\bin\java execute)
        at java.security.AccessController.checkPermission(AccessController.java:108)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:533)
        at java.lang.SecurityManager.checkExec(SecurityManager.java:780)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:448)
        at java.lang.Runtime.exec(Runtime.java:593)
        at java.lang.Runtime.exec(Runtime.java:466)
        at org.apache.derbyTesting.junit.BaseTestCase$8.run(BaseTestCase.java:558)
        at java.security.AccessController.doPrivileged(AccessController.java:251)
        at org.apache.derbyTesting.junit.BaseTestCase.execJavaCmd(BaseTestCase.java:554)
        at org.apache.derbyTesting.functionTests.tests.memory.Derby5730Test.testLeak(Derby5730Test.java:64)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:113)


The error happens whether the test is run stand alone, or as part of the entire junit suite. I ran the test with classes and with jars and still get the same error. Do I need to change something in derby_tests.policy for this test to run correctly? I have been looking at derby mailing list to look for a fix for access control exception but haven't found anything yet. Thanks
                
> 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.1.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>             Fix For: 10.9.1.0
>
>         Attachments: d5730-1a.diff, DERBY5730_backport_patch1_diff.txt, Sysfun.java, SysfunPerftest.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
For more information on JIRA, see: http://www.atlassian.com/software/jira