I'm using the latest (20080914) UDPcast, which I compiled from source on
Ubuntu 8.04 on x64 (xeon). I get the same results I describe here, when
I use the ancient (2004) UDPCast available in the Ubuntu packaging
system. I also get the same results I describe here, whether I use
"--file" or >file.
I am transmitting data about 51GB in size from one machine to several
others; it is a database backup that I pipe from pg_dump with something
like this:
pg_dump yadayada | udp-sender --no-kbd --autostart 90
and I receive it on 3 other machines with this:
udp-receiver --portbase 10200 --file filenamehere
On the sender, the output ends like so:
bytes= 54 682 988 148 re-xmits=0166670 ( 0.4%) slice=0032 73 709 551
615 - 2
Transfer complete.
Disconnecting #0 (ip-address-redacted)
Disconnecting #1 (ip-address-redacted)
Disconnecting #2 (ip-address-redacted)
On receiver 1, it ends like so:
bytes= 54 682 988 148 (123.12 Mbps) 54 682 848 884
Transfer complete.
the file is 54682848884 bytes long.
On receiver 2, it ends like so:
bytes= 54 682 988 148 (123.11 Mbps) 54 682 848 884
Transfer complete.
the file is 54682848884 bytes long.
On receiver 3, it ends like so:
bytes= 54 682 988 148 (123.13 Mbps) 54 682 938 996
Transfer complete.
the file is 54682938996 bytes long.
On this particular run, I got "lucky" in that two of the 3 receivers got
the same file length; most of the time, 3 receivers end up with files of
3 different lengths. I think the correct length is 54 682 988 148,
meaning that 0 of the 3 got the file delivered correctly. In the
output, udp-receiver appears to know both the correct length and the
actual written length, yet not be bothered by them being different (!!).
I find this quite surprising and rather disturbing... I had planned to
wrap an md5 mechanism around UDPcast somehow as an end-to-end check of
the contents, but it's pointless to do that if it doesn't even get the
correct *length* of the data.
Any help much appreciated, as I find UDPcast to be a fantastic idea and
nicely implemented tool, aside from this problem.
Could there be some issue in which udp-receiver is confused between what
go to the file/stdout (data payload) vs to stderr (absolutely everything
else) ?
--
Kyle Cordes
http://kylecordes.com