os/filestore: require offset == length == 0 for full object read; add test
Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Igor Fedotov <ifedotov@mirantis.com>
osd/ReplicatedPG: be more careful about calling publish_stats_to_osd()
Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
handle_osd_map now adds OSDMaps to the cache as it receives them
but before they are stable. Ensure that we don't try to use them.
Signed-off-by: Sage Weil <sage@redhat.com>
handle_osd_map and the PGs use different sequencers when writing
their updates. We therefore need to make sure new osdmaps are
committed to disk before we expose them to PGs, lest they update
their info to reference a new osdmap that hasn't actually
committed yet.
This doesn't happen with FileStore because transactions are
ordered when they are queued, but it does affect BlueStore.
Fix by splitting handle_osd_map into two phases, one that just
persists stuff, and the second half that publishes the new maps to
the rest of the OSD.
Fixes: #15073
Signed-off-by: Sage Weil <sage@redhat.com>
and drop the cr when worker is done. The cr can be cleaned before
worker is done, so we should have it stick around as long as the
worker is alive.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
It doesn't make sense to update it earlier, the zone that follows will not sync before
it sees the completion.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
Permit building without LDAP support--support is enabled by default.
Tested with CMake and autotools standalone builds.
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
instead of filling MOSDMap with the local oldest_map, we share
the maximum MOSDMap.oldest_map received so far with peers. That
way one OSD's failure to trim won't prevent it from sharing with
others that they are allowed to trim.
Fixes: #13990
Signed-off-by: Kefu Chai <kchai@redhat.com>
similar to the way we set CEPH_PORT, set CEPH_RGW_PORT as well so that
we've rgw instances starting on different ports
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
apply_and_flush_repops does any in-flight request side-effects,
including setting up new watches. Clear out watches after that
so we don't leave any behind.
Fixes: #15151
Signed-off-by: Sage Weil <sage@redhat.com>
Previously we will call rte_eal_init in caller thread as well as dpdk
resources will init in that thread. It will cause all threads spawned
later will bind to the specified core.
And io thread will be spawned via dpdk api, otherwise, dpdk memory
has huge performance degraded problem.
Signed-off-by: Haomai Wang <haomai@xsky.com>
If a live replay is in progress, it's possible that object offset 0
was pulled and a new tag is discovered before the current object is
(re-)pulled to determine that the old tag still has entries remaining.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
ceph.spec.in: do not install Ceph RA on systemd platforms
Reviewed-by: Tim Serong <tserong@suse.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Loic Dachary <ldachary@redhat.com>
We recently moved fsck/repair tools to ceph-common package. We should
also make the version/release requirements tight.
Signed-off-by: Boris Ranto <branto@redhat.com>
A secondary image will store its resync request to the primary
image's journal. When the local rbd mirror process detects the
flag being set, it can initiate a resync from the remote.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
When a client is disconnected from the journal, entries can be
pruned regardless of the affected client's commit position.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>