You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Jason Huynh (JIRA)" <ji...@apache.org> on 2016/03/07 23:48:42 UTC

[jira] [Commented] (GEODE-521) PRColocatedEquiJoinDUnitTest.testPRRRNonLocalQueryingWithNoRROnOneNode has suspicious strings

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

Jason Huynh commented on GEODE-521:
-----------------------------------

The message that is being logged is due to the way the test is written.  Two nodes are started and a function execution occurs.  The "coordinating" node spins a local thread to execute locally and sends a message to the other node to execute.  The other node fails as expected (the region is not found on the other node).  This is sent back to the "caller" of the function service.  The test completes and shutdown begins.  Now, the lingering local thread now starts up and realizes that the cache is shutting down.  This leads to this error message being logged.  

I will open another ticket for this as this message itself should probably be at most a warning, but it is not the test that is failing.  However the exception of cache closed or bucket moved is probably an uncaught exception that trickles all the way up to the thread group which logs it as fatal.

The function service might also be modified to kill the local thread if any of the remote threads cause the execution to fail.

This specific issue with buckets moved exception did not actually reproduce but after changing the behavior of the product (to allow some mistiming) we were able to get a similar exception.

> PRColocatedEquiJoinDUnitTest.testPRRRNonLocalQueryingWithNoRROnOneNode has suspicious strings
> ---------------------------------------------------------------------------------------------
>
>                 Key: GEODE-521
>                 URL: https://issues.apache.org/jira/browse/GEODE-521
>             Project: Geode
>          Issue Type: Bug
>          Components: querying
>            Reporter: xiaojian zhou
>            Assignee: Jason Huynh
>              Labels: CI
>
> revision fc4bbfc13e3de49d6d217c02dd93662d2d3e01af
> {noformat}
> java.lang.AssertionError: Suspicious strings were written to the log during this run.
> Fix the strings or use DistributedTestCase.addExpectedException to ignore.
> -----------------------------------------------------------------------
> Found suspect string in log4j at line 1419
> [fatal 2015/10/29 21:08:20.546 PDT <Function Execution Processor1> tid=0x1c2c] Unexpected exception during function execution on local node Partitioned Region
> com.gemstone.gemfire.cache.execute.FunctionException: com.gemstone.gemfire.internal.cache.execute.BucketMovedException: Bucket migrated to another node. Please retry.
> 	at com.gemstone.gemfire.cache.query.partitioned.PRColocatedEquiJoinDUnitTest$4$1TestQueryFunction.execute(PRColocatedEquiJoinDUnitTest.java:1666)
> 	at com.gemstone.gemfire.internal.cache.execute.AbstractExecution.executeFunctionLocally(AbstractExecution.java:367)
> 	at com.gemstone.gemfire.internal.cache.execute.AbstractExecution$1.run(AbstractExecution.java:302)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at com.gemstone.gemfire.distributed.internal.DistributionManager.runUntilShutdown(DistributionManager.java:701)
> 	at com.gemstone.gemfire.distributed.internal.DistributionManager$9$1.run(DistributionManager.java:1158)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: com.gemstone.gemfire.internal.cache.execute.BucketMovedException: Bucket migrated to another node. Please retry.
> 	at com.gemstone.gemfire.internal.cache.execute.PartitionedRegionFunctionResultSender.lastResult(PartitionedRegionFunctionResultSender.java:134)
> 	at com.gemstone.gemfire.cache.query.partitioned.PRColocatedEquiJoinDUnitTest$4$1TestQueryFunction.execute(PRColocatedEquiJoinDUnitTest.java:1663)
> 	... 7 more
> 	at org.junit.Assert.fail(Assert.java:88)
> 	at dunit.standalone.DUnitLauncher.closeAndCheckForSuspects(DUnitLauncher.java:318)
> 	at dunit.DistributedTestCase.cleanupAllVms(DistributedTestCase.java:793)
> 	at dunit.DistributedTestCase.realTearDown(DistributedTestCase.java:768)
> 	at dunit.DistributedTestCase.tearDown(DistributedTestCase.java:746)
> 	at junit.framework.TestCase.runBare(TestCase.java:146)
> 	at junit.framework.TestResult$1.protect(TestResult.java:122)
> 	at junit.framework.TestResult.runProtected(TestResult.java:142)
> 	at junit.framework.TestResult.run(TestResult.java:125)
> 	at junit.framework.TestCase.run(TestCase.java:129)
> 	at junit.framework.TestSuite.runTest(TestSuite.java:252)
> 	at junit.framework.TestSuite.run(TestSuite.java:247)
> 	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
> 	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:105)
> 	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:56)
> 	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:64)
> 	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:50)
> 	at sun.reflect.GeneratedMethodAccessor240.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:497)
> 	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
> 	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
> 	at org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
> 	at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
> 	at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
> 	at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:106)
> 	at sun.reflect.GeneratedMethodAccessor239.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:497)
> 	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
> 	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
> 	at org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:360)
> 	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
> 	at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
> 	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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)