Alberto Gomez created GEODE-10008:
-------------------------------------
Summary: Avoid possible EntryDestroyedException error in wan-copy
region command when entry destroyed in partitioned region
Key: GEODE-10008
URL: https://issues.apache.org/jira/browse/GEODE-10008
Project: Geode
Issue Type: Bug
Components: gfsh, wan
Reporter: Alberto Gomez
When the wan-copy region command is executed over a partitioned region, it is
possible that sometimes an EntryDestroyedException error is found if, while
reading the entries from the region, one of them is destroyed.
The error has been seen sometimes when running the following test:
WanCopyRegionCommandDUnitTest.
testSuccessfulExecutionWhileRunningOpsOnRegion(true, true).
Log of the error:
Multiple Failures (2 failures)
org.opentest4j.AssertionFailedError: [ Member |
Status | Message
------------------------------ | ------ |
---------------------------------------------------------------------------
alberto-dell(421543)<v2>:41010 | ERROR | Execution failed. Error:
org.apache.geode.cache.EntryDestroyedException: 26
alberto-dell(421504)<v1>:41009 | OK | Entries copied: 2,977
alberto-dell(421598)<v3>:41011 | OK | Entries copied: 3,042
]
expected: OK
but was: ERROR
java.lang.AssertionError: Suspicious strings were written to the log during
this run.
Fix the strings or use IgnoredException.addIgnoredException to ignore.
-----------------------------------------------------------------------
Found suspect string in 'dunit_suspect-vm6.log' at line 1883
[error 2022/02/01 08:58:59.046 CET <Function Execution Processor2> tid=99]
Exception occurred attempting to wan-copy region
java.util.concurrent.ExecutionException:
org.apache.geode.cache.EntryDestroyedException: 26
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at
org.apache.geode.cache.wan.internal.WanCopyRegionFunctionService.execute(WanCopyRegionFunctionService.java:90)
at
org.apache.geode.management.internal.cli.functions.WanCopyRegionFunction.executeFunctionInService(WanCopyRegionFunction.java:163)
at
org.apache.geode.management.internal.cli.functions.WanCopyRegionFunction.executeFunction(WanCopyRegionFunction.java:157)
at org.apache.geode.management.cli.CliFunction.execute(CliFunction.java:37)
at
org.apache.geode.internal.cache.MemberFunctionStreamingMessage.process(MemberFunctionStreamingMessage.java:201)
at
org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:382)
at
org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:447)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.geode.distributed.internal.ClusterOperationExecutors.runUntilShutdown(ClusterOperationExecutors.java:444)
at
org.apache.geode.distributed.internal.ClusterOperationExecutors.doFunctionExecutionThread(ClusterOperationExecutors.java:379)
at
org.apache.geode.logging.internal.executors.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:120)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.geode.cache.EntryDestroyedException: 26
at
org.apache.geode.internal.cache.NonTXEntry.basicGetEntry(NonTXEntry.java:62)
at org.apache.geode.internal.cache.NonTXEntry.getRegion(NonTXEntry.java:119)
at org.apache.geode.internal.cache.NonTXEntry.hashCode(NonTXEntry.java:157)
at java.util.HashMap.hash(HashMap.java:340)
at java.util.HashMap.put(HashMap.java:613)
at java.util.HashSet.add(HashSet.java:220)
at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at
java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at
java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647)
at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:272)
at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1580)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
at
org.apache.geode.management.internal.cli.functions.WanCopyRegionFunctionDelegate.getEntries(WanCopyRegionFunctionDelegate.java:193)
at
org.apache.geode.management.internal.cli.functions.WanCopyRegionFunctionDelegate.wanCopyRegion(WanCopyRegionFunctionDelegate.java:104)
at
org.apache.geode.management.internal.cli.functions.WanCopyRegionFunction.lambda$executeFunctionInService$0(WanCopyRegionFunction.java:164)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
... 1 more
--
This message was sent by Atlassian Jira
(v8.20.1#820001)