As my application runs, I get repeated stack traces in the file that look like:
05:03:18,386 ERROR [UDP] failed sending message to null (56 bytes)
java.lang.Exception: dest=/224.8.8.8:45568 (59 bytes)
at org.jgroups.protocols.UDP._send(UDP.java:361)
at org.jgroups.protocols.UDP.__AW_sendToAllMembers(UDP.java:302)
at org.jgroups.protocols.UDP.sendToAllMembers(UDP.java)
at org.jgroups.protocols.TP.doSend(TP.java:1486)
at org.jgroups.protocols.TP.send(TP.java:1476)
at org.jgroups.protocols.TP.__AW_down(TP.java:1197)
at org.jgroups.protocols.TP.down(TP.java)
at org.jgroups.protocols.PING.sendMcastDiscoveryRequest(PING.java:278)
at org.jgroups.protocols.PING.__AW_sendGetMembersRequest(PING.java:259)
at org.jgroups.protocols.PING.sendGetMembersRequest(PING.java)
at org.jgroups.protocols.Discovery$PingSenderTask$1.run(Discovery.java:40
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.a
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.r
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.r
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecu
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.InterruptedIOException: operation interrupted
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:612)
at org.jgroups.protocols.UDP._send(UDP.java:352)
... 19 more
This seems very similar to JGRP-647 and JGRP-1161.
I believe the problem to be that org.jgroups.protocols.UDP._send() is catching all Exceptions, and wrapping them with java.lang.Exception to re-throw with additional info. However, it also catches InterruptedIOExceptions, and wraps them. The rest of JGroups (and the DiscoveryTask in particular) protect themselves from logging java.io.InterruptedIOExceptions, but not against InterruptedIOExceptions wrapped by Exceptions.
I checked the source for 2.6.10.GA, 2.6.14.GA, and 2.9.0.GA, and they all still had the InterruptedIOException wrapped by Exception.
I have fixed the problem by just changing my log4j settings, as the problem is intermittent, not constant. JGroups itself seems to be working correctly, it's just verbose in it's logging. Additionally, it may just be that the out-of-the-box JBoss AS 5.1.0.GA is misconfigured. This seems to be related to JMS and Messaging, as the port numbers involved are always the ones configured by JBoss Messaging.
I apologize if this is a duplicate bug.