Project

General

Profile

Bug #21566

OSDService::recovery_need_sleep read+updated without locking

Added by Greg Farnum over 1 year ago. Updated over 1 year ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
Scrub/Repair
Target version:
-
Start date:
09/26/2017
Due date:
% Done:

0%

Source:
Tags:
Backport:
luminous
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
OSD
Pull request ID:

Description

Unless I'm misreading this, OSD::do_recovery() is invoked from the ShardedOpQueue without holding any locks on global OSD state. And then we both read and edit the recovery_needs_sleep member without holding the recovery_request_lock or anything else that prevents it from being handled by multiple threads?`


Related issues

Copied to RADOS - Backport #21697: luminous: OSDService::recovery_need_sleep read+updated without locking Resolved

History

#1 Updated by Neha Ojha over 1 year ago

  • Status changed from New to Need Review

https://github.com/ceph/ceph/pull/18022 should take care of this.

#2 Updated by Kefu Chai over 1 year ago

  • Status changed from Need Review to Pending Backport

#3 Updated by Nathan Cutler over 1 year ago

  • Backport set to luminous

#4 Updated by Nathan Cutler over 1 year ago

  • Copied to Backport #21697: luminous: OSDService::recovery_need_sleep read+updated without locking added

#5 Updated by Nathan Cutler over 1 year ago

  • Status changed from Pending Backport to Resolved

Also available in: Atom PDF