xfs
[Top] [All Lists]

Re: Extended attributes limit in Linux

To: Sun_Blood <sblood@xxxxxxxxx>, Vyacheslav Dubeyko <slava@xxxxxxxxxxx>
Subject: Re: Extended attributes limit in Linux
From: Jeff Liu <jeff.liu@xxxxxxxxxx>
Date: Sun, 02 Feb 2014 23:12:41 +0800
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <14FE2575-4C84-43B8-9992-F91ABE2B6F26@xxxxxxxxx>
References: <CAMN6oR=a0G6O-3CVVkTwhYKavJTa543U3MLezCM8KW1ASZcPnA@xxxxxxxxxxxxxx> <52EB64DC.4020603@xxxxxxxxxx> <1391165083.4275.7.camel@ubuntu> <52EB960D.607@xxxxxxxxxx> <1391172723.4275.11.camel@ubuntu> <52EBA783.1080801@xxxxxxxxxx> <1391178074.4275.19.camel@ubuntu> <52EBB431.50301@xxxxxxxxxx> <6C94A326-DADE-4A32-97F6-AE84E9F57777@xxxxxxxxx> <1D87A7C9-988F-4F61-A577-67300DAF2554@xxxxxxxxxxx> <14FE2575-4C84-43B8-9992-F91ABE2B6F26@xxxxxxxxx>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0
On 02/02 2014 22:33 PM, Sun_Blood wrote:
> 
> On 1 feb 2014, at 15:08, Vyacheslav Dubeyko <slava@xxxxxxxxxxx
> <mailto:slava@xxxxxxxxxxx>> wrote:
> 
>>
>> On Jan 31, 2014, at 10:25 PM, Sun_Blood wrote:
>>
>>>
>>> On 31 jan 2014, at 15:33, Jeff Liu <jeff.liu@xxxxxxxxxx
>>> <mailto:jeff.liu@xxxxxxxxxx>> wrote:
>>>
>>>>
>>>> On 01/31 2014 22:21 PM, Vyacheslav Dubeyko wrote:
>>>>> On Fri, 2014-01-31 at 21:39 +0800, Jeff Liu wrote:
>>>>>
>>>>>>>
>>>>>>> I checked the same under Mac OS X 10.6.8 (Snow Leopard). And I have
>>>>>>> failed on 3803 bytes size of xattr. So, I suppose that you have
>>>>>>> Mac OS X
>>>>>>> Lion. And EAs is larger under Lion yet.
>>>>>>>
>>>>>>> What version of Mac OS X have you?
>>>>>>>
>>>>>> Yup, Mountain Lion v10.8.4 :)
>>>>>>
>>>>>
>>>>> I suspect that xattrs with significant size is stored in compressed
>>>>> state on HFS+. I implemented support of compressed xattrs partially but
>>>>> I don't share this code yet. But, yes, EAs with size greater than 64 KB
>>>>> can be a problem.
>>>
>>>
>>> FYI, Example of output from one of the failing files. First from OS X
>>> and then same file after failed copy to XFS.
>>>
>>> OS X Maverik:
>>> file: "/Users/username/Pictures/iPhoto
>>> Library/Database/apdb/BigBlobs.apdb"
>>> type: "\0\0\0\0"
>>> creator: "\0\0\0\0"
>>> attributes: avbstclinmedz
>>> created: 01/25/2014 11:43:17
>>> modified: 01/28/2014 20:02:46
>>>
>>>
>>> Ubunutu 
>>> getfattr: Removing leading '/' from absolute path names
>>> # file: srv/nas/home/apple_bak_rsync/username/Pictures/iPhoto
>>> Library/Database/BigBlobs.apdb
>>> user.com.apple.quarantine="0006;52e39545;iPhoto;”
>>
>>
>> Sorry, but I don't quite follow your thought. What do you show by this
>> output?
>> What do you mean? Could you describe in more details?
>>
>> Thanks,
>> Vyacheslav Dubeyko.
> 
> Sorry late reply. The output is just to show what happen after I
> transfer a file from OS X to XFS that has EA bigger then 64k(I think).
> When I try for example to rsync this file from OS X to Linux XFS I get
> this error:
> rsync: rsync_xal_set:
> lsetxattr(""/srv/nas/home/apple_bak_rsync/xxxxxx/Pictures/iPhoto
> Library/Database/BigBlobs.apdb"","user.com.apple.FinderInfo") failed:
> Operation not permitted (1)
> 
> But also rsync can give this error.
> rsync: rsync_xal_set:
> lsetxattr(""/srv/danne/extern2/1000_EXT/2013/2013-03-05/IMG_6872-Edit.tif"","user.com.apple.ResourceFork")
> failed: Argument list too long (7)
> 
> Is this 2 errors related?

Those errors are unrelated IMO, the first one is due to the permission rules but
I'm not sure the root cause, the second one is occurred as the EA value is 
larger
than 64K I guess.
 
> 
> I will make a bug report for rsync also that it should not try to copy
> files with EA bigger then the destination can handle. But it would be
> great if XFS could handle this files and be fully compatible with OS X
> backups.

64K size is not limited by XFS directly, it is limited by VFS setxattr syscall.
IOWs, EA set operation is not yet get into XFS when "Argument list too long" 
error
is returned, so I think you would ran into the same error on other file systems
which are support 64K EA value size as well.

Thanks,
-Jeff

<Prev in Thread] Current Thread [Next in Thread>