[
https://issues.apache.org/jira/browse/GEODE-8771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17245560#comment-17245560
]
Jinmei Liao commented on GEODE-8771:
------------------------------------
some more note: changing the invalidate thread to do put won't hang and a
single put or a single invalidate thread also wouldn't hang.
> concurrent puts and invalidates will cause PR clear to hang
> -----------------------------------------------------------
>
> Key: GEODE-8771
> URL: https://issues.apache.org/jira/browse/GEODE-8771
> Project: Geode
> Issue Type: Sub-task
> Components: core
> Reporter: Jinmei Liao
> Assignee: Jinmei Liao
> Priority: Major
> Labels: GeodeOperationAPI
>
> On current feature/GEODE-7665 feature branch. The below test will hang:
> {quote}public class PRClearIntegrationTest {
> @Rule
> public ServerStarterRule server = new ServerStarterRule().withAutoStart();
> @Rule
> public ExecutorServiceRule executor = new ExecutorServiceRule();
> @Test
> public void test() throws Exception {
> InternalCache cache = server.getCache();
> Region<Object, Object> region = server.createPartitionRegion("regionA",
> f->{}, f->f.setTotalNumBuckets(1));
> cache.getQueryService().createIndex("indexA", "r", "/regionA r");
> region.put(0, "value0");
> CompletableFuture<Void> put = executor.runAsync(() ->
> {
> Thread.currentThread().setName("put-Thread");
> IntStream.range(0, 1).forEach(i-> region.invalidate(i, i)); }
> );
> CompletableFuture<Void> invalidate = executor.runAsync(() ->
> {
> Thread.currentThread().setName("invalidate-Thread");
> IntStream.range(0, 1).forEach(i-> region.invalidate(0)); }
> );
> CompletableFuture<Void> clear = executor.runAsync(() ->
> {
> Thread.currentThread().setName("Clear-Thread");
> region.clear(); }
> );
> put.get();
> clear.get();
> invalidate.get();
> }
> }
> {quote}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)