Hi all,
I've been running rsync successfully from cron jobs for the last six months
across a local network. The cron jobs are very simple. They run rsync on a
client machine, connect to an rsync server on a server machine (no ssh or
rsh involved), and copy files from the server to the client. That's all.
There are several jobs, one for each directory on the server, and between
them they copy more than 300MB of data between the machines and they have
done it perfectly every day for the last six months.
Today one of the jobs started failing when it ran the following command on
the client machine:
$ rsync offers@sdnvpn::gsh/* .
rsync: read error: Connection reset by peer
rsync error: error in rsync protocol data stream (code 12) at io.c(201)
The only significant change I can see is that the 'gsh' directory on the
server now contains 2380 files, whereas it only contained 2 files yesterday.
Of course it might be something else, something different from the number of
files in the directory, but to check this out I tried:
$ rsync offers@sdnvpn::gsh
$ rsync offers@sdnvpn::gsh/*EFL .
which successfully lists all 2380 files in the 'gsh' directory and then
copied all the files ending with EFL from the server to the client.
I tried upgrading rsync to 2.6.0 on both machines but the problem persists.
After reading the FAQ and browsing the mailing list I tried --blocking-io
and --no-blocking-io but the problem remained.
Does anyone have any ideas? Thanks for your help.
Jon Hirst
---
Below are the gory details for those who want to try debugging:
---
Server Machine:
Linux 2.4.7-10
Redhat 6
rsync 2.4.2 originally
rsync 2.6.0 after upgrade
rsync built from source with ./configure; make; make install
---
Client Machine:
Linux 2.4.20-9smp
Redhat 9
rsync 2.5.2 originally
rsync 2.6.0 after upgrade
rsync built from source with ./configure; make; make install
---
Verbose output from the failing command:
$ rsync -vvvvvv offers@sdnvpn::gsh/* .
opening tcp connection to sdnvpn port 873
Password:
(Client) Protocol versions: remote=27, negotiated=27
rsync: read error: Connection reset by peer
_exit_cleanup(code=12, file=io.c, line=201): entered
rsync error: error in rsync protocol data stream (code 12) at io.c(201)
_exit_cleanup(code=12, file=io.c, line=201): about to call exit(12)
---
I haven't been able to get any verbose output from the server log.
The best I can do is short summary lines. All I see in the log
are reports of success when the client tries to list the directory
and nothing at all when the client tries to copy the files:
2004/01/06 16:45:35 [29323] rsync on gsh from offers@sdndb (10.0.3.247)
2004/01/06 16:45:39 [29323] wrote 38912 bytes read 100 bytes total size
245595674
---
I have verbose output from a command that lists the directory on the
server, but the mailing list complains because it is over 400KB of text.
Email me if you are interested in a copy.