mgr: register OSDs in ms_handle_accept#52292
Conversation
|
Hmm, we should audit other users of ms_handle_accept -- I haven't looked at this in a while but im pretty sure we put "fast" in the name of everything which needed to be non-blocking when we set that interface up, so there may be a conflict here. |
106a3a3 to
c0bcf30
Compare
Like other fast Dispatcher methods, it must not acquire locks or do anything that might take a long time. Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
It's a no-no to acquire locks in these "fast" messenger methods. This can lead to messenger slow downs in the best case as it's blocking reads on the wire. In the worse case, the messenger may deadlock with other threads, preventing any further message reads off the wire. It's not obvious this method is "fast" so I've added a comment regarding this. Fixes: https://tracker.ceph.com/issues/61874 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
The issue is I've already gone through other users of |
|
ping @rzarzynski |
vshankar
left a comment
There was a problem hiding this comment.
LGTM @batrick - mgr/DaemonServer.cc source changes are really meaningful!
Needs @rzarzynski approval though.
rzarzynski
left a comment
There was a problem hiding this comment.
This looks sane.
I very like how the refactor and fix have been split apart. It should make backporting straightforward. Thanks!
It's a no-no to acquire locks in these "fast" messenger methods. This can lead to messenger slow downs in the best case as it's blocking reads on the wire. In the worse case, the messenger may deadlock with other threads, preventing any further message reads off the wire.
It's not obvious this method is "fast" so I've added a comment regarding this.
Fixes: https://tracker.ceph.com/issues/61874
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. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
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 windows