If anyone is still following this thread, the bit I mentioned earlier
about write, rather than select, being broken, is based on
instrumenting rsync with lots of fprintfs...

Basically, what happens in io.c is 

writefd(4,effff388,4), bfi 5
write(4,effff388(0),4) got 4   [that's fine...]

writefd(4,e001f000,17982), bfi 5  [this is attempting to dump the
                                   COPYING file over the pipe...]
recv_files(rsync-1.6.7/COPYING)
write(4,e001f000(0),17982) got 4076  <== PARTIAL
                                [the write() of 17982 bytes returned
                                 after writing 4076.]
write(4,e001ffec(4076),13906) got 4096  <== PARTIAL
                                [the write() of the remaining 13906
                                 bytes returned after writing a
                                 suspicious 4096 bytes...]
write(4,e0020fec(8172),9810) got -1  <== PARTIAL
                                [further logging indicates that this
                                 write returned EAGAIN... but as soon
                                 as we select on it, we get EBADF,
                                 even if we sleep to let it drain.]
select details: fdc 6 bfi 5 fd 4 count -1 PID 27324
select more: r[0] 20 r[1] 0 w[0] 10 w[1] 0
select error: Bad file descriptor

Now at least I've got someplace else to look.  Question: where are the
sources to the *libc5* that we're using? It's 5.3.12-mumble, not the
debian standard 5.4.x, for which sources are on the mirrors, which
doesn't have *any* sparc support that I can find...

Ah well, maybe I can start on X next weekend.  It isn't really worth
trying until we get more of this worked out (even if I do punt the
-lpthread stuff, I'd rather not go further with a known broken libc
when I've got useful small examples that break...)


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
[EMAIL PROTECTED] . 
Trouble?  e-mail to [EMAIL PROTECTED] .

Reply via email to