<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<font color="#3333FF">Yair,</font><font color="#3333FF"></font>
<p><font color="#3333FF">&nbsp;&nbsp; Thanks for the information. I suspected
it might be something like this</font>
<br><font color="#3333FF">rather than a problem with Spread itself discarding
the messages.</font><font color="#3333FF"></font>
<p><font color="#3333FF">-kelvin</font>
<p>Yair Amir wrote:
<blockquote TYPE=CITE>Hi Kelvin,
<p>We finally got some time to check this out.
<br>It seems that if a socket is closed by the sender before all the
<br>messages sent have left the sending buffer, they may not be actually
<br>sent.
<p>When you run flooder which immediately disconnects upon sending the
<br>last message, it is possible that the operating system discards the
<br>last messages before Spread receives them. We verified that those last
<br>messages are not received by Spread (using spmonitor). This occurred
<br>at least on Linux and FreeBSD.
<p>As John Schultz correctly noted before, this is not a problem in
<br>Spread or its semantics as Spread did not get these messages.
<p>If this behavior is not desired, the sending process for example,
<br>could leave the group and wait to receive the leave notification before
<br>it disconnects the socket (or exit the program). That will guarantee
that all of the
<br>messages were received (and processed) by Spread. Other ways to
<br>overcome this treatment by the operating system are also possible
<br>with Spread.
<p>&nbsp;&nbsp; Hope this helps,
<p>&nbsp;&nbsp; :) Yair and Ryan.
<p>On Friday, May 09, 2003 7:24 PM
<br>Kelvin Fedrick Kelvin.Fedrick@noaa.gov wrote:
<p>Kelvin> Yair Amir wrote:
<p>>> Ok, so a different client - not spflooder but a regular spuser does
<br>>> not receive all the messages. This should not happen.
<br>>> Do you let that spuser stay up for a while and it still does
<br>>> not receive the messages?
<p>Kelvin> I leave the spuser up afterward. I've also tried running the
"receive a
<br>Kelvin> message (stuck)" option afterward with no luck.
<p>>>
<br>>> (if a client does not keep up, spread is buffering up to 1000 messages
<br>>> for it, but then will try to send to it only in a few second)
<br>>> so just to make sure:
<br>>>
<br>>> 1. you send 10000 messages by your modified spflooder
<br>>> 2. the spuser that joins the "flooder" group ahead of time
<br>>>&nbsp;&nbsp;&nbsp; only receives the first 9994 messages even if
you leave it running
<br>>>&nbsp;&nbsp;&nbsp; for a while after spflooder exited.
<br>>>
<br>>>&nbsp;&nbsp;&nbsp; Is this correct?
<p>Kelvin> That's correct except we've been testing with fewer messages
sent (i.e. spflooder -m 500).
<p>>>
<br>>>&nbsp;&nbsp;&nbsp; Also, try to send a message to "flooder" group
by spuser after
<br>>>&nbsp;&nbsp;&nbsp; the modified spflooder exited&nbsp; and see if
you get that message.
<p>Kelvin> I've tried this as well. It succeeds at getting the new message.
Furthermore,
<br>Kelvin> if I rerun spflooder again without restarting the spuser, it
receives the new
<br>Kelvin> messages, but again usually with the last few missing.
<p>>>
<br>>>
<br>>>&nbsp;&nbsp;&nbsp; Also, I am not sure in which program you added
a "sleep" that
<br>>>&nbsp;&nbsp;&nbsp; bypassed the problem.
<br>>>
<p>Kelvin> A sleep(1) was added to flooder.c in main() just after the printf("flooder
completed multicast of
<br>Kelvin> ...
<br>Kelvin> call and before the 'return 0'.
<p>>>
<br>>>&nbsp;&nbsp;&nbsp; Also, specify exactly how you connected with Spread
(IPC or TCP)
<br>>>&nbsp;&nbsp;&nbsp; and wether locally or remotely for any client
that connected to
<br>>>&nbsp;&nbsp;&nbsp; spread in this experiment. Also, how many daemons
you have in the
<br>>>&nbsp;&nbsp;&nbsp; system and which client connects to which daemon.
<p>Kelvin> In the current configuration, just one daemon with both spuser
and spflooder all
<br>Kelvin> running on a Linux box. We have tried other configurations
with remotely connected
<br>Kelvin> clients with the same results.
<p>Kelvin> Interestingly, I've just noticed that spflooder -m 10000 seems
to work. We had been
<br>Kelvin> testing with fewer messages and 'spflooder -m 500' consistently
comes up short with
<br>Kelvin> spuser only receiving the first 498 of 500 messages.
<p>Kelvin> Kelvin
<p>_______________________________________________
<br>Spread-users mailing list
<br>Spread-users@lists.spread.org
<br><a href="http://lists.spread.org/mailman/listinfo/spread-users">http://lists.spread.org/mailman/listinfo/spread-users</a></blockquote>
</html>