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

Myrna van Lunteren edited comment on DERBY-6352 at 2/27/14 6:59 PM:
--------------------------------------------------------------------

The test store/LogDeviceTest.java failed (with ibm16 SR15) in last night's IBM 
trunk run, generating a javacore dump, and at the top of the tests' derby.log I 
found this:

Database Class Loader started - derby.database.classpath=''^M
New exception raised during cleanup Access denied (java.lang.RuntimePermission 
modifyThread)^M
java.security.AccessControlException: Access denied 
(java.lang.RuntimePermission modifyThread)^M
        at java.security.AccessController.throwACE(AccessController.java:100)^M
        at 
java.security.AccessController.checkPermission(AccessController.java:174)^M
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)^M
        at java.lang.SecurityManager.checkAccess(SecurityManager.java:671)^M
        at java.lang.Thread.checkAccess(Thread.java:403)^M
        at java.lang.Thread.interrupt(Thread.java:531)^M
        at org.apache.derby.iapi.services.context.ContextService$1.run(Unknown 
Source)^M
        at org.apache.derby.iapi.services.context.ContextService$1.run(Unknown 
Source)^M
        at 
java.security.AccessController.doPrivileged(AccessController.java:273)^M
        at 
org.apache.derby.iapi.services.context.ContextService.notifyAllActiveThreads(Unknown
 Source)^M
        at org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(Unknown 
Source)^M
        at 
org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown 
Source)^M
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown 
Source)^M
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)^M
        at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown 
Source)^M
        at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)^M
        at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)^M
        at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)^M
        at java.sql.DriverManager.getConnection(DriverManager.java:419)^M
        at java.sql.DriverManager.getConnection(DriverManager.java:367)^M
        at 
org.apache.derbyTesting.functionTests.util.TestUtil.getConnection(TestUtil.java:802)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.shutdown(LogDeviceTest.java:159)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.runTest(LogDeviceTest.java:101)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.main(LogDeviceTest.java:53)^M
Cleanup action completed^M
New exception raised during cleanup Access denied (java.lang.RuntimePermission 
modifyThread)^M
java.security.AccessControlException: Access denied 
(java.lang.RuntimePermission modifyThread)^M
        at java.security.AccessController.throwACE(AccessController.java:100)^M
        at 
java.security.AccessController.checkPermission(AccessController.java:174)^M
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)^M
        at java.lang.SecurityManager.checkAccess(SecurityManager.java:671)^M
        at java.lang.Thread.checkAccess(Thread.java:403)^M
        at java.lang.Thread.interrupt(Thread.java:531)^M
        at org.apache.derby.iapi.services.context.ContextService$1.run(Unknown 
Source)^M
        at org.apache.derby.iapi.services.context.ContextService$1.run(Unknown 
Source)^M
        at 
java.security.AccessController.doPrivileged(AccessController.java:273)^M
        at 
org.apache.derby.iapi.services.context.ContextService.notifyAllActiveThreads(Unknown
 Source)^M
        at org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(Unknown 
Source)^M
        at 
org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown 
Source)^M
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown 
Source)^M
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
Source)^M
        at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
Source)^M
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)^M
        at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown 
Source)^M
        at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)^M
        at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)^M
        at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)^M
        at java.sql.DriverManager.getConnection(DriverManager.java:419)^M
        at java.sql.DriverManager.getConnection(DriverManager.java:367)^M
        at 
org.apache.derbyTesting.functionTests.util.TestUtil.getConnection(TestUtil.java:802)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.shutdown(LogDeviceTest.java:159)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.runTest(LogDeviceTest.java:101)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.main(LogDeviceTest.java:53)^M



was (Author: myrna):
The test store/LogDeviceTest.java failed (with ibm16 SR15) in last night's IBM 
trunk run, generating a javacore dump, and deep in the derby.log I found this:

Database Class Loader started - derby.database.classpath=''^M
New exception raised during cleanup Access denied (java.lang.RuntimePermission 
modifyThread)^M
java.security.AccessControlException: Access denied 
(java.lang.RuntimePermission modifyThread)^M
        at java.security.AccessController.throwACE(AccessController.java:100)^M
        at 
java.security.AccessController.checkPermission(AccessController.java:174)^M
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)^M
        at java.lang.SecurityManager.checkAccess(SecurityManager.java:671)^M
        at java.lang.Thread.checkAccess(Thread.java:403)^M
        at java.lang.Thread.interrupt(Thread.java:531)^M
        at org.apache.derby.iapi.services.context.ContextService$1.run(Unknown 
Source)^M
        at org.apache.derby.iapi.services.context.ContextService$1.run(Unknown 
Source)^M
        at 
java.security.AccessController.doPrivileged(AccessController.java:273)^M
        at 
org.apache.derby.iapi.services.context.ContextService.notifyAllActiveThreads(Unknown
 Source)^M
        at org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(Unknown 
Source)^M
        at 
org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown 
Source)^M
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown 
Source)^M
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)^M
        at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown 
