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