Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 9BC01200B95 for ; Tue, 27 Sep 2016 23:37:26 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 9A38D160AE5; Tue, 27 Sep 2016 21:37:26 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id BA0B2160AB9 for ; Tue, 27 Sep 2016 23:37:25 +0200 (CEST) Received: (qmail 31473 invoked by uid 500); 27 Sep 2016 21:37:24 -0000 Mailing-List: contact issues-help@geode.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.incubator.apache.org Delivered-To: mailing list issues@geode.incubator.apache.org Received: (qmail 31464 invoked by uid 99); 27 Sep 2016 21:37:24 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Sep 2016 21:37:24 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 79860C0DDD for ; Tue, 27 Sep 2016 21:37:24 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.646 X-Spam-Level: X-Spam-Status: No, score=-4.646 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id Hrq5PQVYMoYX for ; Tue, 27 Sep 2016 21:37:22 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 9C2C15FB1A for ; Tue, 27 Sep 2016 21:37:21 +0000 (UTC) Received: (qmail 30558 invoked by uid 99); 27 Sep 2016 21:37:20 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Sep 2016 21:37:20 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 969D02C2A6B for ; Tue, 27 Sep 2016 21:37:20 +0000 (UTC) Date: Tue, 27 Sep 2016 21:37:20 +0000 (UTC) From: "Kenneth Howe (JIRA)" To: issues@geode.incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (GEODE-538) PersistentColocatedPartitionedRegionDUnitTest.testRebalanceWithOfflineChildRegion failed if do not wait on getResult MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 27 Sep 2016 21:37:26 -0000 [ https://issues.apache.org/jira/browse/GEODE-538?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15527484#comment-15527484 ] Kenneth Howe commented on GEODE-538: ------------------------------------ With the async*.getResult(MAX_WAIT) commented out, then checkData() is called while persistent data recovery is still in progress following the child region creation on all the members. The test now (usually) fails because a PartitionedRegion.get() call targets a bucket that hasn't yet been recovered. PR.getNodeForBucketReadOrLoad() ends up creating a new bucket, and the get() ends up returning null. Examining full logs there will also be one or more members that throw ConflictingPersistentDataException when the recovery thread(s) tries to recover the bucket that was erroneously created. put() operations on PRs with incomplete persistent recovery can also cause this failure. > PersistentColocatedPartitionedRegionDUnitTest.testRebalanceWithOfflineChildRegion failed if do not wait on getResult > -------------------------------------------------------------------------------------------------------------------- > > Key: GEODE-538 > URL: https://issues.apache.org/jira/browse/GEODE-538 > Project: Geode > Issue Type: Bug > Components: persistence > Reporter: Jinmei Liao > Assignee: Kenneth Howe > Attachments: logs.zip > > > While attempting to work on GEODE-506, I commented out line s1538-1540 like the following > async1 = vm1.invokeAsync(createChildPR); > async0 = vm0.invokeAsync(createChildPR); > AsyncInvocation async2 = vm2.invokeAsync(createChildPR); > //async0.getResult(MAX_WAIT); -- line 1538 > //async1.getResult(MAX_WAIT); -- line 1539 > //async2.getResult(MAX_WAIT); -- line 1540 > This will reproduce the error similar to the one reported in GEODE506, but it failed on checking the data on parent region instead of the child region. Log files attached. > dunit.RMIException: While invoking com.gemstone.gemfire.internal.cache.partitioned.PersistentPartitionedRegionTestBase$5.run in VM 0 running on Host localhost with 4 VMs > at dunit.VM.invoke(VM.java:368) > at dunit.VM.invoke(VM.java:312) > at dunit.VM.invoke(VM.java:266) > at com.gemstone.gemfire.internal.cache.partitioned.PersistentPartitionedRegionTestBase.checkData(PersistentPartitionedRegionTestBase.java:182) > at com.gemstone.gemfire.internal.cache.partitioned.PersistentPartitionedRegionTestBase.checkData(PersistentPartitionedRegionTestBase.java:165) > at com.gemstone.gemfire.internal.cache.partitioned.PersistentColocatedPartitionedRegionDUnitTest.rebalanceWithOfflineChildRegion(PersistentColocatedPartitionedRegionDUnitTest.java:1543) > at com.gemstone.gemfire.internal.cache.partitioned.PersistentColocatedPartitionedRegionDUnitTest.testRebalanceWithOfflineChildRegion(PersistentColocatedPartitionedRegionDUnitTest.java:1223) > 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.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) > at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) > Caused by: junit.framework.AssertionFailedError: For key 1 expected: but was: > at junit.framework.Assert.fail(Assert.java:57) > at junit.framework.Assert.failNotEquals(Assert.java:329) > at junit.framework.Assert.assertEquals(Assert.java:78) > at junit.framework.TestCase.assertEquals(TestCase.java:244) > at com.gemstone.gemfire.internal.cache.partitioned.PersistentPartitionedRegionTestBase$5.run(PersistentPartitionedRegionTestBase.java:177) > 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 hydra.MethExecutor.executeObject(MethExecutor.java:267) > at dunit.standalone.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:77) > 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 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$256(TCPTransport.java:683) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) > 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) -- This message was sent by Atlassian JIRA (v6.3.4#6332)