rgw: DefaultRetention requires either Days or Years
Reviewed-By: Casey Bodley <cbodley@redhat.com>
Reviewed-By: Abhishek Lekshmanan <abhishek@suse.com>
the sole caller `Heartbeat::update_peers()` also returns future, so
there is no reason that `add_reporter_peers()` runs in background.
Signed-off-by: Kefu Chai <kchai@redhat.com>
before this chance, we do following things in background and in
parallel:
* add peers from pg map
* and peers from whole osdmap
* remove dead peers
but we should prioritize the peer candidates, apparently, the ones from
pgmap should have higher priority. as they are more likely to be used in
cluser and they are more important to current OSD, as they serve the
same set of PGs.
so we need to do these things in a proper order:
1. add peers from pg map
2. and peers from whole osdmap
3. remove dead peers
Signed-off-by: Kefu Chai <kchai@redhat.com>
before this change, we could initialize connections to newly added peers
in parallel repeatly, if an OSD is listed in up/acting of multiple PGs
served by current OSD.
after this change, we try to add the peer to `Heartbeat.peers` first,
and then try to connect to it with the hb front/back addresses, to avoid
potential repeatly connecting to peer.
Signed-off-by: Kefu Chai <kchai@redhat.com>
The 'volumes' ceph-mgr module returns a byte type instead of a string
type as the stdout result of commands, `fs subvolume getpath` and
`fs subvolumegroup getpath` to the ceph-mgr. This causes the commands
to hang and the ceph-mgr to utilize 100% CPU. Fix the 'volumes'
ceph-mgr module to return string type to ceph-mgr as the stdout
result of the commands.
Introduced-by: 3d63cd947f
Fixes: https://tracker.ceph.com/issues/41903
Signed-off-by: Venky Shankar <vshankar@redhat.com>
These two commands simplify the process of creating users and
exchanging keys between two clusters.
Fixes: https://tracker.ceph.com/issues/41653
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
These new methods will help facilitate the creation of keys and
the transfer of cluster connection metadata between Ceph clusters.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
it's modeled after pgnls_filter. and use seastar::map_reduce() for
filtering the objects into the response.
Signed-off-by: Kefu Chai <kchai@redhat.com>
currently, OpsExecuter tries to load the object info for all ops to be
executed, but the PG ops do not require the existence of object
specified by op. so we need to specialize for them.
in this change,
* `OpsExecuter::execute_pg_op()` is added to handle pg ops without
loading object info first.
* `pgnls` and `pgnls_filter` are handled by
`OpsExecuter::execute_pg_op()`.
Signed-off-by: Kefu Chai <kchai@redhat.com>
as pg ops should not require the object info, as there is chance that
the object specified in pg ops does not exist at all.
Signed-off-by: Kefu Chai <kchai@redhat.com>
The entity_addr_t::type field does not uniquely identify the connection
and might switch back and forth between LEGACY, V2, and ALL depending on
the client, the OSD, and the OSD map feature bits. Therefore, always
fix the entity address type to ANY prior to any comparisons.
Fixes: https://tracker.ceph.com/issues/41833
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Write operations should not have data but TMAPUP incorrectly appends
the previously read TMAP object to the outdata buferlist.
Fixes: https://tracker.ceph.com/issues/41908
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
qa: avoid page cache for krbd discard round off tests
Reviewed-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
Reviewed-by: Jason Dillaman <dillaman@redhat.com>
tools/rados: use num ops instead of num objs for tracking outstanding IO
Reviewed-by: Mark Nelson <mnelson@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
These types should no longer be used; use ceph_le16/32/64 instead.
Also removes the cmake check whether those types are provided by
kernel headers (likewise for the __be types, which already were
not used anywhere).
Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
There are no remaining callers of these routines, which are no longer
required when using ceph_le16/32/64 (and were no-ops already).
Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Replace remaining uses of __le16/__le32/__le64 in contexts that are
not relevant to code generation, or where objects are only used locally
and do not require endian swaps.
This change is a no-op on all architectures.
Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Replace remaining uses of __le16/__le32/__le64 in contexts that are
not relevant to code generation.
Also, remove unnecessary calls to le16/32/64_to_cpu.
This change is a no-op on all architectures.
Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Replace remaining uses of __le16/__le32/__le64 in contexts that are
not relevant to code generation, or where objects are only used locally
and do not require endian swaps.
Also, remove unnecessary calls to le16/32/64_to_cpu.
This change is a no-op on all architectures.
Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>