[
https://issues.apache.org/jira/browse/GEODE-9675?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17435719#comment-17435719
]
Bill Burcham edited comment on GEODE-9675 at 10/28/21, 11:34 PM:
-----------------------------------------------------------------
Looking at the offending test method (included below) I see a few things wrong:
# The comment “Demonstrate that a new UDP port is used…” is at odds with the
assertion at the end of the method (which asserts that the same port is used).
# Contrary to the comment, GMSMembership doesn’t “shun” members when they are
shutting down, rather it keeps them in a shutdownMembers set so as to attenuate
failure detection signals from them. Perhaps in the dim past these members were
actually “shunned”?
# I have no idea why the test disconnect()s, then re-acquires system and
membership and then disconnect()s again before calling getLocalMember() on the
membership acquired before the second disconnect!
# The TODO at line 167 seems superfluous since we proceed to set just such a
system property on the very next line
# Whether the property is set or not, on line 168, the test passes! (at least
in manual runs)—implying that setting that system property is superfluous.
Which leads me to believe this test is worthless and the best fix for
GEODE-9675 may be to delete this test.
!screenshot-1.png!
was (Author: bburcham):
Looking at the offending test method (included below) I see a few things wrong:
# The comment “Demonstrate that a new UDP port is used…” is at odds with the
assertion at the end of the method (which asserts that the same port is used).
# Contrary to the comment, GMSMembership doesn’t “shun” members when they are
shutting down, rather it keeps them in a shutdownMembers set so as to attenuate
failure detection signals from them. Perhaps in the dim past these members were
actually “shunned”?
# I have no idea why the test disconnect()s, then re-acquires system and
membership and then disconnect()s again before calling getLocalMember() on the
membership acquired before the second disconnect!
# The TODO at line 167 seems superfluous since we proceed to set just such a
system property on the very next line
# Whether the property is set or not, on line 168, the test passes! (at least
in manual runs)—implying that setting that system property is superfluous.
Which leads me to believe this test is worthless and the best fix for
GEODE-9675 may be to delete this test.
!screenshot-1.png!
> CI: ClusterDistributionManagerDUnitTest > testConnectAfterBeingShunned FAILED
> -----------------------------------------------------------------------------
>
> Key: GEODE-9675
> URL: https://issues.apache.org/jira/browse/GEODE-9675
> Project: Geode
> Issue Type: Bug
> Components: membership
> Affects Versions: 1.15.0
> Reporter: Xiaojian Zhou
> Assignee: Bill Burcham
> Priority: Major
> Labels: needsTriage
> Attachments: screenshot-1.png
>
>
> https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-mass-test-run/jobs/distributed-test-openjdk8/builds/1983
> {code:java}
> ClusterDistributionManagerDUnitTest > testConnectAfterBeingShunned FAILED
> org.apache.geode.SystemConnectException: Problem starting up membership
> services
> at
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:186)
> at
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at
> org.apache.geode.distributed.internal.ClusterDistributionManager.<init>(ClusterDistributionManager.java:466)
> at
> org.apache.geode.distributed.internal.ClusterDistributionManager.<init>(ClusterDistributionManager.java:499)
> at
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:328)
> at
> org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:757)
> at
> org.apache.geode.distributed.internal.InternalDistributedSystem.access$200(InternalDistributedSystem.java:133)
> at
> org.apache.geode.distributed.internal.InternalDistributedSystem$Builder.build(InternalDistributedSystem.java:3013)
> at
> org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:283)
> at
> org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:209)
> at
> org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:159)
> at
> org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase.getSystem(JUnit4DistributedTestCase.java:180)
> at
> org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase.getSystem(JUnit4DistributedTestCase.java:256)
> at
> org.apache.geode.distributed.internal.ClusterDistributionManagerDUnitTest.testConnectAfterBeingShunned(ClusterDistributionManagerDUnitTest.java:170)
> Caused by:
>
> org.apache.geode.distributed.internal.membership.api.MemberStartupException:
> unable to create jgroups channel
> at
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.start(JGroupsMessenger.java:401)
> at
> org.apache.geode.distributed.internal.membership.gms.Services.start(Services.java:203)
> at
> org.apache.geode.distributed.internal.membership.gms.GMSMembership.start(GMSMembership.java:1642)
> at
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:171)
> ... 13 more
> Caused by:
> java.lang.Exception: failed to open a port in range 41003-41003
> at
> org.jgroups.protocols.UDP.createMulticastSocketWithBindPort(UDP.java:503)
> at org.jgroups.protocols.UDP.createSockets(UDP.java:348)
> at org.jgroups.protocols.UDP.start(UDP.java:266)
> at
> org.jgroups.stack.ProtocolStack.startStack(ProtocolStack.java:966)
> at org.jgroups.JChannel.startStack(JChannel.java:889)
> at org.jgroups.JChannel._preConnect(JChannel.java:553)
> at org.jgroups.JChannel.connect(JChannel.java:288)
> at org.jgroups.JChannel.connect(JChannel.java:279)
> at
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.start(JGroupsMessenger.java:397)
> ... 16 more
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)