Bug #48651
closedxfstest generic/020 failure
0%
Description
xfstest generic/020 started failing sometimes. The test tries to set a really large xattr, and then fails with ENOSPC. This is deliberate by the MDS:
if (((cur_xattrs_size + inc) > g_conf()->mds_max_xattr_pairs_size)) { dout(10) << "xattr kv pairs size too big. cur_xattrs_size " << cur_xattrs_size << ", inc " << inc << dendl; respond_to_request(mdr, -ENOSPC); return; }
That conf value defaults to 64k.
The issue here is that it doesn't always fail. If we have Xx caps then we can (and do) buffer the xattr change.
Updated by Jeff Layton over 3 years ago
I imagine that someone can set a large xattr, buffer it and when caps get flushed, we can't write it back. Do we need to have the client query this value at mount time or something?
Updated by Xiubo Li almost 2 years ago
- Status changed from New to Fix Under Review
Luis is working on this and is fixing it in both kernel and MDS side:
The kernel patch is: https://github.com/ceph/ceph-client/commit/dea94541077519a9c62dba9f980b1509e5a52872
The ceph PR is https://github.com/ceph/ceph/pull/46357.
Updated by Xiubo Li almost 2 years ago
- Status changed from Fix Under Review to Duplicate
Updated by Xiubo Li almost 2 years ago
duplicated to https://tracker.ceph.com/issues/55725.