pybind/cephfs, mgr/volumes: introduce non-recursive rmtree(), refactor purge() to use it and add MDS optimizations#63917
Conversation
c0c7904 to
a658ebf
Compare
|
jenkins test make check |
|
jenkins test make check arm64 |
a1fe4a9 to
442c53b
Compare
442c53b to
b448c9a
Compare
8a63efd to
cbcf76e
Compare
batrick
left a comment
There was a problem hiding this comment.
Add more error handling and refactor the code a bit.
703b97e to
5284010
Compare
|
@batrick I had some confusion regarding in the code suggested in last review cycle but I think I've got it sorted. I've also made some improvements along the way. PTAL, I'll mark previous review threads resolved based on next set of reviews. The current PR branch has been tested for deletion of subvolumes of several kinds: ones with reg files, symlinks, dirs, retained snapshots, etc. All tests ran fine. |
8f9769c to
c027653
Compare
|
jenkins test make check |
|
jenkins test make check arm64 |
|
jenkins test make check |
|
jenkins test make check arm64 |
batrick
left a comment
There was a problem hiding this comment.
Please add code for tracking what kinds of errors were encountered so we can get useful diagnostics when debugging. This needs to be carried up the stack to the root when the operation completes (either successfully or not).
ed47679 to
7fc7853
Compare
|
jenkins test make check |
|
jenkins test api |
|
@batrick ping |
d972d0c to
6da05f1
Compare
bb34476 to
e697d47
Compare
Generating full absolute path for inodes for printing in MDS logs slows down the FS to a great extent especially when the path is very long (imagine a path with 2000 components). Also printing such long paths in MDS logs is not only pointless but also greatly reduces the readability of the MDS logs. Therefore, generate only 10 final components of inode paths for logging. Fixes: https://tracker.ceph.com/issues/72779 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Generating full absolute path for dentries for printing in MDS logs slows the down the FS to a great extent especially when the path is very long (imagine a path with 2000 components). Printing such long paths in MDS logs is not only pointless but also greatly reduces the readability of MDS logs. Therefore, generate only 10 final components of the dentry paths for logging. Fixes: https://tracker.ceph.com/issues/72779 Signed-off-by: Rishabh Dave <ridave@redhat.com>
|
. |
|
jenkins test make check |
batrick
left a comment
There was a problem hiding this comment.
Otherwise, LGTM. Remaining nits can be addressed with filepath refactor.
Signed-off-by: Rishabh Dave <ridave@redhat.com>
Path can be virtually infinitely long and logging a long long path (imagine around 2000 path components) is un-useful as well as lowers readability of the log. Therefore, trim before logging. Fixes: https://tracker.ceph.com/issues/72993 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Signed-off-by: Rishabh Dave <ridave@redhat.com>
Signed-off-by: Rishabh Dave <ridave@redhat.com>
Signed-off-by: Rishabh Dave <ridave@redhat.com>
|
This PR is under test in https://tracker.ceph.com/issues/73356. |
|
This PR is under test in https://tracker.ceph.com/issues/73357. |
Method purge() in trash.py calls rmtree() which is recursive method. To
avoid Python's recurision limit, switch to non-recursive approach.
Fixes: https://tracker.ceph.com/issues/71648
Also fixes https://tracker.ceph.com/issues/72779 and https://tracker.ceph.com/issues/72993.
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 test classic perfJenkins Job | Jenkins Job Definitionjenkins test crimson perfJenkins Job | Jenkins Job Definitionjenkins test signedJenkins Job | Jenkins Job Definitionjenkins test make checkJenkins Job | Jenkins Job Definitionjenkins test make check arm64Jenkins Job | Jenkins Job Definitionjenkins test submodulesJenkins Job | Jenkins Job Definitionjenkins test dashboardJenkins Job | Jenkins Job Definitionjenkins test dashboard cephadmJenkins Job | Jenkins Job Definitionjenkins test apiJenkins Job | Jenkins Job Definitionjenkins test docsReadTheDocs | Github Workflow Definitionjenkins test ceph-volume allJenkins Jobs | Jenkins Jobs Definitionjenkins test windowsJenkins Job | Jenkins Job Definitionjenkins test rook e2eJenkins Job | Jenkins Job Definition