From: <cba...@us...> - 2004-02-01 03:17:13
|
Marlin Prowell writes: > I finally took some time to track down this bug. The patch is listed below. > > There is a small perl module, File::RsyncP, that backuppc requires. I > wrote a short perl script that uses this perl module to imitate what > backuppc does when using rsync. I found the same problem mentioned above > when using the perl script, so I knew the bug was somewhere inside the perl > module, and not in backuppc itself. > > This bug is not specific to FreeBSD. It can occur on all OS versions. I > surmise that the malloc routines are different between FreeBSD and Linux, > and so the bug is exposed quicker in FreeBSD. > > I have a backuppc test task that uses rsync. All my production backups use > tar. The test task has failed 99 consecutive times over the last > month. It finally succeeded in performing a full backup after making this > change to File::RsyncP. I don't know if this is the only problem I have > had, and I will keep expanding my tests as long as the current tests > succeed. But I thought I would publish this fix, since it has fixed some > rsync problems I have had. Thank you!! I looked at your patch and it definitely fixes a subtle problem with receiving the file list. If the file list is fragmented in a certain way, the code incorrectly updates f->lastdir and then returns to the caller to fetch more data. This could trash the starting part of the directory name on future files. Your patch fixes that. I'll do a new release of File::RsyncP with this patch, hopefully next weekend. Thanks again. Craig |