<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>

<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7226.0">
<TITLE>Re: [Spread-users] Sess_validate_read_header: Message has illegal type field 0x80000080</TITLE>
</HEAD>
<BODY>
<DIV id=idOWAReplyText38203 dir=ltr>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>Jonathon,</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial size=2>You are correct that I was talking about 
the C code this time.&nbsp; The C code does push the TCP socket code up to the 
system maximum, but as you note it is still possible to overflow that.&nbsp; 
When you say that the overflow condition is handled correctly, do you mean in 
the way that we observe:&nbsp; Sess_read gets invalid header data and then 
closes the connection?&nbsp;&nbsp; Do you think there is anything we could do on 
the SP_multicast side to detect that the length would overflow the TCP buffer 
and then possibly wait?&nbsp; Are there ioctls calls that could do this before a 
send?</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial size=2>Thanks,</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2>Scott</FONT></DIV></DIV>
<DIV dir=ltr><BR>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Jonathan Stanton 
[mailto:jonathan@cnds.jhu.edu]<BR><B>Sent:</B> Thu 4/21/2005 5:48 
PM<BR><B>To:</B> Scott Barvick<BR><B>Cc:</B> 
spread-users@lists.spread.org<BR><B>Subject:</B> Re: [Spread-users] 
Sess_validate_read_header: Message has illegal type field 
0x80000080<BR></FONT><BR></DIV>
<DIV>
<P><FONT size=2>Mentioning this reminded me of something. I remember in the past 
there<BR>was a problem someone had that went away if they increased the 
tcp<BR>socket_buffers on the client-server tcp connections. If you are 
using<BR>Java, the code that increases the socket buffers is commented out in 
the<BR>library we distribute becuase it wasn't compatible with old JVM's, 
but<BR>if you are running anything current you can uncomment it and 
increase<BR>the buffer sizes.<BR><BR>Scott, I thought you were using the C 
library, not java? Is that<BR>correct? The C library does increase the socket 
buffer size, although it<BR>can still be filled, and that should be handled 
correctly.<BR><BR>Jonathan<BR><BR>On Thu, Apr 21, 2005 at 05:32:41PM -0400, 
Scott Barvick wrote:<BR>&gt; After more experimentation and upgrading to 3.17.3 
(which still showed<BR>&gt; the problem), I believe this is the same as the Java 
problems - we are<BR>&gt; trying to send more data into the TCP socket than it 
can hold.&nbsp; With big<BR>&gt; sends and high rates, a temporary increase in 
load on the daemon will<BR>&gt; cause the clients to overrun the TCP 
buffer.&nbsp; This resulted in the<BR>&gt; Sess_read reading in all 0s for the 
header and then appropriately<BR>&gt; calling it invalid.<BR>&gt;<BR>&gt; Is 
there any way for the SP_multicast() to monitor the TCP queue and<BR>&gt; block 
on a send until there is enough room?<BR>&gt;<BR>&gt; Thanks,<BR>&gt; 
Scott<BR>&gt;<BR>&gt; On Tue, 2005-04-19 at 20:18, Ryan Caudy wrote:<BR>&gt; 
&gt; The interaction there seems fairly normal -- if I had to guess, I<BR>&gt; 
&gt; would say that this points to a memory-corrupting bug.&nbsp; I assume 
this<BR>&gt; &gt; is version 3.17.2 or 3.17.3?<BR>&gt; &gt;<BR>&gt; &gt; 
Cheers,<BR>&gt; &gt; Ryan<BR>&gt; &gt;<BR>&gt; &gt; On 4/19/05, Scott Barvick 
&lt;sbarvick@revasystems.com&gt; wrote:<BR>&gt; &gt; &gt; Greetings,<BR>&gt; 
&gt; &gt;<BR>&gt; &gt; &gt; I'm getting the following error when running with a 
few test systems,<BR>&gt; &gt; &gt; and I'm curious if others have seen anything 
similar.&nbsp; I believe we are<BR>&gt; &gt; &gt; hitting it medium hard with 
sends between 2 systems.&nbsp; When I disconnect<BR>&gt; &gt; &gt; one system 
with a hard stop of the app, the other system sees this,<BR>&gt; &gt; &gt; 
processes the membership changes, but then a short time later kills the<BR>&gt; 
&gt; &gt; client session when it receives a type field that has no type bits 
set<BR>&gt; &gt; &gt; (only the endian bit - 0x80000080).<BR>&gt; &gt; 
&gt;<BR>&gt; &gt; &gt; I turned on SESSION and GROUP debug logging and included 
the output<BR>&gt; &gt; &gt; below.&nbsp; I was looking through the code to see 
how a message can get<BR>&gt; &gt; &gt; through without the (FIFO_MESS | 
SELF_DISCARD) bits set as we send them<BR>&gt; &gt; &gt; with the SP_multicast() 
call.&nbsp; It probably is significant that the group<BR>&gt; &gt; &gt; just 
dropped from 2 members to 1 member (the sender), but this works<BR>&gt; &gt; 
&gt; fine in the steady state operation, even with only one member.<BR>&gt; &gt; 
&gt;<BR>&gt; &gt; &gt; Any similar experience or thoughts?<BR>&gt; &gt; 
&gt;<BR>&gt; &gt; &gt; Thanks,<BR>&gt; &gt; &gt; Scott<BR>&gt; &gt; &gt;<BR>&gt; 
&gt; &gt; -------------------<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; [...] lots 
more where this came from<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
*****&nbsp; Other system goes down ******<BR>&gt; &gt; &gt; Send_join: State is 
4<BR>&gt; &gt; &gt; Send_join: State is 4<BR>&gt; &gt; &gt; Memb_handle_token: 
handling form2 token<BR>&gt; &gt; &gt; Handle_form2 in FORM<BR>&gt; &gt; &gt; 
Memb_transitional<BR>&gt; &gt; &gt; G_handle_trans_memb:<BR>&gt; &gt; &gt; 
G_handle_trans_memb in GOP<BR>&gt; &gt; &gt; G_handle_trans_memb: Received trans 
memb id of: {proc_id: -1408236782<BR>&gt; &gt; &gt; time: 1113940766}<BR>&gt; 
&gt; &gt; Memb_regular<BR>&gt; &gt; &gt; Membership id is ( -1408236782, 
1113940767)<BR>&gt; &gt; &gt; --------------------<BR>&gt; &gt; &gt; 
Configuration at testsys8 is:<BR>&gt; &gt; &gt; Num Segments 1<BR>&gt; &gt; 
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
239.16.3.18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4803<BR>&gt; &gt; 
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
testsys8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
172.16.3.18<BR>&gt; &gt; &gt; ====================<BR>&gt; &gt; &gt; 
G_handle_reg_memb:&nbsp; with (172.16.3.18, 1113940767) id<BR>&gt; &gt; &gt; 
G_handle_reg_memb in GTRANS<BR>&gt; &gt; &gt; G_handle_reg_memb: skipping state 
transfer for group RTestGroup.<BR>&gt; &gt; &gt; G_handle_reg_memb: skipping 
state transfer for group TTestGroup.<BR>&gt; &gt; &gt; G_handle_reg_memb: 
skipping state transfer for group GTestGroup.<BR>&gt; &gt; &gt; Sess_read: 
Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message 
of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; Sess_read: Message has 
type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 
with len 0 to the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; ******** start to receive membership messages 
******<BR>&gt; &gt; &gt; received TRANSITIONAL membership for group 
RTestGroup<BR>&gt; &gt; &gt; Received REGULAR membership for group RTestGroup 
with 1 members, where I<BR>&gt; &gt; &gt; am member 0:<BR>&gt; &gt; 
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #RTEST0#testsys8<BR>&gt; 
&gt; &gt; grp id is -1408236782 1113940767 1<BR>&gt; &gt; &gt; Due to NETWORK 
change. VS set has 1 members:<BR>&gt; &gt; 
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #RTEST0#testsys8<BR>&gt; 
&gt; &gt; received TRANSITIONAL membership for group TTestGroup<BR>&gt; &gt; 
&gt; received TRANSITIONAL membership for group GTestGroup<BR>&gt; &gt; &gt; 
Received REGULAR membership for group TTestGroup with 1 members, where I<BR>&gt; 
&gt; &gt; am member 0:<BR>&gt; &gt; 
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #TTEST0#testsys8<BR>&gt; 
&gt; &gt; grp id is -1408236782 1113940767 1<BR>&gt; &gt; &gt; Due to NETWORK 
change. VS set has 1 members:<BR>&gt; &gt; 
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #TTEST0#testsys8<BR>&gt; 
&gt; &gt; Received REGULAR membership for group GTestGroup with 1 members, where 
I<BR>&gt; &gt; &gt; am member 0:<BR>&gt; &gt; 
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #TTEST0#testsys8<BR>&gt; 
&gt; &gt; grp id is -1408236782 1113940767 1<BR>&gt; &gt; &gt; Due to NETWORK 
change. VS set has 1 members:<BR>&gt; &gt; 
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #TTEST0#testsys8<BR>&gt; 
&gt; &gt; ***** we thought things were ok *******<BR>&gt; &gt; &gt; Sess_read: 
Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message 
of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; Sess_read: Message has 
type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 
with len 0 to the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x800000c4<BR>&gt; &gt; &gt; Sess_read: queueing message of type 4 with len 0 to 
the protocol<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; ******&nbsp; Something isn't 
right ************<BR>&gt; &gt; &gt; Sess_read: Message has type field 
0x80000080<BR>&gt; &gt; &gt; Sess_validate_read_header: Message has illegal type 
field 0x80000080<BR>&gt; &gt; &gt; SP_error: (-8) Connection closed by 
spread<BR>&gt; &gt; &gt; Sess_kill: killing session RTEST0 ( mailbox 14 
)<BR>&gt; &gt; &gt; Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; 
&gt; Sess_read: queueing message of type 4 with len 0 to the protocol<BR>&gt; 
&gt; &gt; Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; 
Sess_read: queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; 
&gt; Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt; 
Sess_read: Message has type field 0x800000c4<BR>&gt; &gt; &gt; Sess_read: 
queueing message of type 4 with len 0 to the protocol<BR>&gt; &gt; &gt;<BR>&gt; 
&gt; &gt; _______________________________________________<BR>&gt; &gt; &gt; 
Spread-users mailing list<BR>&gt; &gt; &gt; 
Spread-users@lists.spread.org<BR>&gt; &gt; &gt; <A 
href="http://lists.spread.org/mailman/listinfo/spread-users">http://lists.spread.org/mailman/listinfo/spread-users</A><BR>&gt; 
&gt; &gt;<BR>&gt;<BR>&gt;<BR>&gt; 
_______________________________________________<BR>&gt; Spread-users mailing 
list<BR>&gt; Spread-users@lists.spread.org<BR>&gt; <A 
href="http://lists.spread.org/mailman/listinfo/spread-users">http://lists.spread.org/mailman/listinfo/spread-users</A><BR><BR>--<BR>-------------------------------------------------------<BR>Jonathan 
R. Stanton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
jonathan@cs.jhu.edu<BR>Dept. of Computer Science&nbsp;&nbsp;<BR>Johns Hopkins 
University&nbsp;&nbsp;&nbsp;<BR>-------------------------------------------------------<BR></FONT></P></DIV>

</BODY>
</HTML>