Project

General

Profile

Actions

Bug #48651

closed

xfstest generic/020 failure

Added by Jeff Layton over 3 years ago. Updated almost 2 years ago.

Status:
Duplicate
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Crash signature (v1):
Crash signature (v2):

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.

Actions #1

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?

Actions #2

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.

Actions #3

Updated by Xiubo Li almost 2 years ago

  • Status changed from Fix Under Review to Duplicate
Actions

Also available in: Atom PDF