rsync: connection unexpectedly closed
Kip Warner
kip at thevertigo.com
Sun Oct 16 02:54:41 UTC 2016
On Thu, 2016-10-13 at 20:08 -0400, Kevin Korb wrote:
> I don't remember whether or not you said you were running rsync over
> ssh but if you are you can also debug the ssh layer. You can even do
> it at both ends....
>
> On the server run a debugging sshd on an alternate port with:
> /usr/sbin/sshd -dDp222
> (note that this will only accept 1 connection, debug to the terminal,
> then exit) then on the client use rsync -e "ssh -vp222" to go verbose
> and use the debugging port.
Hey Kevin,
I managed to get a chance to try your suggestion. I noticed something
very interesting. On the server side, there's actually two processes of
rsync that appear to be spawned by the client's connection.
Running the ssh daemon on the server side, I notice that long after the
server dies like so...
...
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req exec
Read error from remote host <snip>: Connection reset by peer
debug1: do_cleanup
debug1: do_cleanup
debug1: PAM: cleanup
debug1: PAM: closing session
Sessions still open, not unmounting
debug1: PAM: deleting credentials
...and the client rsync dies...
match at 32949010432 last_match=32949010432 j=251381 len=131072 n=0
match at 32949141504 last_match=32949141504 j=251382 len=131072 n=0
32.95G 96% 74.13MB/s 0:00:14 packet_write_wait: Connection to <snip> port 22223: Broken pipe
rsync: [sender] write error: Broken pipe (32)
rsync error: unexplained error (code 255) at io.c(820) [sender=3.1.1]
[sender] _exit_cleanup(code=10, file=io.c, line=820): about to call exit(255)
...one of the server side rsync processes according to strace is still
alive...
write(1, "h\340\0\7\310\376\\\233\227\241\236\255VC\31\351\323X\206\314F$\337\0321\202\374\"\320(d\271"..., 57452) = 57452
select(4, [3], [], [3], {60, 0}) = 0 (Timeout)
(last line repeats a couple hundred times)
...and apparently the second rsync server side process is actually
still performing reads and writes more than an hour after the
connection died...
...
read(1, "\337\363\356\1^\26L\316\17\31izD\254\27\346\267\266H\343\223\v\357\252d'h\351\371\0ny"..., 262144) = 262144
write(3, "\337\363\356\1^\26L\316\17\31izD\254\27\346\267\266H\343\223\v\357\252d'h\351\371\0ny"..., 262144) = 262144
...
This makes me wonder if this has something to do with memory buffers
for file i/o being exhausted on the server and this server side
activity long after the connection died is an effort to flush a file
buffer to disk. The file this always breaks on is 30+GB, but the server
hardware is a small embedded system.
--
Kip Warner -- Senior Software Engineer
OpenPGP encrypted/signed mail preferred
http://www.thevertigo.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: This is a digitally signed message part
URL: <http://lists.samba.org/pipermail/rsync/attachments/20161015/3435fbd7/signature.sig>
More information about the rsync
mailing list