Bug #49873
closedceph_lremovexattr does not return error on file in ceph pacific
0%
Description
While running our go-ceph CI against pacific for the first time our CI failed in the xattr tests.
It expected a call to ceph_lremovexattr to a regular file to return an error versus the symlink which is expected to pass. Unfortunately, the ceph pacific version does not appear to return an error when ceph_lremovexattr is invoked on the file path.
Example:
create link "link_name" from file "file_name"
ceph_lsetxattr(link_name, xattr_name, value, xattr_flags) : expected ok
ceph_lremovexattr(file_name, xattr_name) : expected error
ceph_lremovexattr(link_name, xattr_name) : expected ok
In both nautilus and octopus this is working as expected. On pacific the call "ceph_lremovexattr(file_name, xattr_name)" does not return an error.
Interestingly, calling "ceph_lremovexattr(link_name, xattr_name)" twice does cause an error (ENODATA) to be returned the 2nd time. So this implies the function call is handling some error cases. Perhaps the function isn't handling normal (non-link) files correctly?
I am using the 16.1.0 build that is part of ceph container ceph/daemon-base:lastest-pacific (sha256:463b03f0c48a3c760003daa8a5ab77e87120266a784dabe489293943ec20cc3d).