Occasionally, messages get too large for the UDP transport
----------------------------------------------------------
Key: JGRP-667
URL:
http://jira.jboss.com/jira/browse/JGRP-667
Project: JGroups
Issue Type: Bug
Reporter: Bela Ban
Assigned To: Bela Ban
Fix For: 2.6.2, 2.7
When message bundling is enabled (say max_bytes=60K), every now and then we get a larger
message (say 70K), and then the msg is dropped because UDP has a size limit of 65K.
This can happen as follows:
- Either magic-map.xml is not found or some headers are not in magic-map
- Say we accumulated 100 messages in the message bundler. Before adding a new message, the
bundler
checks its size (Message.size()), which calls size() on all headers
- A header just assumes it has a magic number and returns its size, including 2 bytes for
the magic number (a
short)
- If magic-number.xml is not found, or some headers have no magic number, then we write
the fully qualified
classname of the class into the stream. So let's assume that's 30 bytes versus
the 2 size() returned.
- If we have 3 headers/msg which have the additional 28 bytes, and 100 messages, then the
serialized
message is 8400 bytes larger than what Message.size() returned
- So the marshalled message is now 68400 bytes and it will get discarded by UDP !
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira