Bug #5780
the size of the old acting set should be compared with the min_size of the old osdmap
100%
Description
pg_interval_t::check_new_interval compares min_size of the new osdmap with the size of the old acting set
It should compare with the old osdmap.
Associated revisions
check_new_interval must compare old acting with old osdmap
When trying to establish if the old acting set is either empty or
smaller than the min_size of the osdmap,
pg_interval_t::check_new_interval compares with the min_size of the
new osdmap. Since the goal is to try to determine if the previous
interval may have been writeable, it should not enter the if when
there were not enough osds in the acting set ( i.e. < min_size ). But
it may enter it anyway if min_size was decremented in the new osdmap.
A complete set of unit tests were added to cover the logic of
check_new_interval. The parameters are prepared to describe a
situation where the function returns false (i.e. no new
interval). Each case is described in a separate bloc that introduces
the minimal changes to demonstrate the intended test case.
Because a number of cases have the same output while implementing a
different logic, the debug output is parsed to differentiate between them.
A test case demonstrating the problem ( check_new_interval must
compare old acting with old osdmap ) is added, with a link to the bug
number for future reference. The problem is fixed. The text of two
debug messages are slightly changed to make the maintenance of the
test that match them easier.
http://tracker.ceph.com/issues/5780 refs #5780
Signed-off-by: Loic Dachary <loic@dachary.org>
Reviewed-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
History
#1 Updated by Loïc Dachary over 10 years ago
- Description updated (diff)
- Status changed from In Progress to Fix Under Review
#2 Updated by Ian Colle over 10 years ago
- Assignee changed from Loïc Dachary to Samuel Just
Sam - please review
#3 Updated by Loïc Dachary over 10 years ago
- Status changed from Fix Under Review to Resolved
- % Done changed from 0 to 100