]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
ReplicatedPG: do not ->put() scrub messages when adding to a WorkQueue.
authorGreg Farnum <gregory.farnum@dreamhost.com>
Tue, 6 Dec 2011 22:24:08 +0000 (14:24 -0800)
committerGreg Farnum <gregory.farnum@dreamhost.com>
Tue, 6 Dec 2011 22:24:08 +0000 (14:24 -0800)
commit03b03553b2e386b4c102e24bf90f88297a0f61e7
tree07ea73697423d61153483e473a720b50c138ad04
parentbcd26fca71b38a20ce469447c7867940a3d000ed
ReplicatedPG: do not ->put() scrub messages when adding to a WorkQueue.

This function is passing a reference from PG::active_rep_scrub to
the req_scrub_wq, not eliminating the reference (and the WorkQueue
doesn't grab a new reference itself, either).
The other alternative is to convert the WorkQueue to grab a
reference, but since they can cycle through the WorkQueue more than
once, and need to be ->put() outside the WorkQueue, I don't like
that option.
This should fix #1758.

Also add an assert to PG::_request_scrub_map to check on the other
possible cause of this bug (and fix the indentation).

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
src/osd/PG.cc
src/osd/ReplicatedPG.cc