Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-5811

8 test failures on IBM iseries - java.security.AccessControlException: Access denied (java.io.FilePermission ... jre/bin/java execute)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • 10.9.1.0
    • None
    • Test
    • IBM iseries V6R1, V7R1, ibm 1.5 (SR12 FP1 + IZ94331, build pap32devifx-20110211), 1.6 (SR9+IZ94423, build pap3260sr9ifix-20110211_02). also 64 bit.
    • Normal

    Description

      On iseries, I see 8 test failures with the 10.9.1.0 RC that do not occur with 10.8.2.2. The test failures occur in the following tets:

      1) org.apache.derbyTesting.functionTests.tests.lang.SequenceGeneratorTest
      test_13_5494
      2) spawnProcess:AutoloadTest(org.apache.derbyTesting.functionTests.tests.jdbcapi.AutoloadTest)java.security.AccessControlException: Access denied
      3) spawnProcess:JDBCDriversEmbeddedTest(org.apache.derbyTesting.functionTests.tests.jdbcapi.AutoloadTest)
      4) spawnProcess:JDBCDriversClientTest(org.apache.derbyTesting.functionTests.tests.jdbcapi.AutoloadTest
      5) spawnProcess:JDBCDriversAllTest(org.apache.derbyTesting.functionTests.tests.jdbcapi.AutoloadTest
      6) testBasicRecovery(org.apache.derbyTesting.functionTests.tests.store.RecoveryTest)
      7) testOCRecovery(org.apache.derbyTesting.functionTests.tests.store.OCRecoveryTest)
      8) testLeak(org.apache.derbyTesting.functionTests.tests.memory.Derby5730Test

      Although I've seen trouble that appears intermittent with the AutoloadTest (see DERBY-5800), this appears different - it's a very specific warning about the jre/bin/java executable lacking the java.io.FilePermission execute.
      As we don't see this on other systems, this at first glance appears to be a jvm issue, or perhaps there are some special permission settings required for the user on iseries to support running these tests (as I'm by no means an iseries specialist, I don't know what these permissions would be).

      There were no failures in derbyall, and there are other tests which launch jvm processes, but I've not found what's different about these tests from others.

      Here's the stack trace from the test output for the first failure on the list:
      test_13_5494(org.apache.derbyTesting.functionTests.tests.lang.SequenceGeneratorTest)java.security.AccessControlException: Access denied (java.io.FilePermission /QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit/jre/bin/java execute)
      at java.security.AccessController.checkPermission(AccessController.java:103)
      at java.lang.SecurityManager.checkPermission(SecurityManager.java:558)
      at java.lang.SecurityManager.checkExec(SecurityManager.java:805)
      at java.lang.ProcessBuilder.start(ProcessBuilder.java:475)
      at java.lang.Runtime.exec(Runtime.java:607)
      at java.lang.Runtime.exec(Runtime.java:480)
      at org.apache.derbyTesting.junit.BaseTestCase$8.run(BaseTestCase.java:575)
      at java.security.AccessController.doPrivileged(AccessController.java:241)
      at org.apache.derbyTesting.junit.BaseTestCase.execJavaCmd(BaseTestCase.java:571)
      at org.apache.derbyTesting.junit.BaseTestCase.assertExecJavaCmdAsExpected(BaseTestCase.java:507)
      at org.apache.derbyTesting.junit.BaseTestCase.assertLaunchedJUnitTestMethod(BaseTestCase.java:915)
      at org.apache.derbyTesting.functionTests.tests.lang.SequenceGeneratorTest.test_13_5494(SequenceGeneratorTest.java:786)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:113)
      at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:424)
      at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:441)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)

      And here's the one for the last test failure:
      8) testLeak(org.apache.derbyTesting.functionTests.tests.memory.Derby5730Test)java.security.AccessControlException: Access denied (java.io.FilePermission /QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit/jre/bin/java execute)
      at java.security.AccessController.checkPermission(AccessController.java:103)
      at java.lang.SecurityManager.checkPermission(SecurityManager.java:558)
      at java.lang.SecurityManager.checkExec(SecurityManager.java:805)
      at java.lang.ProcessBuilder.start(ProcessBuilder.java:475)
      at java.lang.Runtime.exec(Runtime.java:607)
      at java.lang.Runtime.exec(Runtime.java:480)
      at org.apache.derbyTesting.junit.BaseTestCase$8.run(BaseTestCase.java:575)
      at java.security.AccessController.doPrivileged(AccessController.java:241)
      at org.apache.derbyTesting.junit.BaseTestCase.execJavaCmd(BaseTestCase.java:571)
      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:79)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:113)

      I've done a number of experiments, but the tests consistently fail.

      • modifications to CLASSPATH (with/without derby.jar, derbyrun.jar after, before derby.jar, derbyTesting.jar before/after derbyrun.jar)
      • with/without setting $JAVA_HOME, with/without -Djava.home
      • 32bit, 64bit jvm

      Attachments

        1. d5811repro.jar
          9 kB
          Myrna van Lunteren

        Issue Links

          Activity

            People

              Unassigned Unassigned
              myrna Myrna van Lunteren
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: