[ 
https://issues.apache.org/jira/browse/GEODE-8771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jinmei Liao updated GEODE-8771:
-------------------------------
    Description: 
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}

  was:
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}


> 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)

Reply via email to