]
Dennis Reed commented on JGRP-2095:
-----------------------------------
Suggested fix:
remove writeToFile call from fetchClusterMembers
add a writeToFile call sometime during startup. (has to be after
Event.SET_LOCAL_ADDRESS for local_addr, and after Event.CONNECT* for group_addr)
FILE_PING rewrites files too often
----------------------------------
Key: JGRP-2095
URL:
https://issues.jboss.org/browse/JGRP-2095
Project: JGroups
Issue Type: Bug
Affects Versions: 3.2.13
Reporter: Dennis Reed
Assignee: Bela Ban
FILE_PING.fetchClusterMembers writes its own data to file on every call.
If there is an issue finding a cluster member's address, fetchClusterMembers can be
called very frequently by TP's GET_PHYSICAL_ADDRESS calls.
This can cause problems because while that file is being (unnecessarily) overwritten, any
readers will see an empty or corrupt file. If it's bad enough JGRP-1448 is not
sufficient to handle it, and readers will end up thinking the file is stale and delete it
(even while it's still in progress of being written). That missing file can then
cascade the problem, with other nodes not being able to find this member's address,
and triggering the same problem again.
There is already a scheduled task to rewrite the file occasionally, so rewriting it on
every fetchClusterMembers call is not needed.