libcephfs/client: pin inode/dentry for an opened directory#60909
libcephfs/client: pin inode/dentry for an opened directory#60909
Conversation
7c63a08 to
4f122a0
Compare
ebb8b23 to
cff1f39
Compare
1573d65 to
78433c2
Compare
|
jenkins test windows |
|
jenkins test make check |
|
This PR is under test in https://tracker.ceph.com/issues/69375. |
|
jenkins test windows |
| if (fhp) { | ||
| *fhp = _create_fh(in, flags, cmode, perms); | ||
| // ceph_flags_sys2wire/ceph_flags_to_mode() calls above transforms O_DIRECTORY flag | ||
| // into CEPH_FILE_MODE_PIN mode. Although this mode is used at server size |
|
jenkins test windows |
2 similar comments
|
jenkins test windows |
|
jenkins test windows |
|
Windows failure seems to be real I haven't looked deeper though. @ifed01 |
This is happening with other PRs too, so its probably unrelated to this change (however, it blocks merging). |
|
jenkins test windows |
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
4bd086d to
c9d7345
Compare
|
jenkins test make check |
|
jenkins test api |
|
jenkins test make check |
1 similar comment
|
jenkins test make check |
9fdfbec to
be97718
Compare
|
jenkins test windows |
|
jenkins retest this please |
bf96ced to
aa2d946
Compare
aa2d946 to
51e4e1a
Compare
|
The root cause for reoccurring Windows tests failures is lack of O_DIRECTORY flag translation in ceph_flags_sys2wire() (defined in src/common/ceph_fs.cc). As a result no CEPH_FILE_MODE_PIN is returned by ceph_flags_to_mode() and opened directory gets no pinning. Which in turn exposes it to cache trimming.. |
|
As long as those flags don't propagate to Windows functions, I think we can remove the ifdefs. |
…er Win in ceph_flags_sys2wire() Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
51e4e1a to
4badc83
Compare
|
jenkins test make check |
2 similar comments
|
jenkins test make check |
|
jenkins test make check |
|
Nice work @ifed01. Thx @petrutlucian94 |
Reproduces: https://tracker.ceph.com/issues/69092
Fixes: https://tracker.ceph.com/issues/69092
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e