Re: Possible bug when getting batched xattrs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 17 Oct 2014, Joaquim Rocha wrote:
> Hi,
> 
> I need to get a list of xattrs from one object (so I'm batching them in one
> ObjectReadOperation) but I don't know in advance if all of those xattrs exist.
> 
> I was expecting to figure out the ones that don't exist from the return code
> of each getxattr call but I have however noticed that as soon one nonexistent
> xattr is processed, its return code gets correctly set to -ENODATA but the
> remaining xattrs are never checked. And what is worse, the remaining getxattr
> op's return codes get assigned to 0.
> 
> I am attaching a small test case I've quickly written that proves the case. (I
> am using Ceph 0.80.5)
> 
> Could you confirm that this is not the intended behavior (that all read op's
> calls should be processed)?

This is by design.

What you want is the 

    void set_op_flags(ObjectOperationFlags flags);

method on the ObjectOperation, and the OP_FAILOK flag.  That will set a 
bit on the last op (getxattr) you added that will make processing continue 
even if it got an error.  Then you'll get the behavior you were 
looking for.

sage
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux