Bug #38376
closedclient:Repeated release of put_request() in make_request()
0%
Description
code repetition:
Client::make_request()
{
...
if (!request->reply) {
ceph_assert(request->aborted());
ceph_assert(!request->got_unsafe);
r = request->get_abort_code();
request->item.remove_myself();
unregister_request(request);
put_request(request);
return r;
}
...
}
void Client::unregister_request(MetaRequest *req)
{
mds_requests.erase(req->tid);
if (req->tid == oldest_tid) {
map<ceph_tid_t, MetaRequest*>::iterator p = mds_requests.upper_bound(oldest_tid);
while (true) {
if (p == mds_requests.end()) {
oldest_tid = 0;
break;
}
if (p->second->get_op() != CEPH_MDS_OP_SETFILELOCK) {
oldest_tid = p->first;
break;
}
++p;
}
}
put_request(req);
}
Updated by Patrick Donnelly about 5 years ago
- Status changed from New to Rejected
Turns out this isn't a bug. Thanks for making the issue anyway.