]
Bela Ban commented on JGRP-560:
-------------------------------
Works for NAKACK - but that never was the issue: unicast messages don't work.
Workaround for now:
- FRAG2.frag_size="10000" (under 16K)
- NAKACK.max_xmit_size="12000"
- UDP.max_bundle_size="14000"
Message greater than 16286 bytes is not received on MaxOS
---------------------------------------------------------
Key: JGRP-560
URL:
http://jira.jboss.com/jira/browse/JGRP-560
Project: JGroups
Issue Type: Bug
Reporter: Bela Ban
Assigned To: Bela Ban
Fix For: 2.6
I'm new to JGroups, and I have a Mac OS X (10.4)-specific question. I've used
JGroups 2.4.1sp3, 2.5.0CR1, and the new 2.5.0GA - I see the same issue with
all versions.
I've noticed that, for UDP, there seems to be a max message size of 16286
bytes (a little less than 16K). This is using the default udp.xml config,
and just a simple message to another node like:
JChannel ch = new JChannel("udp.xml");
ch.setReceiver(this);
ch.connect("TEST");
//
// 'target' is another group member besides myself
//
byte[] buf = new byte[size];
Arrays.fill(buf, (byte)77);
echo("Sending message: " + size + " bytes");
Message msg = new Message(target, null, buf);
ch.send(msg);
A receiver node will NOT receive the message if 'size' is greater than
16286. In fact, after sending a too-large message, the receiver sees no
message trafffic so it starts doing heartbeats and view changes). I've
attached some debug output below.
TCP transport does not have this problem.
I'm aware of the tos="8" attribute warning in OS X, and changing the value
to 0 to avoid the warning doesn't affect the max size issue. Though perhaps
it's the same Mac quirk causing both problems...
I've searched around, but haven't seen anything about this. Is it a known
issue? Is there a workaround? Am I doing something wrong?
Thanks in advance,
Rick Pike
Debug output:
-------------------------
SENDER:
(Sends increasing size messages, 2 sec apart. As soon as the size goes
beyond 16286, it notices a problem).
Sending message: 16284 bytes
Sending message: 16285 bytes
Sending message: 16286 bytes
2007-07-17 12:06:25,934 [DEBUG] FD sending are-you-alive msg to
192.168.2.71:51607 (own address=192.168.2.71:51610)
2007-07-17 12:06:25,936 [DEBUG] FD received ack from 192.168.2.71:51607
Sending message: 16287 bytes
Sending message: 16288 bytes
RECEIVER:
(Gets messages OK until 16287. I assume FD starts because it sees no message
traffic.)
Received message: 16284 bytes
Received message: 16285 bytes
Received message: 16286 bytes
2007-07-17 12:06:25,876 [DEBUG] FD sending are-you-alive msg to
192.168.2.71:51610 (own address=192.168.2.71:51607)
2007-07-17 12:06:25,884 [DEBUG] FD received ack from 192.168.2.71:51610
2007-07-17 12:06:29,305 [DEBUG] MERGE2
initial_mbrs=[[own_addr=192.168.2.71:51610, coord_addr=192.168.2.71:51607,
is_server=true], [own_addr=192.168.2.71:51607,
coord_addr=192.168.2.71:51607, is_server=true]]
2007-07-17 12:06:35,877 [DEBUG] FD sending are-you-alive msg to
192.168.2.71:51610 (own address=192.168.2.71:51607)
2007-07-17 12:06:35,880 [DEBUG] FD received ack from 192.168.2.71:51610
2007-07-17 12:06:42,496 [DEBUG] MERGE2
initial_mbrs=[[own_addr=192.168.2.71:51610, coord_addr=192.168.2.71:51607,
is_server=true], [own_addr=192.168.2.71:51607,
coord_addr=192.168.2.71:51607, is_server=true]]
2007-07-17 12:06:45,879 [DEBUG] FD sending are-you-alive msg to
192.168.2.71:51610 (own address=192.168.2.71:51607)
2007-07-17 12:06:45,880 [DEBUG] FD received ack from 192.168.2.71:51610
2007-07-17 12:06:50,453 [DEBUG] FD_SOCK peer closed socket normally
2007-07-17 12:06:50,453 [DEBUG] FD_SOCK pinger thread terminated
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: