]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
PG: check_recovery_sources must happen even if not active
authorSamuel Just <sam.just@inktank.com>
Thu, 7 Mar 2013 20:53:51 +0000 (12:53 -0800)
committerSamuel Just <sam.just@inktank.com>
Thu, 14 Mar 2013 01:14:43 +0000 (18:14 -0700)
commitde22b186c497ce151217aecf17a8d35cdbf549bb
tree726d287343a20cb844b0baba9516c9da51bcd2d5
parent7a434d10da0f77e1b329de0b06b6645cd73cc81b
PG: check_recovery_sources must happen even if not active

missing_loc/missing_loc_sources also must be cleaned up
if a peer goes down during peering:

1) pg is in GetInfo, acting is [3,1]
2) we find object A on osd [0] in GetInfo
3) 0 goes down, no new peering interval since it is neither up nor
acting, but peer_missing[0] is removed.
4) pg goes active and try to pull A from 0 since missing_loc did not get
cleaned up.

Backport: bobtail
Fixes: #4371
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
src/osd/PG.cc
src/osd/PG.h