I'm using a script like that:
rsync -avu --delete --progress user@host:~/backup .
and every time, after a while, a receive this error:
rsync: connection unexpectedly closed (10251754 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [receiver=3.1.0]
rsync: connection unexpectedly closed (45482 bytes received so far) [generator]
rsync error: unexplained error (code 255) at io.c(226) [generator=3.1.0]
# generator = Debian 5, rsync version 3.0.3 protocol version 30 (Generator[A])
# receiver = Ubuntu 14.04, rsync version 3.1.0 protocol version 31 (Receiver[A])
I have over ten years of experience in rsync
, I tried everything, but I can't figure out why it happens.
On both sides: I have no errors in logs, no strange things in tcpdump, no connection problems, no firewalls. The transfer just suddently stops after sometime.
The problem is not limited to one server.
I thought it could be a some king of incompatibility between rsync versions, so I switch the generator with a fresh new server (Debian 8) on a completely different server farm and I have update rsync on the receiver, but I get this error:
rsync: connection unexpectedly closed (31931964 bytes received so far) [receiver]
rsync: [generator] write error: Broken pipe (32)
rsync error: unexplained error (code 255) at io.c(820) [generator=3.1.2]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [receiver=3.1.2]
# generator = Debian 8, rsync version 3.1.1 protocol version 31 (Generator[B])
# receiver = Ubuntu 14.04, rsync version 3.1.2 protocol version 31 (Receiver[B])
Then I tried to sync Receiver[A] with Generator[B] throught a proxy and it works
Receiver[A](Italy) <=> HTTP Proxy(Paris) <=> Generator[B](Strasbourg)
So now I have
Receiver[A] <=> Generator[A] // ERROR
Receiver[A] <=> Generator[B] // ERROR
Receiver[B] <=> Generator[B] // ERROR
Receiver[A] <=> HTTP Proxy <=> Generator[A] // OK
Receiver[A] <=> HTTP Proxy <=> Generator[B] // OK
I tried too without HTTP Proxy
Receiver[A] <=> Generator[C] // OK
Receiver[A] <=> Generator[D] // OK
Receiver[A] <=> Generator[E] // ERROR
where generators [C]
, [D]
and [E]
are servers in Paris (same server farm of my HTTP Proxy
) with rsync 3.0.9, prot. v. 30
.
So the bottom line here is: I have multiple servers in multiple locations. On Receiver[A]
I have no firewall and things works well since few days ago. Now rsync
return unexplained error
and I can't figure out why.
I think it's a some king of phisical network error (not on my machines), but I don't know if I can find, isolate and reproduce this error.
Thanks for your help!