the dashboard requires python-routes via cherrypy/_cpdispatch.py during runtime
but the cherrypy debian package only recommends it and doesn't depend on it
Fixes: https://tracker.ceph.com/issues/24420
Signed-off-by: Paul Emmerich <paul.emmerich@croit.io>
- To make dump_historic_ops more human readable, add duration along
with event and stamp fields to dump_historic_ops method.
- Since the events after being received from the messenger messes up
their chronological order, with'throttled' being received prior to
'header_read' and 'initiated'; replace their order in create_request()
so that we get correct order of event stamps and hence correct
durations.
Signed-off-by: Deepika Upadhyay <deepikaupadhyay01@gmail.com>
* refs/pull/28782/head:
common/options.cc: Lower the default value of osd_deep_scrub_large_omap_object_key_threshold
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
* refs/pull/28330/head:
osd: drop osd_lock during scrub
ceph_test_rados_api_tier_pp: tolerate ENOENT or success from deleted snap
osd: automatically scrub purged_snaps every deep scrub interval
osd: move scrub_purged_snaps to helper
osd/OSDMap: SERVER_OCTOPUS feature bit is now significant
ceph_test_rados_api_snapshots_pp: drop unnecessary assert
mon/OSDMonitor: record last_purged_snaps_scrub from beacon to osdmap
osd: report last_purged_snaps_scrub as part of beacon
osd: log purged_snaps scrub to cluster log
osd: record last_purged_snaps_scrub in superblock
osd/OSDMap: add last_purged_snaps_stamp to osd_xinfo_t
mon/OSDMonitor: fix bug in try_prune_purged_snaps
mon/OSDMonitor: record snap removal seq as purged
mon/OSDMonitor: do not bother reporting gaps in removed_snaps
osdc/Objecter: don't worry about gap_removed_snaps from map gaps
mds/SnapServer: make not about pre-octopus compat code
osd: implement scrub_purged_snaps command
osd/PrimaryLogPG: always remove the snap we are trimming
ceph_test_rados_api_snapshots_pp: (partial) test to reproduce stray clones
osd: sync old purged_snaps on startup after upgrade or osd creation
osd: record purged_snaps when we store new maps
mon/OSDMonitor: add messages to get past purged_snaps
mon/OSDMonitor: record pre-octopus purged snaps with first octopus map
mon/OSDMonitor: record purged_snaps for each epoch
mon/OSDMonitor: make_snap_epoch_key -> make_removed_snap_epoch_key
osd/osd_types: add purged_snaps_last to OSDSuperblock
osd/osd_types: clean up initial values for OSDSuperblock
mon/OSDMonitor: make {removed,purged}_snap storage more efficient
mon/OSDMonitor: move (removed, purged) snap update into a helper
mon/OSDMonitor: generalize/refactor lookup_*_snap
mon/OSDMonitor: refactor snap key and value helpers
mon/OSDMonitor: make_snap_key -> make_removed_snap_key, make_purged_snap_key
mon/OSDMonitor: fix lookup_purged_snap implementation
mon/OSDMonitor: lookup_pruned_snap -> lookup_purged_snap
osd: adjust snapmapper keys on first start as octopus
osd/SnapMapper: include poolid in snap index
mon/OSDMonitor: document osd snap metadata format
osd/SnapMapper: document stored keys and values
mon/OSDMonitor: use structured binding for prepare_remove_snaps
mon/OSDMonitor: send MRemoveSnaps back to octopus MDS
mds/SnapServer: handle MRemoveSnaps acks from mon
CMakeLists: include 'cephfs' (which includes libcephfs) in 'vstart' target
mon/PaxosService: add C_ReplyOp
vnewosd.sh: add script to add a new osd to an existing vstart
vstart.sh: remove useless auth add for osds
vstart.sh: wait for mgr volume module to start up
mon/OSDMonitor: make snap removal handle dups safely
mon/OSDMonitor: only update removed_snaps when pre-octopus
ceph_test_rados: stop doing long object names
ceph_test_rados_api_tier_pp: fix osd version checks
osd/PrimaryLogPG: use get_ssc_as_of for snapc for flushing clones
osd/PrimaryLogPG: only maintain SnapSet::snaps for pre-octopus compat
mon/OSDMonitor: only maintain pg_pool_t::removed_snaps for pre-octopus
osd/osd_types: mark SnapSet::snaps as legacy
osd/osd_types: SnapSet::get_ssc_as_of: use clone_snaps
osd/PrimaryLogPG: change fabrication of promoted clone snaps
osd/PrimaryLogPG: only filter SnapSet::snaps for flush for pre-octopus compat
osd/PrimaryLogPG: trim_objects: only filter SnapSet::snaps for pre-octopus
osd/PrimaryLogPG: make best effort to sanitize clones on copy-from
mds/SnapServer: int -> int32_t for encoded type
messages/MRemoveSnaps: int -> int32_t on encoded type
osd/PrimaryLogPG: find_object_context: trust SnapSet's clone_snaps
osd/PrimaryLogPG: use osdmap removed_snaps_queue for snap trimming
mon/OSDMonitor: avoid is_removed_snap()
osd/PeeringState: drop some mimic conditionals
osd/PG: drop pre-mimic snap_trimq code
osd/PeeringState: removed pre-mimic removed snap tracking
osd: move snap_interval_set_t to osd_types
mon: drop mon_debug_no_require_mimic
mon/OSDMonitor: remove pre-mimic snap behavior support
mon/OSDMonitor: remove support for pre-mimic conversion
osd/osd_types: remove build_removed_snaps(), maybe_update_removed_snaps()
osd: remove luminous compat code for removed_snaps
Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
Succeeded action labels can be used in order to show the right tense
for a succeeded action in a success notification.
Fixes: https://tracker.ceph.com/issues/36722
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Pool list shows current r/w byte usage in graph
Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Ricardo Marques <rimarques@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
* glibc offers two variants of basename(). one modifies the content of
`path`, the other does not. to be standard compliant, and to fix
the FTBFS with musl-libc, we need to use the POSIX variant.
* #include <libgen.h> for basename(3), the POSIX compliant one.
see
http://pubs.opengroup.org/onlinepubs/009695399/functions/basename.html
Signed-off-by: Kefu Chai <kchai@redhat.com>
If we are creating the initial state and initial proposal, start with an
empty keyring. Specifically, we want to clear out any rotating secrets
from a previously failed paxos round so that the subsequent call to
check_rotate() will correctly populate the initial proposal with new
rotating keys. (When we don't do this, the leader OSD will have the
keys from an earlier round in memory but no other mons will.)
Fixes: http://tracker.ceph.com/issues/40634
Signed-off-by: Sage Weil <sage@redhat.com>
`uint` is not available in musl. so this change should address the FTBFS
on distros, like Alpine and Gentoo Linux, which uses musl-libc.
Signed-off-by: Kefu Chai <kchai@redhat.com>
We do not want to hold osd_lock while calling apply_transaction or else
we may cause a deadlock due to a completion event that needs osd_lock.
Also, we don't need to hold the lock here, so don't.
Signed-off-by: Sage Weil <sage@redhat.com>
With randomization.
We do this from tick() for simplicity. It is a rare event, will take 10s
of seconds at most, and nothing else particularly time-sensitive is
happening from tick().
Signed-off-by: Sage Weil <sage@redhat.com>
If 'begin' isn't found, we'll get a [pbegin,pend) range back that was
nearby. Only if it overlaps the [begin,end) range do we want to shorten
our range to [begin,pbegin); the old assert was making the assumption
that the lookup would only return a range that was after 'begin', but in
reality it can return was that comes before it too.
Signed-off-by: Sage Weil <sage@redhat.com>
When we delete a selfmanaged snap we have to bump seq. Record this as
purged so that we avoid discontinuities in the history and so our storage
is a bit more efficient.
Signed-off-by: Sage Weil <sage@redhat.com>
This was an attempt to ensure that we didn't let removed_snaps slip by
when we had a discontiguous stream of OSDMaps. In octopus, this can still
happen, but it's mostly harmless--the OSDs will periodically scrub to
clean up any resulting stray clones. It's not worth the complexity.
Signed-off-by: Sage Weil <sage@redhat.com>