accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Havanki (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACCUMULO-2102) ShellSetInstanceTest failures on clean system
Date Fri, 03 Jan 2014 15:28:50 GMT

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

Bill Havanki commented on ACCUMULO-2102:
----------------------------------------

I think the problem may lie in the use of {{SiteConfiguration}} (line 431 in Shell.java).
It only creates a single static instance object during the run, so after the first time it
is used in a unit test, subsequent unit tests should receive the same object with an old mock
inside, instead of a new one with a new mock. This would explain why a test passes when you
run it by itself, but they fail when all tests in the file are run (your second comment).

What it doesn't explain is why it always passes for me! But perhaps a way to get it to work
consistently is to add another test support method to {{SiteConfiguration}} to clear its singleton
{{instance}} field, so that it can be reset between tests.

> ShellSetInstanceTest failures on clean system
> ---------------------------------------------
>
>                 Key: ACCUMULO-2102
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2102
>             Project: Accumulo
>          Issue Type: Bug
>          Components: test
>         Environment: OpenJDK 1.7.0_45 or Oracle JDK 1.7.0_45 or OpenJDK 1.6.0_27, Git:
7838d403, Maven 3.0.4 or 3.1.1
>            Reporter: Josh Elser
>             Fix For: 1.6.0
>
>
> Installed a new system, and am seeing test failures on ShellSetInstanceTest.
> {noformat}
> java.lang.AssertionError: 
>   Unexpected method call ClientConfiguration.containsKey("instance.dfs.dir"):
> 	at org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:44)
> 	at org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:85)
> 	at org.easymock.internal.ClassProxyFactory$MockMethodInterceptor.intercept(ClassProxyFactory.java:94)
> 	at org.apache.accumulo.core.client.ClientConfiguration$$EnhancerByCGLIB$$470faeab.containsKey(<generated>)
> 	at org.apache.accumulo.core.client.impl.ServerConfigurationUtil$1.get(ServerConfigurationUtil.java:41)
> 	at org.apache.accumulo.core.conf.SiteConfiguration.get(SiteConfiguration.java:67)
> 	at org.apache.accumulo.core.util.shell.Shell.getZooInstance(Shell.java:433)
> 	at org.apache.accumulo.core.util.shell.Shell.setInstance(Shell.java:414)
> 	at org.apache.accumulo.core.util.shell.ShellSetInstanceTest.testSetInstance_HdfsZooInstance(ShellSetInstanceTest.java:188)
> 	at org.apache.accumulo.core.util.shell.ShellSetInstanceTest.testSetInstance_HdfsZooInstance_HostsGiven(ShellSetInstanceTest.java:121)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:312)
> 	at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:88)
> 	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:96)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:296)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit49RunnerDelegateImpl$PowerMockJUnit49MethodRunner.executeTestInSuper(PowerMockJUnit49RunnerDelegateImpl.java:116)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit49RunnerDelegateImpl$PowerMockJUnit49MethodRunner.executeTest(PowerMockJUnit49RunnerDelegateImpl.java:77)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:284)
> 	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:86)
> 	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:209)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:148)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:122)
> 	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:33)
> 	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:45)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:120)
> 	at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:101)
> 	at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53)
> 	at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:53)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
> 	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
> 	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
> 	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
> 	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
> {noformat}
> I also noticed the following exception printed to stdout, not sure if it's the root cause
> {noformat}
> [main} WARN  org.apache.accumulo.core.conf.SiteConfiguration  - accumulo-site.xml not
found on classpath
> java.lang.Throwable
> 	at org.apache.accumulo.core.conf.SiteConfiguration.getXmlConfig(SiteConfiguration.java:51)
> 	at org.apache.accumulo.core.conf.SiteConfiguration.get(SiteConfiguration.java:62)
> 	at org.apache.accumulo.core.util.shell.Shell.getZooInstance(Shell.java:437)
> 	at org.apache.accumulo.core.util.shell.Shell.setInstance(Shell.java:414)
> 	at org.apache.accumulo.core.util.shell.ShellSetInstanceTest.testSetInstance_HdfsZooInstance(ShellSetInstanceTest.java:188)
> 	at org.apache.accumulo.core.util.shell.ShellSetInstanceTest.testSetInstance_HdfsZooInstance_InstanceGiven(ShellSetInstanceTest.java:117)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:312)
> 	at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:88)
> 	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:96)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:296)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit49RunnerDelegateImpl$PowerMockJUnit49MethodRunner.executeTestInSuper(PowerMockJUnit49RunnerDelegateImpl.java:116)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit49RunnerDelegateImpl$PowerMockJUnit49MethodRunner.executeTest(PowerMockJUnit49RunnerDelegateImpl.java:77)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:284)
> 	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:86)
> 	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:209)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:148)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:122)
> 	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:33)
> 	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:45)
> 	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:120)
> 	at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:101)
> 	at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53)
> 	at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:53)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
> 	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
> 	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
> 	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
> 	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
> {noformat}
> The above errors are from the method testSetInstance_HdfsZooInstance_HostsGiven, but
I also get similar failures on testSetInstance_HdfsZooInstance_Implicit and testSetInstance_HdfsZooInstance_Explicit



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

Mime
View raw message