Project

General

Profile

Actions

Bug #42217

closed

rgw:dmclock: When test rgw dmclock function, it cannot work well.

Added by Yonggang Hu over 4 years ago. Updated almost 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
nautilus
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

When I port the rgw dmclock code into our project and test it, I found it doesn't work. All rgw thread will be blocked, and rgw can not proccess any request anymore.
I track this issue, found the process thread is blocked in SyncScheduler::handle_request_cb function, and it is blocked by std::lock_guard<std::mutex> lg(req->req_mtx).
I continue track this issue and found the root cause is in rgw_dmclock_sync_scheduler.cc:line30.
- if (std::unique_lock<std::mutex> lk(req_mtx); rstate != ReqState::Wait) {
+ if (std::unique_lock<std::mutex> lk(req_mtx); rstate == ReqState::Wait) {

the restate initial value is ReqState::Wait, so when rgw_dmclock_sync_scheduler.cc:line 30 , it should wait the mutex lock and block the process request thread. the origin code is !=, it is unreasonable.
I changed it as above, and the dmclock function work well.


Related issues 1 (0 open1 closed)

Copied to rgw - Backport #45436: nautilus: rgw:dmclock: When test rgw dmclock function, it cannot work well. ResolvedNathan CutlerActions
Actions #1

Updated by Greg Farnum over 4 years ago

  • Project changed from Ceph to rgw
Actions #2

Updated by Abhishek Lekshmanan over 4 years ago

  • Pull request ID set to 30777
Actions #3

Updated by Abhishek Lekshmanan over 4 years ago

  • Status changed from New to 7
Actions #4

Updated by Patrick Donnelly over 4 years ago

  • Status changed from 7 to Fix Under Review
Actions #5

Updated by Abhishek Lekshmanan almost 4 years ago

  • Status changed from Fix Under Review to Pending Backport
  • Backport set to Nautilus, Octopus
Actions #6

Updated by Nathan Cutler almost 4 years ago

  • Backport changed from Nautilus, Octopus to nautilus, octopus

ERROR:root:https://tracker.ceph.com/issues/42217 requires backport to unknown release Nautilus

Actions #8

Updated by Nathan Cutler almost 4 years ago

  • Copied to Backport #45436: nautilus: rgw:dmclock: When test rgw dmclock function, it cannot work well. added
Actions #9

Updated by Nathan Cutler almost 4 years ago

  • Backport changed from nautilus, octopus to nautilus

Already in octopus as of 15.1.1

Actions #10

Updated by Nathan Cutler almost 4 years ago

  • Status changed from Pending Backport to Resolved

While running with --resolve-parent, the script "backport-create-issue" noticed that all backports of this issue are in status "Resolved" or "Rejected".

Actions

Also available in: Atom PDF