Hi Daniel, thanks for your support - this problem really drives us crazy!
What version of jtreg are you using? If you are using a central one which was configured and build by Oracle, could you please also try with the one from https://adopt-openjdk.ci.cloudbees.com/job/jtreg/lastSuccessfulBuild/artifact/ ? Where can we find the generated policy files? It seems they get deleted during test post-run cleanup phase (at least I could not find any of them under JTwork). Is there a way to get a more detailed trace on how JTreg executes testng and to leave all the generated files in place after the test? I'm currently running the following JAXP test and get the same error as described by Christoph: /tmp/jtreg/bin/jtreg -verbose:summary -jdk /output-jdk9-hs-dbg/images/jdk/ /OpenJDK/jdk9-hs/jaxp/test/javax/xml/jaxp/functional/catalog/CatalogReferCircularityTest.java What I don't really understand is how this is supposed to work at all, because every JAXP test which runs with "-DrunSecMngr=true" will execute the following code from JAXPPolicyManager: /* * Install a SecurityManager along with a default Policy to allow testNG to * run when there is a security manager. */ private JAXPPolicyManager() { // Backing up policy and security manager for restore policyBackup = Policy.getPolicy(); smBackup = System.getSecurityManager(); // Set customized policy setDefaultPermissions(); Policy.setPolicy(policy); System.setSecurityManager(new SecurityManager()); } Won't this code override the settings from the policy file which was potentially installed by jtreg for testng? The setDefaultPermissions() sets some special permissions for testng, but not "accessDeclaredMembers": private void setDefaultPermissions() { //Permissions to set security manager and policy addPermission(new SecurityPermission("getPolicy")); addPermission(new SecurityPermission("setPolicy")); addPermission(new RuntimePermission("setSecurityManager")); //Properties that jtreg and TestNG require addPermission(new PropertyPermission("testng.show.stack.frames", "read")); addPermission(new PropertyPermission("test.src", "read")); addPermission(new PropertyPermission("test.classes", "read")); addPermission(new PropertyPermission("dataproviderthreadcount", "read")); addPermission(new PropertyPermission("experimental", "read")); } If I add the line: addPermission(new RuntimePermission("accessDeclaredMembers")); to setDefaultPermissions(), the test will succeed. I saw that an early version of "JDK-8067170: Enable security manager on JAXP unit tests" contained that extra permission, but you objected (http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-July/042520.html) and it was removed in the final version. Any more hints? Thanks, Volker On Tue, Nov 22, 2016 at 12:24 PM, Daniel Fuchs <daniel.fu...@oracle.com> wrote: > Hi Christoph, > > Is there anything funny with the place jtreg is installed? > like: > - path contains whitespaces > - path is accessible through links or mount points... > > It seems clear that the issue here is that testng classes are > missing some permissions, so I was wondering whether that could > be caused by the actual path to testng.jar not matching the > path injected in the policy file. > > I'm using jtreg 4.2 fcs b03, and have no issues with the jaxp tests: > > $ cd jaxp/tests > $ rm -r JT* > $ jtreg -verbose:summary -ignore:quiet -jdk > ../../build/macosx-x86_64-normal-server-release/images/jdk javax/ > > => the only test that fails is > javax/xml/jaxp/isolatedjdk/catalog/PropertiesTest.sh, but that's expected > (it's in the ProblemList.txt). > > The other thing to take care of, is not to run two jtreg process > concurrently if they point to the same JT* directories. If you do > that then you might experience weird failures with permissions > issues (it seems to mess the policy files). > > best regards, > > -- daniel > > > On 22/11/16 10:52, Langer, Christoph wrote: >> >> Yes, please find it here: >> http://cr.openjdk.java.net/~clanger/jtreg/XSLTFunctionsTest.jtr >> >> >>> -----Original Message----- >>> From: Chris Hegarty [mailto:chris.hega...@oracle.com] >>> Sent: Dienstag, 22. November 2016 11:03 >>> To: Langer, Christoph <christoph.lan...@sap.com> >>> Cc: core-libs-dev@openjdk.java.net; code-tools-...@openjdk.java.net; >>> jtreg- >>> u...@openjdk.java.net >>> Subject: Re: Issues running JAXP jtreg tests >>> ("java.lang.RuntimePermission" >>> "accessDeclaredMembers") >>> >>> >>>> On 22 Nov 2016, at 09:43, Langer, Christoph <christoph.lan...@sap.com> >>> >>> wrote: >>>> >>>> >>>> Hi Chris, >>>> >>>> thanks for this hint. However, we've already seen this change and >>>> rebuilt >>> >>> jtreg with the latest jtreg repo. But it doesn't change a thing. >>>> >>>> >>>> Also, the download from https://adopt- >>> >>> openjdk.ci.cloudbees.com/job/jtreg/lastSuccessfulBuild/artifact/ where I >>> would >>> suppose latest jtreg sources were used, don't help. >>>> >>>> >>>> Am I missing something? >>> >>> >>> Is it possible to post, or upload to cr.o.j.n, the jtr of the failing >>> test? >>> >>> -Chris. >>> >>>> Best regards >>>> Christoph >>>> >>>>> -----Original Message----- >>>>> From: Chris Hegarty [mailto:chris.hega...@oracle.com] >>>>> Sent: Dienstag, 22. November 2016 10:08 >>>>> To: Langer, Christoph <christoph.lan...@sap.com> >>>>> Cc: core-libs-dev@openjdk.java.net; code-tools-...@openjdk.java.net; >>>>> jtreg- >>>>> u...@openjdk.java.net >>>>> Subject: Re: Issues running JAXP jtreg tests >>>>> ("java.lang.RuntimePermission" >>>>> "accessDeclaredMembers") >>>>> >>>>> Hi Christoph, >>>>> >>>>> Can you please ensure that your build of jtreg contains the fix for >>>>> 7901792 >>> >>> [1]. >>>>> >>>>> 7901792 grants <JTREG_HOME>/lib/testng.jar all permissions. >>>>> >>>>> -Chris. >>>>> >>>>> [1] https://bugs.openjdk.java.net/browse/CODETOOLS-7901792 >>>>> >>>>>> On 22 Nov 2016, at 08:38, Langer, Christoph <christoph.lan...@sap.com> >>>>> >>>>> wrote: >>>>>> >>>>>> >>>>>> Hi, >>>>>> >>>>>> I'm currently struggling while running jtreg tests for the jaxp depot. >>>>>> >>>>>> There are several tests that fail with the same symptom. I always get >>>>> >>>>> exceptions like: >>>>>> >>>>>> java.security.AccessControlException: access denied >>>>> >>>>> ("java.lang.RuntimePermission" "accessDeclaredMembers") >>>>>> >>>>>> at >>>>> >>>>> >>> >>> java.base/java.security.AccessControlContext.checkPermission(AccessControlCo >>>>> >>>>> ntext.java:471) >>>>>> >>>>>> at >>>>> >>>>> >>> >>> java.base/java.security.AccessController.checkPermission(AccessController.java >>>>> >>>>> :894) >>>>>> >>>>>> at >>>>> >>>>> >>> >>> java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:5 >>>>> >>>>> 48) >>>>>> >>>>>> at java.base/java.lang.Class.checkMemberAccess(Class.java:2595) >>>>>> at java.base/java.lang.Class.getDeclaredMethods(Class.java:2162) >>>>>> at >>> >>> org.testng.internal.ClassHelper.extractMethods(ClassHelper.java:217) >>>>>> >>>>>> at >>>>> >>>>> >>>>> org.testng.internal.ClassHelper.getAvailableMethods(ClassHelper.java:182) >>>>>> >>>>>> at >>> >>> org.testng.internal.Parameters.findDataProvider(Parameters.java:323) >>>>>> >>>>>> at >>> >>> org.testng.internal.Parameters.findDataProvider(Parameters.java:259) >>>>>> >>>>>> at >>>>> >>>>> org.testng.internal.Parameters.handleParameters(Parameters.java:419) >>>>>> >>>>>> at >>>>>> org.testng.internal.Invoker.handleParameters(Invoker.java:1274) >>>>>> at >>>>>> org.testng.internal.Invoker.createParameters(Invoker.java:989) >>>>>> at >>>>>> org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1079) >>>>>> at >>>>> >>>>> >>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker. >>>>> >>>>> java:129) >>>>>> >>>>>> at >>>>> >>>>> org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) >>>>>> >>>>>> at org.testng.TestRunner.privateRun(TestRunner.java:782) >>>>>> at org.testng.TestRunner.run(TestRunner.java:632) >>>>>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:366) >>>>>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361) >>>>>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319) >>>>>> at org.testng.SuiteRunner.run(SuiteRunner.java:268) >>>>>> at >>>>>> org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) >>>>>> at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) >>>>>> at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244) >>>>>> at org.testng.TestNG.runSuitesLocally(TestNG.java:1169) >>>>>> at org.testng.TestNG.run(TestNG.java:1064) >>>>>> at >>>>> >>>>> >>> >>> com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java: >>>>> >>>>> 224) >>>>>> >>>>>> at >>>>> >>>>> >>> >>> com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java: >>>>> >>>>> 188) >>>>>> >>>>>> at >>>>> >>>>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native >>>>> Method) >>>>>> >>>>>> at >>>>> >>>>> >>> >>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethod >>>>> >>>>> AccessorImpl.java:62) >>>>>> >>>>>> at >>>>> >>>>> >>> >>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Delegatin >>>>> >>>>> gMethodAccessorImpl.java:43) >>>>>> >>>>>> at java.base/java.lang.reflect.Method.invoke(Method.java:537) >>>>>> at >>>>> >>>>> >>> com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.j >>>>> >>>>> ava:110) >>>>>> >>>>>> at java.base/java.lang.Thread.run(Thread.java:844) >>>>>> >>>>>> For instance the test >>>>> >>>>> javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java fails like >>>>> this. >>>>>> >>>>>> >>>>>> It's calling "testng -DrunSecMngr=true" and obviously some important >>>>> >>>>> permission for testing is missing with that. >>>>>> >>>>>> >>>>>> I'm using most current jtreg (with testng-6.9.10.jar) >>>>>> >>>>>> >>>>>> Thanks for any help. >>>>>> >>>>>> >>>>>> Best regards >>>>>> Christoph >>>> >>>> >> >