problem restoring via rsync when using stored ACLs (--fake-super)

Daniel Maher dma at witbe.net
Mon Nov 5 16:27:08 GMT 2007


On Mon, 2007-05-11 at 07:08 -0800, Wayne Davison wrote:
> On Mon, Nov 05, 2007 at 02:12:42PM +0100, Daniel Maher wrote:
> > when i attempt to restore while preserving the ACL data, i get the
> > following error:
> > 
> > ERROR: out of memory in get_xattr_data [sender]
> 
> Turns out the get_xattr_acl() routine needed to zero out the *len_p
> variable before calling get_xattr_data().  (My testing must have gotten
> lucky with a small value in the uninitialized memory.)  The latest CVS
> version has this fixed.
> 
> ..wayne..

I made the change to xattrs.c and recompiled rsync on my backup server.
Now when i run the backup command (which previously worked), i get this:


$ /usr/bin/sudo /usr/bin/rsync --stats -A -X -bavzR --fake-super
--delete --numeric-ids --rsync-path="/usr/bin/sudo /usr/bin/rsync"
--log-file=/opt/rsync-backup/rsync-backup.log
--backup-dir=/opt/rsync-backup/FILE-SERVER/2007-11-05T16:23:57 -e
"/usr/bin/ssh -i /home/rsync-backup/.ssh/id_rsa"
rsync-backup at FILE-SERVER:/tmp/test /opt/rsync-backup/FILE-SERVER/CURRENT/
receiving incremental file list
*** glibc detected *** /usr/bin/rsync: free(): invalid pointer:
0x083bfeb0 ***
======= Backtrace: =========
/lib/libc.so.6[0xa79df1]
/lib/libc.so.6(cfree+0x90)[0xa7d430]
/usr/bin/rsync[0x8067339]
/usr/bin/rsync[0x8067b9f]
/usr/bin/rsync[0x8052852]
/usr/bin/rsync[0x8052c44]
/usr/bin/rsync[0x805795f]
/usr/bin/rsync[0x8061886]
/usr/bin/rsync[0x8061b14]
/usr/bin/rsync[0x8062c62]
/lib/libc.so.6(__libc_start_main+0xe0)[0xa27f70]
/usr/bin/rsync[0x804a621]
======= Memory map: ========
00110000-00111000 r-xp 00110000 00:00 0          [vdso]
00111000-00118000 r-xp 00000000 fd:03
1730976    /usr/lib/libpopt.so.0.0.0
00118000-00119000 rwxp 00006000 fd:03
1730976    /usr/lib/libpopt.so.0.0.0
009f3000-00a0e000 r-xp 00000000 fd:03 1239106    /lib/ld-2.6.so
00a0e000-00a0f000 r-xp 0001a000 fd:03 1239106    /lib/ld-2.6.so
00a0f000-00a10000 rwxp 0001b000 fd:03 1239106    /lib/ld-2.6.so
00a12000-00b60000 r-xp 00000000 fd:03 1239122    /lib/libc-2.6.so
00b60000-00b62000 r-xp 0014e000 fd:03 1239122    /lib/libc-2.6.so
00b62000-00b63000 rwxp 00150000 fd:03 1239122    /lib/libc-2.6.so
00b63000-00b66000 rwxp 00b63000 00:00 0 
00c16000-00c1a000 r-xp 00000000 fd:03 1239218    /lib/libattr.so.1.1.0
00c1a000-00c1b000 rwxp 00003000 fd:03 1239218    /lib/libattr.so.1.1.0
00c1d000-00c23000 r-xp 00000000 fd:03 1239210    /lib/libacl.so.1.1.0
00c23000-00c24000 rwxp 00005000 fd:03 1239210    /lib/libacl.so.1.1.0
00dc3000-00dce000 r-xp 00000000 fd:03
1239172    /lib/libgcc_s-4.1.2-20070925.so.1
00dce000-00dcf000 rwxp 0000a000 fd:03
1239172    /lib/libgcc_s-4.1.2-20070925.so.1
08048000-0809c000 r-xp 00000000 fd:03 1739864    /usr/bin/rsync
0809c000-0809f000 rw-p 00054000 fd:03 1739864    /usr/bin/rsync
0809f000-080af000 rw-p 0809f000 00:00 0 
0834b000-08401000 rw-p 0834b000 00:00 0 
b7b00000-b7b21000 rw-p b7b00000 00:00 0 
b7b21000-b7c00000 ---p b7b21000 00:00 0 
b7c0e000-b7c50000 rw-p b7c0e000 00:00 0 
b7c71000-b7c72000 rw-p b7c71000 00:00 0 
b7c72000-b7c79000 r--s 00000000 fd:03
1761571    /usr/lib/gconv/gconv-modules.cache
b7c79000-b7c7a000 rw-p b7c79000 00:00 0 
b7c7a000-b7d5c000 r--p 009df000 fd:03
1730802    /usr/lib/locale/locale-archive
b7d5c000-b7f5c000 r--p 00000000 fd:03
1730802    /usr/lib/locale/locale-archive
b7f5c000-b7f5e000 rw-p b7f5c000 00:00 0 
bf82b000-bf841000 rw-p bf82b000 00:00 0          [stack]
rsync: writefd_unbuffered failed to write 8 bytes [receiver]: Broken
pipe (32)
rsync error: error in rsync protocol data stream (code 12) at io.c(1501)
[receiver=3.0.0pre4]


Any ideas?



More information about the rsync mailing list