You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by he...@apache.org on 2018/11/28 17:25:41 UTC
[geode] branch develop updated (d80b6e0 -> f873d34)
This is an automated email from the ASF dual-hosted git repository.
heybales pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.
from d80b6e0 GEODE-6077: Fixing race in test hook
add 4ca93d8 GEODE-5407: fix JMXMBeanReconnectDUnitTest timing
add 58cd8e3 fail the test when waits timeout
add f84a5c0 Merge branch 'develop' into GEODE-5407
add 0deb632 create a single connection per locator and reuse it
add 065d11c make suggested changes from PR comments
new f873d34 GEODE-5407: fix JMXMBeanReconnectDUnitTest timing (#2833)
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../management/JMXMBeanReconnectDUnitTest.java | 306 +++++++++++----------
.../apache/geode/test/dunit/rules/MemberVM.java | 66 +++--
.../geode/test/junit/rules/ConcurrencyRule.java | 40 ++-
.../test/junit/rules/ConcurrencyRuleTest.java | 47 +++-
4 files changed, 280 insertions(+), 179 deletions(-)
[geode] 01/01: GEODE-5407: fix JMXMBeanReconnectDUnitTest timing
(#2833)
Posted by he...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
heybales pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
commit f873d3482e06e883dd560e90ed1de1a4cbc06325
Merge: d80b6e0 065d11c
Author: Helena Bales <hb...@pivotal.io>
AuthorDate: Wed Nov 28 09:25:31 2018 -0800
GEODE-5407: fix JMXMBeanReconnectDUnitTest timing (#2833)
* GEODE-5407: fix JMXMBeanReconnectDUnitTest timing
This test class had several timing isses for the remote MBean tests.
This PR fixes all known timing issues, which were MBean inconsistencies
in the before() and trouble reconnecting stopped members, as well as
insufficiently strict assertions (comparing lists with
.containsExactlyElementsOf() is not commutative). This commit also
changes MemberVM's forceDisconnect to use a blackboard mailbox instead
of a fixed amount of time to decid when to start reconnecting. It also
adds functionality to the ConcurrencyRule to act as an awaitility.
* In waitForLocatorsToAgreeOnMembership, called from the before, the
MBeans that each locator has were only compared by list size. Now they
are compared element by element, and the sizes are checked to be
correct.
* In waitForLocatorToAgreeOnMembership, the wait was returning
prematurely after the first pass due to Awaitlity.untilAsserted not
working correctly. For this method, a simple implementation using
assertions and Awaitility caused memory issues, so the current
implementation uses do/while loops, compares the lists element by
element, and starts a single thread that is allowed to run for 300
seconds.
* In the tests, the timing was not strictly enforced. The disconnect and
starting the reconnect now happen in different threads. The thread that
starts the reconnect checks that the disconnect has happened, gathers
relevant information, then signals that reconnect can start, which the
reconnect thread now checks for. This ensures that we don't gather
MBeans before the member has fully stopped, and that reconnect does not
start until we've gathered the MBeans.
* Assertions have been made more strict by checking that lists against
each other twice, since Assertions.containsExactlyElementsOf() is not
commutative.
* Use a blackboard entry to check if the stopped member should start
reconnecting in the reconnect listener attached from MemberVM when
forcing a member to disconnect.
* Add functionality to ConcurrencyRule to act as an awaitility,
expecting a value to eventually be true. This was added during the
process of trying to solve this bug but is not used in the final
implementation.
* fail the test when waits timeout
* create a single connection per locator and reuse it
* make suggested changes from PR comments
.../management/JMXMBeanReconnectDUnitTest.java | 306 +++++++++++----------
.../apache/geode/test/dunit/rules/MemberVM.java | 66 +++--
.../geode/test/junit/rules/ConcurrencyRule.java | 40 ++-
.../test/junit/rules/ConcurrencyRuleTest.java | 47 +++-
4 files changed, 280 insertions(+), 179 deletions(-)