ceph/ceph — pull request #472 by dachary (2013-07-28 12:13:44+00:00)
Title: 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. there is no new
interval to consider. Each case is described in a separate bloc that
introduces the minimal changes to demonstrate the intended
functionality.

Because a number of cases have the same input while implementing a
different logic, the debug output is parsed to differentiate the
cases.

A test case demonstrating the problem described above is added, with a
link to the bug number for future reference. The problem is fixed and
two debug messages are 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