mgr: return EAGAIN when ceph-mgr request queue is full#60194
mgr: return EAGAIN when ceph-mgr request queue is full#60194neesingh-rh wants to merge 1 commit intoceph:mainfrom
Conversation
|
This PR is open for any suggestions w.r.t. the naming of functions/commands too along with code reviews. I have used what looked apt to me. |
5b146c0 to
d8ffe12
Compare
d8ffe12 to
de3cae8
Compare
|
jenkins retest this please |
src/mgr/ActivePyModule.h
Outdated
| // Optional, URI exposed by plugins that implement serve() | ||
| std::string uri; | ||
|
|
||
| std::atomic_uint mod_finisher_cnt{0}; |
There was a problem hiding this comment.
Thinking about this more, let's move this to the Finisher class to manage the number of contexts "to be completed". (They may be in the in_progress_queue or finisher_queue.)
There was a problem hiding this comment.
Make sure to add the count to the perf dump output for the Finisher.
There was a problem hiding this comment.
Applied the suggestions, PTAL
src/mgr/DaemonServer.cc
Outdated
| auto finisher_val = py_modules.get_threshold_val(mod_name); | ||
| auto queue_len = py_modules.get_mod_finisher_queue_len(mod_name); | ||
| ss << "The value of 'max_command_queue_length' config option for Module '" << mod_name << "' is " | ||
| << finisher_val << " and the current request queue length is " << queue_len; | ||
| dout(10) << ss.str() << dendl; | ||
|
|
||
| if (finisher_val != "0") { | ||
| if (std::to_string(queue_len) > finisher_val) | ||
| { | ||
| ss << "Module '" << mod_name << "' has passed its finisher thread limit. " | ||
| "Set the threshold limit using the 'max_command_queue_length' config "; | ||
| dout(4) << ss.str() << dendl; | ||
| cmdctx->reply(-EAGAIN, ss); | ||
| return true; | ||
| } | ||
| } |
de3cae8 to
55ddd2a
Compare
dd4ab49 to
47146f0
Compare
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
… load Fixes: https://tracker.ceph.com/issues/62712 Signed-off-by: Neeraj Pratap Singh <neesingh@redhat.com>
|
STatus on this? |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically closed because there has been no activity for 90 days. Please feel free to reopen this pull request (or open a new one) if the proposed change is still appropriate. Thank you for your contribution! |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically closed because there has been no activity for 90 days. Please feel free to reopen this pull request (or open a new one) if the proposed change is still appropriate. Thank you for your contribution! |
Fixes: https://tracker.ceph.com/issues/62712
Signed-off-by: Neeraj Pratap Singh neesingh@redhat.com
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