Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
3
-
5038
Description
This issue was created by maloo for Prakash Surya <surya1@llnl.gov>
This issue relates to the following test suite run: https://maloo.whamcloud.com/test_sets/899e29aa-76a6-11e0-a1b3-52540025f9af.
The sub-test test_17k failed with the following error:
rsync failed with xattrs enabled
Rsync is failing when xattrs are enable due to the lgetxattr function return inconsistent information about the xattr size.
According to lgetxattr's man page:
An empty buffer of size zero can be passed into these calls to return the current size of the named extended attribute
On success, a positive number is returned indicating the size of the extended attribute value
It doesn't seem like these statements are being upheld.
The behavior I am seeing is:
// ... // path is a pointer to a sting with the pathname to a directory // on a lustre filesystem ssize_t ret1 = lgetxattr(path, "lustre.lov", NULL, 0); // returns 96 char *buf = (char *)malloc(ret1); ssize_t ret2 = lgetxattr(path, "lustre.lov", buf, ret1); // returns 56 // Thus at this point ret1 equals 96 and ret2 equals 56 // Shouldn't ret1 and ret2 be the same value?? // ...
Shouldn't both invocations of lgetxattr return the same value?