Bug #21807
mds: trims all unpinned dentries when memory limit is reached
% Done:
0%
Source:
Development
Tags:
Backport:
luminous
Regression:
No
Severity:
2 - major
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
MDS
Labels (FS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
Generally dentries are pinned by the client cache so this was easy to miss in testing. Bug is here:
https://github.com/ceph/ceph/blob/5a96d19fc0cf2a3a04641cb2fa608f08b91279a2/src/mds/MDCache.cc#L6461
count will underflow is it is 0 (count=0 indicates to trim until the cache is no longer toofull).
This bug is particularly bad for large directory workloads where the mjaority of dentries are unpinned because clients are only reading a small selectoin of dentries from each dirfrag.
Related issues
History
#1 Updated by Patrick Donnelly over 6 years ago
- Status changed from New to Fix Under Review
#2 Updated by Patrick Donnelly over 6 years ago
- Copied to Backport #21810: luminous: mds: trims all unpinned dentries when memory limit is reached added
#3 Updated by Patrick Donnelly over 6 years ago
- Status changed from Fix Under Review to Pending Backport
#4 Updated by Patrick Donnelly over 6 years ago
- Status changed from Pending Backport to Resolved