[Spread-users] Sudden freezes in message delivery using C API

John Lane Schultz jschultz at spreadconcepts.com
Tue May 22 11:26:56 EDT 2007

Doug Palmer wrote:
> We're using spread (4.0.0rc2) to provide messaging for a mixed Java/C++
> environment across a WAN and we're seeing odd freezes in components
> using the C API when we start sending a reasonable message rate. What
> happens is that message delivery appears to freeze for 2-5 seconds and
> then resume, with no messages lost. The messages are on the order of 1kb
> each.

Hi Doug,

More than likely what is happening is that you are experiencing intermittent 
losses that are occasionally hitting token control packets.  When a token packet 
is lost the system will appear to freeze until the token is regenerated after a 
timeout.  By default, this timeout is on the order of seconds.

The token regeneration timeout parameter (Hurry_timeout) is set near the top of 
membership.c in the Memb_init() fcn.  If Spread thinks you are on a WAN 
(Wide_network) the default token regeneration timeout is six seconds.  If Spread 
thinks you are on a LAN (!Wide_network) then the default timeout is two seconds.

As an attempt to diagnose if losing token packets is the problem you can lower 
that timeout and see if the hiccups get shorter.

> With two machines, trabant (remote) and beetle (local)
> trabant (C++) -> beetle (Java) 20mps bad
> trabant (Java) -> beetle (Java) 20mps OK
> trabant (Java) -> beetle (Java) 50mps OK
> trabant (Java) -> beetle (C++) 20mps OK
> trabant (Java) -> beetle (C++) >30mps bad
> beetle (Java) -> beetle (C++) >30mps OK
> And, bizarrely,
> trabant (Java) -> beetle (C++) >30mps and beetle (Java) -> beetle (Java) 20mps OK

I don't understand what you are trying to convey with the above table.  I doubt 
this is a Java vs. C issue.  If anything, in the past the C interface has been 
the more reliable / less buggy of the two interfaces.


John Schultz
Spread Concepts LLC
Phn: 443 838 2200
Fax: 301 560 8875

More information about the Spread-users mailing list