I can confirm that head of master has the same behavior. On top, having had a look at the osd code (name ly ReplicatedPG.cc around line 4756 in master), it seems to be intended : we are in a for loop going through the operations and executing them and the code says : if (result < 0) break; So we exit the loop on the first error and do not execute the remaining ops. Sebastien On Fri, 2014-10-17 at 11:28 +0200, 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)? > > > Thank you in advance, > > -- > Joaquim Rocha > http://www.joaquimrocha.com -- 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