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

Daniel Maher dma at witbe.net
Mon Nov 5 13:12:42 GMT 2007


Hello,

In summary, i appear to have encountered a bug when attempting to
restore files using rsync 3.0.0pre4 (matt) with stored ACLs (via
--fake-super).  The ACL information appears to be correctly stored as
xattrs on the backup server; however, when i attempt to restore while
preserving the ACL data, i get the following error:

ERROR: out of memory in get_xattr_data [sender]

Questions:
1. Is this a bug in rsync?  The filesystem?  Malloc?
2. If this is not how i'm supposed to restore the files with their ACLs
intact, how should i do it?

A complete run down, including commands, output, and other supporting
data, is located below.

Finally, i apologise if this is not an appropriate place to discuss this
particular release of rsync on (since it is, of course, Mr. McCutchen's
release...).

Thank you.

-------------------------

Running rsync 3.0.0pre4 "matt" on both machines (BACKUP-SERVER and
FILE-SERVER).


Commandline run on BACKUP-SERVER:

/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-05T11:31:43 -e
"/usr/bin/ssh -i /home/rsync-backup/.ssh/id_rsa"
rsync-backup at FILE-SERVER:/tmp/test /opt/rsync-backup/FILE-SERVER/CURRENT/


Output of backup command:

receiving incremental file list
tmp/
tmp/test/
tmp/test/t1/
tmp/test/t2/
tmp/test/t2/something
tmp/test/t3/

Number of files: 6
Number of files transferred: 1
Total file size: 7 bytes
Total transferred file size: 7 bytes
Literal data: 7 bytes
Matched data: 0 bytes
File list size: 191
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 51
Total bytes received: 287

sent 51 bytes  received 287 bytes  676.00 bytes/sec
total size is 7  speedup is 0.02


/tmp/test on FILE-SERVER:

# ls -l /tmp/test
total 24
drwxr-x---+ 2 rol samba 4096 Oct 30 13:17 t1
drwxr-x---+ 2 dma samba 4096 Oct 30 13:19 t2
drwxr-x---+ 2 jbc samba 4096 Oct 29 19:51 t3

# getfacl /tmp/test/t1
getfacl: Removing leading '/' from absolute path names
# file: tmp/test/t1
# owner: rol
# group: samba
user::rwx
user:720:r-x
group::---
mask::r-x
other::---


Result on BACKUP-SERVER:

# ls -l /opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test
total 24
drwxr-x--- 2 root root 4096 2007-10-30 13:17 t1
drwxr-x--- 2 root root 4096 2007-10-30 13:19 t2
drwxr-x--- 2 root root 4096 2007-10-29 19:51 t3

# getfacl /opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test/t1
getfacl: Removing leading '/' from absolute path names
# file: opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test/t1
# owner: root
# group: root
user::rwx
group::r-x
other::---

# attr -l /opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test/t1
Attribute "rsync.%aacl" has a 24 byte value
for /opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test/t1
Attribute "rsync.%stat" has a 18 byte value
for /opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test/t1

# attr -g "rsync.%
aacl" /opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test/t1
Attribute "rsync.%aacl" had a 24 byte value
for /opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test/t1:
??? ?

# attr -g "rsync.%
stat" /opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test/t1
Attribute "rsync.%stat" had a 18 byte value
for /opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test/t1:
40750 0,0 600:4999


Commandline of attempted restore of /tmp/test to FILE-SERVER:

$ /usr/bin/sudo /usr/bin/rsync --fake-super --stats -A -X -a
--rsync-path="/usr/bin/sudo /usr/bin/rsync" -e "/usr/bin/ssh
-i /home/rsync-backup/.ssh/id_rsa" /opt/rsync-backup/FILE-SERVER/CURRENT/tmp/test rsync-backup at FILE-SERVER:/tmp


Output of attempted restore command:

ERROR: out of memory in get_xattr_data [sender]
rsync error: error allocating core memory buffers (code 22) at
util.c(116) [sender=3.0.0pre4]

(Additional verbosity provides only the "opening connection using" and
"sending incremental file list" lines - nothing more.)


If --fake-super is removed from the commandline of attempted restore,
the files are transferred as expected:

Number of files: 5
Number of files transferred: 1
Total file size: 7 bytes
Total transferred file size: 7 bytes
Literal data: 7 bytes
Matched data: 0 bytes
File list size: 113
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 192
Total bytes received: 47

sent 192 bytes  received 47 bytes  159.33 bytes/sec
total size is 7  speedup is 0.03


HOWEVER, the ACL information is not set.
/tmp/test on FILE-SERVER after restore:

# ls -l /tmp/test/
total 12
drwxr-x---  2 root root 4096 Oct 30 13:17 t1
drwxr-x---  2 root root 4096 Oct 30 13:19 t2
drwxr-x---  2 root root 4096 Oct 29 19:51 t3

# getfacl t1
# file: t1
# owner: root
# group: root
user::rwx
group::r-x
other::---





More information about the rsync mailing list