db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4859) Missing doPrivileged in DatabaseClasses.WriteClassFile()
Date Wed, 20 Oct 2010 17:16:23 GMT

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

Knut Anders Hatlen updated DERBY-4859:

    Attachment: diff.diff

I'm rerunning the tests on the same configuration with the attached patch applied to see if
that'll make the tests report the original error. The patch puts a doPrivileged around the
code that opens a new FileOutputStream.

> Missing doPrivileged in DatabaseClasses.WriteClassFile()
> --------------------------------------------------------
>                 Key: DERBY-4859
>                 URL: https://issues.apache.org/jira/browse/DERBY-4859
>             Project: Derby
>          Issue Type: Bug
>          Components: Services
>    Affects Versions:
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: diff.diff
> One of my test runs failed with the following error:
> 1) testAllUncommittedReclaim(org.apache.derbyTesting.functionTests.tests.store.AccessTest)java.sql.SQLException:
Java exception: 'access denied (java.io.FilePermission /export/home/tmp/kh160127/derbyall/system/ac72985692x012bxc9d4x9594xffffa08cb27a0.class
write): java.security.AccessControlException'.
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
> (...)
> Caused by: java.security.AccessControlException: access denied (java.io.FilePermission
/export/home/tmp/kh160127/derbyall/system/ac72985692x012bxc9d4x9594xffffa08cb27a0.class write)
>         at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
>         at java.security.AccessController.checkPermission(AccessController.java:546)
>         at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
>         at java.lang.SecurityManager.checkWrite(SecurityManager.java:962)
>         at java.io.FileOutputStream.<init>(FileOutputStream.java:169)
>         at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
>         at org.apache.derby.impl.services.reflect.DatabaseClasses.WriteClassFile(Unknown
>         at org.apache.derby.impl.services.reflect.DatabaseClasses.loadGeneratedClass(Unknown
> (...)
> I think the underlying error is an OutOfMemoryError, because I have seen tests running
out of permgen space with the same configuration lately. But that error never gets all the
way out to the test framework because of the above file permission error.
> When DatabaseClasses.loadGeneratedClass() fails with a LinkageError or a VirtualMachineError
(the super-class of OutOfMemoryError), it attempts to dump the generated class to disk. But
since the tests run under a security manager, and the code writes the class to disk isn't
wrapped in a privileged block, the dumping of extra debug info fails and hides the original

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message