bschuchardt commented on a change in pull request #6037:
URL: https://github.com/apache/geode/pull/6037#discussion_r581153205
##########
File path:
geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
##########
@@ -1231,23 +1197,16 @@ public void shutdownMessageReceived(ID id, String
reason) {
if (logger.isDebugEnabled()) {
logger.debug("Membership: recording shutdown status of {}", id);
}
- synchronized (this.shutdownMembers) {
- this.shutdownMembers.put(id, id);
- services.getHealthMonitor()
- .memberShutdown(id, reason);
- services.getJoinLeave().memberShutdown(id, reason);
- }
+ this.shutdownMembers.add(id);
+ services.getJoinLeave().memberShutdown(id, reason);
}
@Override
public Set<ID> getMembersNotShuttingDown() {
- latestViewReadLock.lock();
- try {
- return latestView.getMembers().stream().filter(id ->
!shutdownMembers.containsKey(id))
+ synchronized (shutdownMembers) {
Review comment:
Since this is a potentially long linked list I don't think copy-on-write
is a good pattern to use for shutdownMembers.
This method is invoked on every message-send, so maybe using a synchronized
collection isn't a great idea and we should use the read/write lock instead.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]