]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: fix requeue order of dup ops
authorSage Weil <sage@inktank.com>
Mon, 20 Aug 2012 19:33:08 +0000 (12:33 -0700)
committerSage Weil <sage@inktank.com>
Mon, 20 Aug 2012 22:04:37 +0000 (15:04 -0700)
commitdd4c1dc9f9dae43e4761caca049bfe7361d9ebfb
treed3fc8ee398250d4f9a32f3cb06a31035d84e14af
parent7e417bd80122237ae6dd3da2f0983e984847d410
osd: fix requeue order of dup ops

The waiting_for_ondisk (and ack) maps get dups of ops that are in progress.
If we have a peering change in which the role does not change, we will
requeue the in-progress ops but leave these in the waiting_for_ondisk
maps, which will then trigger an assert the next time we examine that map
and find it didn't match up with what we expected.

Fix this by requeuing these on any peering reset in on_change().  This
keeps the two queues in sync.

Fixes: #2956
Signed-off-by: Sage Weil <sage@inktank.com>
src/osd/ReplicatedPG.cc