I haven't had the time to trace this back to the source of the problem. However, when running the following command:
s3sync -r bucket:path/to/dir/ /local/path/
I get the following error:
/usr/local/s3sync/s3sync.rb:659:in `chown': bignum too big to convert into `long' (RangeError)
from /usr/local/s3sync/s3sync.rb:659:in `send'
from /usr/local/s3sync/s3sync.rb:659:in `updateFrom'
from /usr/local/s3sync/s3sync.rb:378:in `main'
from /usr/local/s3sync/s3sync.rb:709
Now, I looked in s3sync.rb around line 659, and inserted the
puts line in the code as shown below:
# update permissions
linkCommand = fromNode.symlink? ? 'l' : ''
begin
puts "chown #{fromNode.owner} #{fromNode.group} #{@path}"
File.send(linkCommand + 'chown', fromNode.owner, fromNode.group, @path)
File.send(linkCommand + 'chmod', fromNode.permissions, @path)
rescue NotImplementedError
# no one has lchmod, but who really cares
rescue SystemCallError
$stderr.puts "Could not change owner/permissions on #{@path}: #{$!}"
end
The results of running the command again after cleaning out the local directory:
chown 400 401 /path/to/file1
chown 4294967295 401 /path/to/file2
/usr/local/s3sync/s3sync.rb:660:in `chown': bignum too big to convert into `long' (RangeError)
from /usr/local/s3sync/s3sync.rb:660:in `send'
from /usr/local/s3sync/s3sync.rb:660:in `updateFrom'
from /usr/local/s3sync/s3sync.rb:378:in `main'
from /usr/local/s3sync/s3sync.rb:710
Now, clearly, somewhere earlier in the code,
fromNode.owner is getting assigned a bogus value. I don't really have the time to trace this down, but could you look into it? Thanks...