[
https://issues.apache.org/jira/browse/GEODE-671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15277297#comment-15277297
]
Darrel Schneider commented on GEODE-671:
----------------------------------------
The most recent failure was caused by this: "EntryNotFoundException: expiration
task no longer has access to region entry".
In this case the test is waiting for a RegionEntry to expire. But it sees it
still exists so it tries to use internal apis to log debug info as to why it is
still waiting.
It is the debug logging that make a call that fails with the
EntryNotFoundException because the RegionEntry does expire in this small window.
It should be pretty easy to get rid of this race by catch
EntryNotFoundException when calling "eet.getExpirationTime" and then confirming
that the RegionEntry no longer exists.
> CI failure: DistributedAckRegionOffHeapDUnitTest.testEntryTtlLocalDestroy
> -------------------------------------------------------------------------
>
> Key: GEODE-671
> URL: https://issues.apache.org/jira/browse/GEODE-671
> Project: Geode
> Issue Type: Bug
> Components: offheap
> Reporter: Jens Deppe
> Labels: CI, Flaky
>
> {noformat}
> Error Message
> dunit.RMIException: While invoking
> com.gemstone.gemfire.cache30.MultiVMRegionTestCase$189.run in VM 0 running on
> Host cc1-co.gemstone.com with 4 VMs
> Stacktrace
> dunit.RMIException: While invoking
> com.gemstone.gemfire.cache30.MultiVMRegionTestCase$189.run in VM 0 running on
> Host cc1-co.gemstone.com with 4 VMs
> at dunit.VM.invoke(VM.java:369)
> at dunit.VM.invoke(VM.java:312)
> at dunit.VM.invoke(VM.java:266)
> at
> com.gemstone.gemfire.cache30.MultiVMRegionTestCase.testEntryTtlLocalDestroy(MultiVMRegionTestCase.java:4077)
> 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 junit.framework.TestCase.runTest(TestCase.java:176)
> at junit.framework.TestCase.runBare(TestCase.java:141)
> 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.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.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.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.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)
> Caused by:
> com.gemstone.gemfire.cache30.CacheSerializableRunnable$CacheSerializableRunnableException:
> While invoking ""Check local destroy"", caused by
> com.gemstone.gemfire.cache.EntryNotFoundException: expiration task no longer
> has access to region entry
> at
> com.gemstone.gemfire.cache30.CacheSerializableRunnable.run(CacheSerializableRunnable.java:59)
> at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at hydra.MethExecutor.executeObject(MethExecutor.java:267)
> at
> dunit.standalone.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:77)
> at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)
> 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$95(TCPTransport.java:683)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
> ... 3 more
> Caused by: com.gemstone.gemfire.cache.EntryNotFoundException: expiration task
> no longer has access to region entry
> at
> com.gemstone.gemfire.internal.cache.EntryExpiryTask.getCheckedRegionEntry(EntryExpiryTask.java:85)
> at
> com.gemstone.gemfire.internal.cache.EntryExpiryTask.getLastModifiedTime(EntryExpiryTask.java:105)
> at
> com.gemstone.gemfire.internal.cache.ExpiryTask.getTTLExpirationTime(ExpiryTask.java:122)
> at
> com.gemstone.gemfire.internal.cache.ExpiryTask.getExpirationTime(ExpiryTask.java:104)
> at
> com.gemstone.gemfire.cache30.MultiVMRegionTestCase$189$1.done(MultiVMRegionTestCase.java:4114)
> at
> dunit.DistributedTestCase.waitForCriterion(DistributedTestCase.java:1117)
> at
> com.gemstone.gemfire.cache30.MultiVMRegionTestCase$189.run2(MultiVMRegionTestCase.java:4134)
> at
> com.gemstone.gemfire.cache30.CacheSerializableRunnable.run(CacheSerializableRunnable.java:55)
> ... 21 more
> Standard Output
> Previously run tests: [DistributedAckRegionCompressionDUnitTest,
> DistributedAckRegionOffHeapDUnitTest]
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)