from properly cleaning up resources used by client requests. This message
appears if a client appears to have more than ``max_completed_requests``
(default 100000) requests that are complete on the MDS side but haven't
- yet been accounted for in the client's *oldest tid* value.
+ yet been accounted for in the client's *oldest tid* value. The last tid
+ used by the MDS to trim completed client requests (or flush) is included
+ as part of `session ls` (or `client ls`) command as a debug aid.
``MDS_DAMAGE``
--------------
f->dump_object("session_cache_liveness", session_cache_liveness);
f->dump_object("cap_acquisition", cap_acquisition);
+ f->dump_unsigned("last_trim_completed_requests_tid", last_trim_completed_requests_tid);
+ f->dump_unsigned("last_trim_completed_flushes_tid", last_trim_completed_flushes_tid);
+
f->open_array_section("delegated_inos");
for (const auto& [start, len] : delegated_inos) {
f->open_object_section("ino_range");
bool trim_completed_requests(ceph_tid_t mintid) {
// trim
bool erased_any = false;
+ last_trim_completed_requests_tid = mintid;
while (!info.completed_requests.empty() &&
(mintid == 0 || info.completed_requests.begin()->first < mintid)) {
info.completed_requests.erase(info.completed_requests.begin());
}
bool trim_completed_flushes(ceph_tid_t mintid) {
bool erased_any = false;
+ last_trim_completed_flushes_tid = mintid;
while (!info.completed_flushes.empty() &&
(mintid == 0 || *info.completed_flushes.begin() < mintid)) {
info.completed_flushes.erase(info.completed_flushes.begin());
unsigned num_trim_flushes_warnings = 0;
unsigned num_trim_requests_warnings = 0;
+
+ ceph_tid_t last_trim_completed_requests_tid = 0;
+ ceph_tid_t last_trim_completed_flushes_tid = 0;
};
class SessionFilter