org.jgroups.protocols.UDP — не удалось отправить сообщение в ноль

StackOverflow https://stackoverflow.com/questions/372771

  •  21-08-2019
  •  | 
  •  

Вопрос

[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

Это происходит во время нагрузочного тестирования на сервере.Стоит ли мне беспокоиться об этом.Если не считать появления этого сообщения в журнале, похоже, все работает нормально.

Это было полезно?

Решение

В ответ на мат b сообщение «не удалось отправить сообщение на ноль» вводит в заблуждение.Настоящая проблема — InterruptedIOException.Это означает, что кто-то вызвал прерывание() в потоке, который отправлял UDP.Скорее всего, прерывание генерируется внутри JGroups.(Если только вы не запустили, а затем не остановили канал JGroups.)

Судя по трассировке стека, прерванный ввод-вывод произошел по протоколу Discovery.Он пытался обнаружить других членов кластера.Таким образом, ни одно ваше сообщение из этого исключения не потерялось.

Нам нужно знать больше, чтобы действительно понять это.

Другие советы

Отправка в «null» означает отправку всему кластеру, а не отправку сообщения одному члену.Я согласен, это немного вводит в заблуждение, поэтому я изменил это в более поздней версии:IIRC «ноль» был заменен на «кластер» или «группа».

«null» здесь относится к пункту назначения:нулевой адрес назначения означает отправку всему кластеру.

Исключение InterruptedIOException возникает из-за того, что поток отправителя останавливается JGroups;это происходит, например, когда у нас уже есть достаточно ответов на этапе обнаружения для возврата, и поэтому задача отправки останавливается (т. е. прерывается).

Это также было исправлено в более поздних версиях JGroups.Бела

Возможно ли, что вы получаете сообщение об ошибке, потому что отправляете сообщение «ноль»?

ОШИБКА — org.jgroups.protocols.UDP — не удалось отправить сообщение в ноль.

В противном случае кому-либо другому, вероятно, будет довольно сложно помочь вам без примеров кода, информации о вашей сети, конкретной ситуации, в которой возникает ваша проблема, и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top