5
[hannel,192.168.0.46:40014] 15:08:03,642 - ERROR - org.jgroups.protocols.UDP - failed sending message to null (61 bytes)
java.lang.Exception: dest=/225.1.2.46:30446 (64 bytes)
    at org.jgroups.protocols.UDP._send(UDP.java:333)
    at org.jgroups.protocols.UDP.sendToAllMembers(UDP.java:283)
    at org.jgroups.protocols.TP.doSend(TP.java:1327)
    at org.jgroups.protocols.TP.send(TP.java:1317)
    at org.jgroups.protocols.TP.down(TP.java:1038)
    at org.jgroups.protocols.PING.sendMcastDiscoveryRequest(PING.java:220)
    at org.jgroups.protocols.PING.sendGetMembersRequest(PING.java:214)
    at org.jgroups.protocols.Discovery$PingSenderTask$1.run(Discovery.java:385)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:280)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:135)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:65)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:142)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:166)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
    at java.lang.Thread.run(Thread.java:595)
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:324)
    ... 16 more

This is happening during load testing on the server. Should I worry about it. Aside from getting that message in the log, everything seem to work OK.

matt b
  • 138,234
  • 66
  • 282
  • 345
Nik
  • 255
  • 2
  • 3
  • 12

3 Answers3

3

In response to matt b, the "failed sending message to null" message is misleading. The true problem is the InterruptedIOException. This means that someone called interrupt() on the Thread that was sending UDP. Most likely, the interrupt is generated within JGroups. (Unless you started, and then stopped the JGroups channel.)

Looking at the stack trace, the interrupted I/O was from a Discovery protocol. It was trying to discover other cluster members. Thus, no message of yours was lost from this Exception.

We would have to know more to really figure this one out.

Eddie
  • 53,828
  • 22
  • 125
  • 145
1

Sending to "null" means sending to the entire cluster, versus sending a message to a single member. I agree, this is a bit misleading, so I changed this in later version: IIRC "null" was replaced to with "cluster" or "group".

"null" here referred to the destination: a null destination address means send to the entire cluster.

The InterruptedIOException comes from the sender thread being stopped by JGroups; this happens for example when we already have enough responses in the discovery phase to return, and so the send task is stopped (ie., interrupted).

This was also fixed in later versions of JGroups. Bela

Bela Ban
  • 271
  • 1
  • 1
0

Is it possible you are getting an error because you are sending a message to "null"?

ERROR - org.jgroups.protocols.UDP - failed sending message to null

Otherwise this is probably pretty hard for anyone else to help you out with without code samples, information on your network, the specific situation where your problem occurs, etc.

matt b
  • 138,234
  • 66
  • 282
  • 345
  • That's not it. This is a misleading part of this complaint in JGroups, and it's a red herring. I've looked into similar errors before. – Eddie Jan 24 '09 at 01:09
  • I wish it would be that simple. The way this is setup, you join a channel and any messages sent to that channel are replicated to all the node(s) that have joined. There's no destination specified in the code. The: Caused by: java.io.InterruptedIOException: operation interrupted Lead me to think there's a timeout happening or something. – Nik Dec 16 '08 at 21:48