Source)^M
        at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)^M
        at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)^M
        at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)^M
        at java.sql.DriverManager.getConnection(DriverManager.java:419)^M
        at java.sql.DriverManager.getConnection(DriverManager.java:367)^M
        at 
org.apache.derbyTesting.functionTests.util.TestUtil.getConnection(TestUtil.java:802)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.shutdown(LogDeviceTest.java:159)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.runTest(LogDeviceTest.java:101)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.main(LogDeviceTest.java:53)^M
Cleanup action completed^M
New exception raised during cleanup Access denied (java.lang.RuntimePermission 
modifyThread)^M
java.security.AccessControlException: Access denied 
(java.lang.RuntimePermission modifyThread)^M
        at java.security.AccessController.throwACE(AccessController.java:100)^M
        at 
java.security.AccessController.checkPermission(AccessController.java:174)^M
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)^M
        at java.lang.SecurityManager.checkAccess(SecurityManager.java:671)^M
        at java.lang.Thread.checkAccess(Thread.java:403)^M
        at java.lang.Thread.interrupt(Thread.java:531)^M
        at org.apache.derby.iapi.services.context.ContextService$1.run(Unknown 
Source)^M
        at org.apache.derby.iapi.services.context.ContextService$1.run(Unknown 
Source)^M
        at 
java.security.AccessController.doPrivileged(AccessController.java:273)^M
        at 
org.apache.derby.iapi.services.context.ContextService.notifyAllActiveThreads(Unknown
 Source)^M
        at org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(Unknown 
Source)^M
        at 
org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown 
Source)^M
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown 
Source)^M
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
Source)^M
        at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
Source)^M
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)^M
        at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown 
Source)^M
        at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)^M
        at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)^M
        at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)^M
        at java.sql.DriverManager.getConnection(DriverManager.java:419)^M
        at java.sql.DriverManager.getConnection(DriverManager.java:367)^M
        at 
org.apache.derbyTesting.functionTests.util.TestUtil.getConnection(TestUtil.java:802)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.shutdown(LogDeviceTest.java:159)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.runTest(LogDeviceTest.java:101)^M
        at 
org.apache.derbyTesting.functionTests.tests.store.LogDeviceTest.main(LogDeviceTest.java:53)^M


> Access denied ("java.lang.RuntimePermission" "modifyThread") in 
> store.RecoveryAfterBackup test
> ----------------------------------------------------------------------------------------------
>
>                 Key: DERBY-6352
>                 URL: https://issues.apache.org/jira/browse/DERBY-6352
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.9.2.2, 10.10.1.1
>         Environment: IBM java 7 Derby version 10.10.1.2 - (1494414)
>            Reporter: Kathey Marsden
>         Attachments: DERBY-6352_trunk.diff, DERBY-6352_trunk2.diff
>
>
> I got a report of the following intermittent (6/60) exception in 
> store.RecoveryAfterBackupTest.
> Exception in thread "main" java.security.AccessControlException: Access 
> denied ("java.lang.RuntimePermission" "modifyThread")
>                at 
> java.security.AccessController.throwACE(AccessController.java:100)
>                at 
> java.security.AccessController.checkPermission(AccessController.java:174)
>                at 
> java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>                at 
> java.lang.SecurityManager.checkAccess(SecurityManager.java:676)
>                at java.lang.Thread.checkAccess(Thread.java:459)
>                at java.lang.Thread.interrupt(Thread.java:588)
>                at 
> org.apache.derby.iapi.services.context.ContextService$1.run(Unknown Source)
>                at 
> java.security.AccessController.doPrivileged(AccessController.java:274)
>                at 
> org.apache.derby.iapi.services.context.ContextService.notifyAllActiveThreads(Unknown
>  Source)
>                at 
> org.apache.derby.impl.services.monitor.BaseMonitor.shutdown(Unknown Source)
>                at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
>                at org.apache.derby.jdbc.Driver20.connect(Unknown Source)
>                at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown 
> Source)
>                at java.sql.DriverManager.getConnection(DriverManager.java:571)
>                at java.sql.DriverManager.getConnection(DriverManager.java:233)
>                at 
> org.apache.derbyTesting.functionTests.util.TestUtil.getConnection(TestUtil.java:836)
>                at 
> org.apache.derbyTesting.functionTests.tests.store.RecoveryAfterBackup.main(RecoveryAfterBackup.java:82)
> modifyThread is a necessary permission if interrupting a thread other than 
> the current thread but is not in our policy file for derby.jar.
> The relevant code in ContextService is:
>            for (ContextManager cm : allContexts) {
>                               Thread active = cm.activeThread;
>                               if (active == me)
>                                       continue;
>                               if (active == null)
>                                       continue;
>                 final Thread fActive = active;
>                               if (cm.setInterrupted(c))
>                 {
>                     AccessController.doPrivileged(
>                             new PrivilegedAction<Void>() {
>                                 public Void run()  {
>                                     fActive.interrupt();
>                                     return null;
>                                 }
>                             });
>                 }
>               
> I am not sure why this has never come up before.  Are we expecting in this 
> context that fActive is the current thread?
>  



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to