rsync random errors

I’m using rsync to mirror files to an external USB drive for backup purposes. In the past, I only mirrored my /home directory. Recently, I’ve separated out photo directories and am doing multiple rsync’s (one at a time, sequentially). I will get these error messages:

rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: write failed on “FILE”: Input/output error (5)
rsync error: error in file IO (code 11) at receiver.c(302) [receiver=3.0.7]
rsync: connection unexpectedly closed (48 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]

(where “FILE” is the name of the file being copied)

on some of the rsync’s and everything stops. If I try to rsync later, after a reboot or on another day, for example, the rsync will work.

Since it’s not 100% reproducible every time, what’s going on that’s causing rsync to stop sync’ing?

openSUSE 11.4, all the latest patches installed.

Thanks.

linuxvinh wrote:
> I’m using rsync to mirror files to an external USB drive for backup
> purposes… I will get these error messages:
>
> rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]:
> Broken pipe (32)
> rsync: write failed on “FILE”: Input/output error (5)
> rsync error: error in file IO (code 11) at receiver.c(302)
> [receiver=3.0.7]
> rsync: connection unexpectedly closed (48 bytes received so far)
> [sender]
> rsync error: error in rsync protocol data stream (code 12) at io.c(601)
> [sender=3.0.7]
>
> (where “FILE” is the name of the file being copied)
>
> on some of the rsync’s and everything stops. If I try to rsync later,
> after a reboot or on another day, for example, the rsync will work.
>
> Since it’s not 100% reproducible every time, what’s going on that’s
> causing rsync to stop sync’ing?
>
> openSUSE 11.4, all the latest patches installed.

Top of my head guess would have to be a hardware problem. Is there
anything in /var/log/messages from e.g the USB subsystem?

You could try turning up the verbosity of rsync’s logging (don’t forget
to look in the files as well as the terminal) to see if there’s any
pattern or other information revealed.

But my first instinct would be to try exactly the same rsync command but
using different hardware (e.g. a different external drive, a different
USB port if your system has more than one USB controller, an internal
hard drive to internal hard drive copy etc)

Looking at /var/log/messages did it. It revealed these messages like these:

kernel: [21359.400480] attempt to access beyond end of device
kernel: [21359.400483] sdb1: rw=32, want=763886672, limit=763762167
kernel: [21359.400485] EXT3-fs error (device sdb1): ext3_readdir: directory #47448069 contains a hole at offset 4096

I umounted the partition and tried fsck on it, which produced a ton of inode errors.

Since it’s a backup drive and I was planning to move from ext3 to ext4 anyway, I reformatted it to ext4 and everything is working again. I can rsync as usual.

Thanks!