[Vivek Sar]
I'm using JGroups 2.5 GA and have 3 members in the group using udp
gossip router (stack below). Occasionally, we have seen the following
exception if a node goes down and comes up again. This happens over
and over, only way to recover would then be to stop all the members
and start them again.
2007-10-25 12:08:32,717 ERROR [MergeTask] GMS - exception while merging
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at org.jgroups.protocols.pbcast.CoordGmsImpl.removeRejectedMergeRequests(CoordGmsImpl.java:749)
at org.jgroups.protocols.pbcast.CoordGmsImpl.access$500(CoordGmsImpl.java:26)
at org.jgroups.protocols.pbcast.CoordGmsImpl$MergeTask.run(CoordGmsImpl.java:817)
at java.lang.Thread.run(Unknown Source)
2007-10-25 12:08:32,717 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 12:08:51,443 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 12:08:51,443 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 13:09:27,237 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 13:09:39,934 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 13:09:39,934 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 13:09:55,013 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 13:09:55,013 ERROR [MergeTask] GMS - coords or merge_id == null
...
...
Protocol Stack,
<config>
<UDP
ip_mcast="false"
mcast_addr="228.10.10.10"
mcast_port="3092"
bind_addr="${jgroups.bindaddress.ip:jgroupshost}"
bind_port="${jgroups.bindaddress.port:3092}"
tos="16"
ucast_recv_buf_size="200000"
ucast_send_buf_size="640000"
mcast_recv_buf_size="250000"
mcast_send_buf_size="640000"
loopback="true"
discard_incompatible_packets="true"
max_bundle_size="64000"
max_bundle_timeout="30"
use_incoming_packet_handler="true"
use_outgoing_packet_handler="false"
ip_ttl="32"
enable_bundling="true"
use_concurrent_stack="true"
thread_pool.enabled="true"
thread_pool.min_threads="1"
thread_pool.max_threads="100"
thread_pool.keep_alive_time="20000"
thread_pool.queue_enabled="false"
thread_pool.queue_max_size="10"
thread_pool.rejection_policy="Run"
oob_thread_pool.enabled="true"
oob_thread_pool.min_threads="1"
oob_thread_pool.max_threads="4"
oob_thread_pool.keep_alive_time="30000"
oob_thread_pool.queue_enabled="true"
oob_thread_pool.queue_max_size="10"
oob_thread_pool.rejection_policy="Run"/>
<PING gossip_host="${jgroups.gossiprouter.ip:jgroupshost}"
gossip_port="${jgroups.gossiprouter.port:3091}"
gossip_refresh="15000"
timeout="3000"
num_initial_members="3"/>
<MERGE2 min_interval="5000" max_interval="10000"
down_thread="false" up_thread="false"/>
<FD_SOCK up_thread="false" down_thread="false"/>
<FD timeout="10000" max_tries="5" shun="true"/>
<VERIFY_SUSPECT timeout="1500"/>
<pbcast.NAKACK max_xmit_size="60000"
use_mcast_xmit="false" gc_lag="0"
retransmit_timeout="100,200,300,600,1200,2400,4800"
discard_delivered_msgs="true"/>
<UNICAST timeout="300,600,1200,2400,3600"/>
<ENCRYPT key_store_name="keystore" store_password="xxx"
key_password="xxx" alias="xxx"/>
<pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
max_bytes="400000"/>
<VIEW_SYNC avg_send_interval="60000"/>
<AUTH auth_class="org.jgroups.auth.MD5Token"
auth_value="xxx"
token_hash="MD5"/>
<pbcast.GMS print_local_addr="true" join_timeout="5000"
join_retry_timeout="2000" shun="true"/>
<FC max_credits="2000000"
min_threshold="0.10"/>
<FRAG2 frag_size="60000"/>
<pbcast.STATE_TRANSFER />
</config>