Previously, changes to clone_overlap were incorrect since make_writeable
is called after do_osd_ops. Now, ctx->modified_ranges will hold the set
of offsets modified during the transaction to be applied to
clone_overlap during make_writeable.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
- _d suffix for naked struct/class types (not _t!)
- m_ prefix for class members
- prefer braces for single line ifs.
Signed-off-by: Sage Weil <sage@newdream.net>
We need to iterate over the intersection of data_subset and data_needed,
not the original data_needed.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Build tests (that check if there are unresolved symbols in libraries)
can slow down the build a lot. We should only enable them when
developers need them.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Change testrados back to a simple single-threaded test. The
multi-threaded tests need to be properly designed to run multi-threaded.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
* add rados_delete_pools_parallel test
* change RETURN_IF_NOT_VAL -> RETURN1_IF_NOT_VAL.
We want to return a non-zero error code when the value is something we
don't expect, even if that unexpected value is 0.
* st_rados_list_objects: add option to ignore list errors (for the
deletion test)
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
In order to test clone recovery pathways, TestSnaps now writes to random
subsets of an object between snapshots. Objects may now also be very
large.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
We can just look at the target loner here, which also takes any caps wanted
by other replicas on other MDSs into account. Otherwise we need to
to duplicate the CInode::calc_ideal_loner() logic.
This assumes the loner field is accurate.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
It is tedious to infer what the old loner_cap was pre-migration. Just send
it over the wire and set it explicitly. Usually when we eval() we would
have come to the same conclusion, but when we didn't, we got into
inconsistent/impossible states where the issue caps don't match the loner
state (Asx issued but no loner_cap set). That meant the next issue was
a revocation with no lock state change, which led to yet more problems
down the line.
This is an internal MDS protocol change.
Signed-off-by: Sage Weil <sage@newdream.net>