> On Dec. 16, 2016, 2:04 a.m., Jinmei Liao wrote: > > geode-core/src/test/java/org/apache/geode/security/IntegratedSecurityCacheLifecycleDistributedTest.java, > > line 62 > > <https://reviews.apache.org/r/54801/diff/1/?file=1586749#file1586749line62> > > > > Try see if you can use the LocatorServerStartupRule, it makes spin off > > locator/server much easier in any of the Vms. > > Kirk Lund wrote: > I tried using the rule and this is the last line in the before method: > > this.locatorServerStartupRule.startLocatorVM(this.locatorIndex, > properties); > > this.locatorIndex equals zero. There is nothing else creating anything in > that VM, but it fails with: > > org.apache.geode.test.dunit.RMIException: While invoking > org.apache.geode.test.dunit.rules.LocatorServerStartupRule$$Lambda$12/1878169648.call > in VM 0 running on Host 192.168.1.11 with 4 VMs > at org.apache.geode.test.dunit.VM.invoke(VM.java:344) > at org.apache.geode.test.dunit.VM.invoke(VM.java:314) > at org.apache.geode.test.dunit.VM.invoke(VM.java:282) > at > org.apache.geode.test.dunit.rules.LocatorServerStartupRule.startLocatorVM(LocatorServerStartupRule.java:89) > at > org.apache.geode.security.SecurityManagerCallbacksDistributedTest.before(SecurityManagerCallbacksDistributedTest.java:76) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) > at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) > at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) > at org.junit.rules.RunRules.evaluate(RunRules.java:20) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) > at org.junit.runner.JUnitCore.run(JUnitCore.java:137) > at > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117) > at > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42) > at > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262) > at > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) > Caused by: java.lang.IllegalStateException: A locator can not be created > because one already exists in this JVM. > at > org.apache.geode.distributed.internal.InternalLocator.createLocator(InternalLocator.java:277) > at > org.apache.geode.distributed.internal.InternalDistributedSystem.startInitLocator(InternalDistributedSystem.java:783) > at > org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:669) > at > org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:297) > at > org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:202) > at > org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:751) > at > org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:380) > at > org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:322) > at org.apache.geode.distributed.Locator.startLocator(Locator.java:255) > at > org.apache.geode.distributed.Locator.startLocatorAndDS(Locator.java:142) > at > org.apache.geode.test.dunit.rules.LocatorStarterRule.startLocator(LocatorStarterRule.java:71) > at > org.apache.geode.test.dunit.rules.LocatorServerStartupRule.lambda$startLocatorVM$5cc94dbd$1(LocatorServerStartupRule.java:92) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at hydra.MethExecutor.executeObject(MethExecutor.java:245) > at > org.apache.geode.test.dunit.standalone.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:73) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) > at sun.rmi.transport.Transport$1.run(Transport.java:200) > at sun.rmi.transport.Transport$1.run(Transport.java:197) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:196) > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$256(TCPTransport.java:683) > at java.security.AccessController.doPrivileged(Native Method) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > > Jinmei Liao wrote: > looks like a locator is already started up in that vm? Can you upload > your test here and maybe we can take a look? Here is an example of lsRule > usage: ClusterConfigWithoutSecurityDUnitTest > Oh, one more thing, does your test extends JUnit4DistributedTestCase? It > should extends that instead of CacheTest....
Since the test is working without the Rule and has already gone through precheckin, I'm going to commit it as is. - Kirk ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/54801/#review159402 ----------------------------------------------------------- On Dec. 16, 2016, 10:11 p.m., Kirk Lund wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/54801/ > ----------------------------------------------------------- > > (Updated Dec. 16, 2016, 10:11 p.m.) > > > Review request for geode, Jinmei Liao, Jared Stewart, and Kevin Duling. > > > Bugs: GEODE-1662 and GEODE-2207 > https://issues.apache.org/jira/browse/GEODE-1662 > https://issues.apache.org/jira/browse/GEODE-2207 > > > Repository: geode > > > Description > ------- > > The point of this test originally was to start up a Manager and a non-Manager > with a SecurityManager and verify that init and close were correctly being > invoked in both. At some point the test was marked as Flaky and then > completed disabled with Ignore. > > I've renamed the test and some methods to make it more clear about what it's > doing and testing. I also tried to make it more stable and ran it 1000 times > to try to shake the flakiness. It seems stable now. > > > Diffs > ----- > > > geode-core/src/test/java/org/apache/geode/security/IntegratedSecurityCacheLifecycleDistributedTest.java > 00a9276c51c45e5260a3795258d186f99edaa21f > geode-core/src/test/java/org/apache/geode/security/SpySecurityManager.java > 8704e934a04910907bbcda068629086d9c278143 > > Diff: https://reviews.apache.org/r/54801/diff/ > > > Testing > ------- > > targeted testing for flakiness > precheckin in progress > > > File Attachments > ---------------- > > With Rule > > https://reviews.apache.org/media/uploaded/files/2016/12/16/48f16ec0-e57a-4bc1-8183-649f1fde5fca__SecurityManagerCallbacksDistributedTest.java > Without Rule > > https://reviews.apache.org/media/uploaded/files/2016/12/16/739cb2d0-6798-45ab-863f-b400d4e814a3__SecurityManagerCallbacksDistributedTest.java > > > Thanks, > > Kirk Lund > >