]
Radim Vansa updated JGRP-1898:
------------------------------
Attachment: FD_HOSTTest.java
This unit test reproduces the issue (and verifies that it's fixed).
FD_HOST many false suspect with Full GC
---------------------------------------
Key: JGRP-1898
URL:
https://issues.jboss.org/browse/JGRP-1898
Project: JGroups
Issue Type: Enhancement
Affects Versions: 3.5.1
Reporter: Takayoshi Kimura
Assignee: Takayoshi Kimura
Fix For: 3.4.7, 3.5.2, 3.6.1
Attachments: FD_HOSTTest.java, test-fdhost.zip
Currently FD_HOST PingTask has 2 loops, ping loop and cheking timeout loop.
{code}
for (h: hosts) { ping_and_update_timestamp(host) }
current = System.currentTimeMillis();
for (h: hosts) { compare current and (ping_timestmp + timeout) }
{code}
Testing with large number of hosts, after lengthy Full GC during the ping loop, FD_HOST
checks timeout and it counts the Full GC time in, sometimes causes many false suspects.
For example, 1 min Full GC and 50 sec timeout, all hosts are suspected with current
implementation.
To reduce the impact of the Full GC time, we can combine the 2 loops into 1 loop, ping
and checking timeout each host, so the Full GC delay only affects to a single host and
never affect to other hosts.