]
Radim Vansa edited comment on JGRP-1898 at 11/27/14 9:46 AM:
-------------------------------------------------------------
Attached unit test reproduces the issue (and verifies that it's fixed).
was (Author: rvansa):
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.