]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
6 years agomon/OSDMonitor: fix _lookup_snap to verify the pool matches 28865/head
Sage Weil [Wed, 3 Jul 2019 20:52:55 +0000 (15:52 -0500)]
mon/OSDMonitor: fix _lookup_snap to verify the pool matches

We don't want to get false positives from keys for other pools.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoceph_test_rados_api_*: make failing to clean up namespace non-fatal
Sage Weil [Wed, 3 Jul 2019 18:30:55 +0000 (13:30 -0500)]
ceph_test_rados_api_*: make failing to clean up namespace non-fatal

If we leak snaps, failing to clean up a namespace can happen and won't
get fixed until we scrub purged_snaps.  Make this a non-fatal condition.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: store purged_snaps history under separate object
Sage Weil [Wed, 3 Jul 2019 18:29:15 +0000 (13:29 -0500)]
osd: store purged_snaps history under separate object

We can't put this in the snapmapper object because filestore does not
allow multiple concurrent omap iterators on the same object.  (This is a
limitation that could be fixed with some read/write locking, but not
without some significant changes to DBObjectMap; since that is old crufty
legacy code let's avoid touching it!)

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: drop osd_lock during scrub 28330/head
Sage Weil [Tue, 2 Jul 2019 15:51:57 +0000 (10:51 -0500)]
osd: drop osd_lock during scrub

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>
6 years agoceph_test_rados_api_tier_pp: tolerate ENOENT or success from deleted snap
Sage Weil [Sun, 30 Jun 2019 20:06:37 +0000 (15:06 -0500)]
ceph_test_rados_api_tier_pp: tolerate ENOENT or success from deleted snap

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: automatically scrub purged_snaps every deep scrub interval
Sage Weil [Wed, 26 Jun 2019 20:43:25 +0000 (15:43 -0500)]
osd: automatically scrub purged_snaps every deep scrub interval

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>
6 years agoosd: move scrub_purged_snaps to helper
Sage Weil [Wed, 26 Jun 2019 20:21:36 +0000 (15:21 -0500)]
osd: move scrub_purged_snaps to helper

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/OSDMap: SERVER_OCTOPUS feature bit is now significant
Sage Weil [Tue, 18 Jun 2019 17:59:29 +0000 (12:59 -0500)]
osd/OSDMap: SERVER_OCTOPUS feature bit is now significant

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoceph_test_rados_api_snapshots_pp: drop unnecessary assert
Sage Weil [Wed, 26 Jun 2019 20:06:14 +0000 (15:06 -0500)]
ceph_test_rados_api_snapshots_pp: drop unnecessary assert

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: record last_purged_snaps_scrub from beacon to osdmap
Sage Weil [Wed, 26 Jun 2019 19:30:07 +0000 (14:30 -0500)]
mon/OSDMonitor: record last_purged_snaps_scrub from beacon to osdmap

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: report last_purged_snaps_scrub as part of beacon
Sage Weil [Wed, 26 Jun 2019 19:29:55 +0000 (14:29 -0500)]
osd: report last_purged_snaps_scrub as part of beacon

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: log purged_snaps scrub to cluster log
Sage Weil [Wed, 26 Jun 2019 19:29:41 +0000 (14:29 -0500)]
osd: log purged_snaps scrub to cluster log

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: record last_purged_snaps_scrub in superblock
Sage Weil [Wed, 26 Jun 2019 19:29:25 +0000 (14:29 -0500)]
osd: record last_purged_snaps_scrub in superblock

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/OSDMap: add last_purged_snaps_stamp to osd_xinfo_t
Sage Weil [Wed, 26 Jun 2019 17:51:54 +0000 (12:51 -0500)]
osd/OSDMap: add last_purged_snaps_stamp to osd_xinfo_t

Record OSDs' last scrub of purged_snaps in the OSDMap.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: fix bug in try_prune_purged_snaps
Sage Weil [Fri, 21 Jun 2019 02:54:09 +0000 (21:54 -0500)]
mon/OSDMonitor: fix bug in try_prune_purged_snaps

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>
6 years agomon/OSDMonitor: record snap removal seq as purged
Sage Weil [Thu, 20 Jun 2019 17:07:38 +0000 (12:07 -0500)]
mon/OSDMonitor: record snap removal seq as purged

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>
6 years agomon/OSDMonitor: do not bother reporting gaps in removed_snaps
Sage Weil [Wed, 12 Jun 2019 21:47:53 +0000 (16:47 -0500)]
mon/OSDMonitor: do not bother reporting gaps in removed_snaps

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosdc/Objecter: don't worry about gap_removed_snaps from map gaps
Sage Weil [Wed, 12 Jun 2019 21:47:29 +0000 (16:47 -0500)]
osdc/Objecter: don't worry about gap_removed_snaps from map gaps

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>
6 years agomds/SnapServer: make not about pre-octopus compat code
Sage Weil [Tue, 11 Jun 2019 14:32:34 +0000 (09:32 -0500)]
mds/SnapServer: make not about pre-octopus compat code

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: implement scrub_purged_snaps command
Sage Weil [Mon, 10 Jun 2019 22:31:54 +0000 (17:31 -0500)]
osd: implement scrub_purged_snaps command

This a naive one-shot implementation that does the full scan synchronously
in the command thread.  It shouldn't block any IO except to the extent
that it will compete for IO reading the underlying snapmapper omap object.

When we discover mapped objects that are covered by ranges of snaps that
should be purged, we requeue the snapid for trim on the relevant PG(s).
For these 'repeat' trims we skip the final step(s) to mark the snapid as
purged, since that presumably already happened some time ago.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PrimaryLogPG: always remove the snap we are trimming
Sage Weil [Mon, 10 Jun 2019 22:31:08 +0000 (17:31 -0500)]
osd/PrimaryLogPG: always remove the snap we are trimming

This doesn't change behavior (yet), since we only trim snaps that are
marked for removal in the OSDMap.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoceph_test_rados_api_snapshots_pp: (partial) test to reproduce stray clones
Sage Weil [Mon, 10 Jun 2019 22:25:45 +0000 (17:25 -0500)]
ceph_test_rados_api_snapshots_pp: (partial) test to reproduce stray clones

The test creates a snap, removes it, waits for it to (hopefully) purge,
and then uses that snapid in a snapc to generate a clone.

This isn't a complete test because (1) it doesn't wait for the purge to
happen (e.g., by watching the osdmaps go by), and (2) it doesn't trigger
an osd scrub_purged_snaps afterwards.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: sync old purged_snaps on startup after upgrade or osd creation
Sage Weil [Mon, 10 Jun 2019 15:13:49 +0000 (10:13 -0500)]
osd: sync old purged_snaps on startup after upgrade or osd creation

This path only triggers after an upgrade or osd creation, when
purged_snaps_last < current_epoch.  When that happens, we slurp down the
old purged snaps so that we have a full history recorded locally.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: record purged_snaps when we store new maps
Sage Weil [Mon, 10 Jun 2019 15:12:04 +0000 (10:12 -0500)]
osd: record purged_snaps when we store new maps

When we get a new map, record the (new) purged_snaps.

Only do this if the OSD has purged_snaps that are in sync with the latest
OSDMap.  That means that after an upgrade, if the OSD didn't sync the
old purged_snaps on startup, it won't sync anything until it *next* starts
up.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: add messages to get past purged_snaps
Sage Weil [Mon, 10 Jun 2019 15:10:34 +0000 (10:10 -0500)]
mon/OSDMonitor: add messages to get past purged_snaps

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: record pre-octopus purged snaps with first octopus map
Sage Weil [Fri, 7 Jun 2019 21:08:27 +0000 (16:08 -0500)]
mon/OSDMonitor: record pre-octopus purged snaps with first octopus map

When we public our first require_osd_release >= octopus osdmap, record
all prior purged snaps in a key linked to the previous osdmap.  We assume
this will encode and fit into a single key and transaction because the
even larger set of removed_snaps is already a member of pg_pool_t, which
is included in every osdmap.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: record purged_snaps for each epoch
Sage Weil [Fri, 7 Jun 2019 20:03:28 +0000 (15:03 -0500)]
mon/OSDMonitor: record purged_snaps for each epoch

Only do this if the mons are all running octopus (and thus there is also
a record for all the pre-octopus purged snaps).

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: make_snap_epoch_key -> make_removed_snap_epoch_key
Sage Weil [Fri, 7 Jun 2019 19:51:01 +0000 (14:51 -0500)]
mon/OSDMonitor: make_snap_epoch_key -> make_removed_snap_epoch_key

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/osd_types: add purged_snaps_last to OSDSuperblock
Sage Weil [Fri, 7 Jun 2019 18:48:49 +0000 (13:48 -0500)]
osd/osd_types: add purged_snaps_last to OSDSuperblock

Make this 0 for old encodings or new superblocks.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/osd_types: clean up initial values for OSDSuperblock
Sage Weil [Fri, 7 Jun 2019 18:48:34 +0000 (13:48 -0500)]
osd/osd_types: clean up initial values for OSDSuperblock

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: make {removed,purged}_snap storage more efficient
Sage Weil [Fri, 7 Jun 2019 15:57:53 +0000 (10:57 -0500)]
mon/OSDMonitor: make {removed,purged}_snap storage more efficient

Merge adjacent extents to keep the database smaller and lookups more
efficient.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: move (removed, purged) snap update into a helper
Sage Weil [Fri, 7 Jun 2019 15:57:04 +0000 (10:57 -0500)]
mon/OSDMonitor: move (removed, purged) snap update into a helper

This is trivial at the moment, but we'll make it clever next.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: generalize/refactor lookup_*_snap
Sage Weil [Fri, 7 Jun 2019 15:51:52 +0000 (10:51 -0500)]
mon/OSDMonitor: generalize/refactor lookup_*_snap

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: refactor snap key and value helpers
Sage Weil [Fri, 7 Jun 2019 15:48:24 +0000 (10:48 -0500)]
mon/OSDMonitor: refactor snap key and value helpers

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: make_snap_key -> make_removed_snap_key, make_purged_snap_key
Sage Weil [Fri, 7 Jun 2019 15:42:56 +0000 (10:42 -0500)]
mon/OSDMonitor: make_snap_key -> make_removed_snap_key, make_purged_snap_key

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: fix lookup_purged_snap implementation
Sage Weil [Fri, 7 Jun 2019 15:23:18 +0000 (10:23 -0500)]
mon/OSDMonitor: fix lookup_purged_snap implementation

- look at purged, not removed snap keys
- fix the key check to look at the *key name* prefix, not the overall
  prefix (the one implemented by the KeyValueDB interface).

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: lookup_pruned_snap -> lookup_purged_snap
Sage Weil [Fri, 7 Jun 2019 15:21:16 +0000 (10:21 -0500)]
mon/OSDMonitor: lookup_pruned_snap -> lookup_purged_snap

This confused me and sent me into the weeds.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: adjust snapmapper keys on first start as octopus
Sage Weil [Thu, 6 Jun 2019 19:37:07 +0000 (14:37 -0500)]
osd: adjust snapmapper keys on first start as octopus

Convert snapmapper keys to the new form the first time we start up running
octopus.

This is an incompat feature--once you start as octopus you can't go back.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/SnapMapper: include poolid in snap index
Sage Weil [Wed, 5 Jun 2019 21:53:25 +0000 (16:53 -0500)]
osd/SnapMapper: include poolid in snap index

We want to sort starting with (pool, snapid, ...) so that we align with
the structure of the purged_snaps.  Simply flattening all snaps across
pools is less than ideal because the purge records are intervals (with the
snap in the key the last snap for the interval); flattening means we'd have
to look at many records (across pools) to conclude anything.  Putting
these in the form we really want them simplifies things going forward.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: document osd snap metadata format
Sage Weil [Wed, 5 Jun 2019 21:50:53 +0000 (16:50 -0500)]
mon/OSDMonitor: document osd snap metadata format

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/SnapMapper: document stored keys and values
Sage Weil [Tue, 4 Jun 2019 19:23:16 +0000 (14:23 -0500)]
osd/SnapMapper: document stored keys and values

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: use structured binding for prepare_remove_snaps
Sage Weil [Fri, 31 May 2019 21:34:02 +0000 (16:34 -0500)]
mon/OSDMonitor: use structured binding for prepare_remove_snaps

No functional change

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: send MRemoveSnaps back to octopus MDS
Sage Weil [Fri, 31 May 2019 21:33:22 +0000 (16:33 -0500)]
mon/OSDMonitor: send MRemoveSnaps back to octopus MDS

The octopus MDS wants an explicit ack when snaps are removed.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomds/SnapServer: handle MRemoveSnaps acks from mon
Sage Weil [Fri, 31 May 2019 21:32:44 +0000 (16:32 -0500)]
mds/SnapServer: handle MRemoveSnaps acks from mon

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoCMakeLists: include 'cephfs' (which includes libcephfs) in 'vstart' target
Sage Weil [Fri, 31 May 2019 18:04:56 +0000 (13:04 -0500)]
CMakeLists: include 'cephfs' (which includes libcephfs) in 'vstart' target

This ensures 'make vstart' will build libcephfs, which lets the mgr volumes
module start, such that we can successfully vstart.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/PaxosService: add C_ReplyOp
Sage Weil [Fri, 31 May 2019 14:37:35 +0000 (09:37 -0500)]
mon/PaxosService: add C_ReplyOp

Generic helper context to reply to an op on (successful) finish.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agovnewosd.sh: add script to add a new osd to an existing vstart
Sage Weil [Mon, 10 Jun 2019 15:09:58 +0000 (10:09 -0500)]
vnewosd.sh: add script to add a new osd to an existing vstart

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agovstart.sh: remove useless auth add for osds
Sage Weil [Mon, 10 Jun 2019 15:09:46 +0000 (10:09 -0500)]
vstart.sh: remove useless auth add for osds

'osd new' installs the key.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agovstart.sh: wait for mgr volume module to start up
Sage Weil [Fri, 31 May 2019 18:04:32 +0000 (13:04 -0500)]
vstart.sh: wait for mgr volume module to start up

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: make snap removal handle dups safely
Sage Weil [Mon, 17 Jun 2019 23:11:50 +0000 (18:11 -0500)]
mon/OSDMonitor: make snap removal handle dups safely

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: only update removed_snaps when pre-octopus
Sage Weil [Mon, 17 Jun 2019 14:53:02 +0000 (09:53 -0500)]
mon/OSDMonitor: only update removed_snaps when pre-octopus

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoceph_test_rados: stop doing long object names
Sage Weil [Fri, 14 Jun 2019 16:22:54 +0000 (11:22 -0500)]
ceph_test_rados: stop doing long object names

This was there to test filestore's long file name handling, which (1)
works, and (2) we don't care that much about anymore.  Meanwhile, the
long names make the OSD log files *really* painful to read.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoceph_test_rados_api_tier_pp: fix osd version checks
Sage Weil [Wed, 12 Jun 2019 16:07:48 +0000 (11:07 -0500)]
ceph_test_rados_api_tier_pp: fix osd version checks

These need to exclude old releases but run the test for newer, unnamed
releases.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PrimaryLogPG: use get_ssc_as_of for snapc for flushing clones
Sage Weil [Wed, 12 Jun 2019 15:37:51 +0000 (10:37 -0500)]
osd/PrimaryLogPG: use get_ssc_as_of for snapc for flushing clones

We will stop maintaining SnapSet::snaps shortly.  Instead, generate this
snapc using the existing SnapSet::get_ssc_as_of() method, which will now
derive the snap list from the clone_snaps member.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PrimaryLogPG: only maintain SnapSet::snaps for pre-octopus compat
Sage Weil [Tue, 11 Jun 2019 21:38:12 +0000 (16:38 -0500)]
osd/PrimaryLogPG: only maintain SnapSet::snaps for pre-octopus compat

Once we have all octopus or newer OSDs, we can stop maintaining
SnapSet::snaps.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: only maintain pg_pool_t::removed_snaps for pre-octopus
Sage Weil [Tue, 11 Jun 2019 22:45:17 +0000 (17:45 -0500)]
mon/OSDMonitor: only maintain pg_pool_t::removed_snaps for pre-octopus

- do not examine removed_snaps
- do not add new items to removed_snaps unless we need pre-octopus compat
- clear removed_snaps in first octopus epoch

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/osd_types: mark SnapSet::snaps as legacy
Sage Weil [Tue, 11 Jun 2019 21:41:45 +0000 (16:41 -0500)]
osd/osd_types: mark SnapSet::snaps as legacy

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/osd_types: SnapSet::get_ssc_as_of: use clone_snaps
Sage Weil [Tue, 11 Jun 2019 21:39:51 +0000 (16:39 -0500)]
osd/osd_types: SnapSet::get_ssc_as_of: use clone_snaps

Fabricate a SnapContext from the clone_snaps instead of snaps (which we
are trying to kill).

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PrimaryLogPG: change fabrication of promoted clone snaps
Sage Weil [Tue, 11 Jun 2019 21:33:19 +0000 (16:33 -0500)]
osd/PrimaryLogPG: change fabrication of promoted clone snaps

Instead of using SnapSet::snaps (which we are trying to kill), use the
clone_snaps[] snaps.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PrimaryLogPG: only filter SnapSet::snaps for flush for pre-octopus compat
Sage Weil [Tue, 11 Jun 2019 18:54:45 +0000 (13:54 -0500)]
osd/PrimaryLogPG: only filter SnapSet::snaps for flush for pre-octopus compat

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PrimaryLogPG: trim_objects: only filter SnapSet::snaps for pre-octopus
Sage Weil [Tue, 11 Jun 2019 18:52:32 +0000 (13:52 -0500)]
osd/PrimaryLogPG: trim_objects: only filter SnapSet::snaps for pre-octopus

For octopus and later, we don't need SnapSet::snaps.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PrimaryLogPG: make best effort to sanitize clones on copy-from
Sage Weil [Tue, 11 Jun 2019 14:33:51 +0000 (09:33 -0500)]
osd/PrimaryLogPG: make best effort to sanitize clones on copy-from

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomds/SnapServer: int -> int32_t for encoded type
Sage Weil [Fri, 31 May 2019 14:09:09 +0000 (09:09 -0500)]
mds/SnapServer: int -> int32_t for encoded type

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomessages/MRemoveSnaps: int -> int32_t on encoded type
Sage Weil [Fri, 31 May 2019 13:56:37 +0000 (08:56 -0500)]
messages/MRemoveSnaps: int -> int32_t on encoded type

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PrimaryLogPG: find_object_context: trust SnapSet's clone_snaps
Sage Weil [Thu, 30 May 2019 17:17:50 +0000 (12:17 -0500)]
osd/PrimaryLogPG: find_object_context: trust SnapSet's clone_snaps

Instead of checking the OSDMap pg_pool_t whether a snap exists, instead

1- Look at the clone_snaps more carefully.  If the snap didn't exist when
the clone was last touched (created or partially-trimmed) then it still
doesn't exist now (snaps aren't resurrected).

2- Check in the OSDMap's removed snaps queue.  This will catch anything
that is still being removed but hasn't been reflected by the clone_snaps
yet.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PrimaryLogPG: use osdmap removed_snaps_queue for snap trimming
Sage Weil [Thu, 30 May 2019 15:06:06 +0000 (10:06 -0500)]
osd/PrimaryLogPG: use osdmap removed_snaps_queue for snap trimming

No need to use the pg_pool_t member now--the osdmap has a queue
specifically for the snaps we are in the process of trimming.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: avoid is_removed_snap()
Sage Weil [Thu, 30 May 2019 14:49:06 +0000 (09:49 -0500)]
mon/OSDMonitor: avoid is_removed_snap()

Instead, consult the OSDMap's removed_snap_queue and the mon's record of
purged snaps.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PeeringState: drop some mimic conditionals
Sage Weil [Tue, 4 Jun 2019 19:27:27 +0000 (14:27 -0500)]
osd/PeeringState: drop some mimic conditionals

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PG: drop pre-mimic snap_trimq code
Sage Weil [Tue, 4 Jun 2019 19:26:45 +0000 (14:26 -0500)]
osd/PG: drop pre-mimic snap_trimq code

This is no longer needed for octopus.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/PeeringState: removed pre-mimic removed snap tracking
Sage Weil [Thu, 30 May 2019 15:02:19 +0000 (10:02 -0500)]
osd/PeeringState: removed pre-mimic removed snap tracking

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: move snap_interval_set_t to osd_types
Sage Weil [Tue, 11 Jun 2019 18:14:07 +0000 (13:14 -0500)]
osd: move snap_interval_set_t to osd_types

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon: drop mon_debug_no_require_mimic
Sage Weil [Thu, 30 May 2019 14:16:06 +0000 (09:16 -0500)]
mon: drop mon_debug_no_require_mimic

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: remove pre-mimic snap behavior support
Sage Weil [Thu, 30 May 2019 14:15:14 +0000 (09:15 -0500)]
mon/OSDMonitor: remove pre-mimic snap behavior support

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agomon/OSDMonitor: remove support for pre-mimic conversion
Sage Weil [Thu, 30 May 2019 14:14:28 +0000 (09:14 -0500)]
mon/OSDMonitor: remove support for pre-mimic conversion

Cluster must already be mimic to run octopus.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd/osd_types: remove build_removed_snaps(), maybe_update_removed_snaps()
Sage Weil [Tue, 28 May 2019 20:03:27 +0000 (15:03 -0500)]
osd/osd_types: remove build_removed_snaps(), maybe_update_removed_snaps()

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoosd: remove luminous compat code for removed_snaps
Sage Weil [Tue, 28 May 2019 20:02:41 +0000 (15:02 -0500)]
osd: remove luminous compat code for removed_snaps

This is no longer necessary with peers >= mimic.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #28752 from xiexingguo/wip-reset-hb-session
Kefu Chai [Tue, 2 Jul 2019 09:54:42 +0000 (17:54 +0800)]
Merge pull request #28752 from xiexingguo/wip-reset-hb-session

osd/OSD: auto mark heartbeat sessions as stale and tear them down

Reviewed-by: yanjun <yan.jun8@zte.com.cn>
Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #28731 from tchaikov/wip-40533
Kefu Chai [Tue, 2 Jul 2019 09:45:06 +0000 (17:45 +0800)]
Merge pull request #28731 from tchaikov/wip-40533

qa/tasks/ceph_manager.py: ignore errors in test_pool_min_size

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoMerge pull request #28744 from tchaikov/wip-monitor-cleanup
Kefu Chai [Tue, 2 Jul 2019 09:38:35 +0000 (17:38 +0800)]
Merge pull request #28744 from tchaikov/wip-monitor-cleanup

mon/Monitor: no need to create a local variable for capturing it

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge pull request #28581 from Aran85/fix-mtime
Kefu Chai [Tue, 2 Jul 2019 09:37:27 +0000 (17:37 +0800)]
Merge pull request #28581 from Aran85/fix-mtime

osd: copyfrom omitted to set mtime

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
6 years agomgr/dashboard: Separate file for icons for refering and reusing (#27376)
Volker Theile [Tue, 2 Jul 2019 08:50:09 +0000 (10:50 +0200)]
mgr/dashboard: Separate file for icons for refering and reusing (#27376)

mgr/dashboard: Separate file for icons for refering and reusing

Reviewed-by: Tiago Melo <tmelo@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
Reviewed-by: Alfonso Martínez <almartin@redhat.com>
6 years agoMerge pull request #28827 from Rjerk/fix-mgr-ansible-doc
Kefu Chai [Tue, 2 Jul 2019 08:31:38 +0000 (16:31 +0800)]
Merge pull request #28827 from Rjerk/fix-mgr-ansible-doc

doc/mgr/ansible.rst: fix typo

Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #28798 from tchaikov/wip-crimson-net
Kefu Chai [Tue, 2 Jul 2019 07:41:09 +0000 (15:41 +0800)]
Merge pull request #28798 from tchaikov/wip-crimson-net

crimson/net: print tx/rx messages using logger().info()

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agodoc/mgr/ansible.rst: fix typo 28827/head
Lan Liu [Tue, 2 Jul 2019 02:45:43 +0000 (10:45 +0800)]
doc/mgr/ansible.rst: fix typo

Signed-off-by: Lan Liu <liulan@umcloud.com>
6 years agoMerge pull request #28828 from iotcg/crimson
Kefu Chai [Tue, 2 Jul 2019 04:49:13 +0000 (12:49 +0800)]
Merge pull request #28828 from iotcg/crimson

crimson/common: remove unused file .#log.cc

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #28818 from tchaikov/wip-ceph-conf-cli-test
Kefu Chai [Tue, 2 Jul 2019 04:46:41 +0000 (12:46 +0800)]
Merge pull request #28818 from tchaikov/wip-ceph-conf-cli-test

test/cli/ceph-conf: fix test

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoMerge pull request #28805 from Rjerk/fix-doc
Xie Xingguo [Tue, 2 Jul 2019 03:55:55 +0000 (11:55 +0800)]
Merge pull request #28805 from Rjerk/fix-doc

doc/rados/configuration: fix typos in osd-config-ref.rst

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/common: remove unused file .#log.cc 28828/head
Changcheng Liu [Tue, 2 Jul 2019 03:31:45 +0000 (11:31 +0800)]
crimson/common: remove unused file .#log.cc

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
6 years agocrimson/net: print tx/rx messages using logger().debug() 28798/head
Kefu Chai [Sun, 30 Jun 2019 08:50:18 +0000 (16:50 +0800)]
crimson/net: print tx/rx messages using logger().debug()

so we can find them with less efforts.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/net: print trivial logging using "trace"
Kefu Chai [Tue, 2 Jul 2019 03:04:48 +0000 (11:04 +0800)]
crimson/net: print trivial logging using "trace"

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/net: note down server's peer_id as client
Kefu Chai [Sun, 30 Jun 2019 10:58:55 +0000 (18:58 +0800)]
crimson/net: note down server's peer_id as client

the peer_id is not used at this moment. this change is made just for
the sake of completeness.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson/net: use Connection::peer_is_mon()
Kefu Chai [Sun, 30 Jun 2019 10:04:28 +0000 (18:04 +0800)]
crimson/net: use Connection::peer_is_mon()

always prefer using interface over its implementation

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocrimson: store ticket.peer_global_id in connection
Kefu Chai [Sun, 30 Jun 2019 10:01:13 +0000 (18:01 +0800)]
crimson: store ticket.peer_global_id in connection

peer_global_id is used by `ProtocolV2::_handle_auth_request()` when
encoding an `AuthDoneFrame`.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agodoc/rados/configuration: fix typos in osd-config-ref.rst 28805/head
Lan Liu [Mon, 1 Jul 2019 03:30:38 +0000 (11:30 +0800)]
doc/rados/configuration: fix typos in osd-config-ref.rst

Signed-off-by: Lan Liu <liulan@umcloud.com>
6 years agoMerge pull request #28795 from tchaikov/wip-cmake-rbd
Kefu Chai [Tue, 2 Jul 2019 02:04:07 +0000 (10:04 +0800)]
Merge pull request #28795 from tchaikov/wip-cmake-rbd

CMakeLists.txt: fix typo in error message

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Milind Changire <mchangir@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge pull request #28750 from neha-ojha/wip-40488
Kefu Chai [Tue, 2 Jul 2019 02:00:03 +0000 (10:00 +0800)]
Merge pull request #28750 from neha-ojha/wip-40488

doc/rados/operations/erasure-code.rst: allow recovery below min_size

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge PR #27073 into master
Patrick Donnelly [Mon, 1 Jul 2019 22:31:55 +0000 (15:31 -0700)]
Merge PR #27073 into master

* refs/pull/27073/head:
qa/tasks: Check MDS failover during mon_thrash
qa/tasks: Compare two FSStatuses
qa/suites/fs: renamed default.yaml to mds.yaml
qa/suites/fs: mon_thrash test for fs
qa/tasks: Fix typo in the comment

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge PR #28459 into master
Patrick Donnelly [Mon, 1 Jul 2019 22:28:30 +0000 (15:28 -0700)]
Merge PR #28459 into master

* refs/pull/28459/head:
mds: wake up lock waiters after forcibly changing lock state

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge PR #28642 into master
Patrick Donnelly [Mon, 1 Jul 2019 21:56:54 +0000 (14:56 -0700)]
Merge PR #28642 into master

* refs/pull/28642/head:
mds: check last laggy before marking unresponsive client stale
mds: remove the code that skip evicting the only client

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge pull request #28632 from linuxbox2/wip-rgwfile-advexp
Matt Benjamin [Mon, 1 Jul 2019 18:15:28 +0000 (14:15 -0400)]
Merge pull request #28632 from linuxbox2/wip-rgwfile-advexp

rgw_file: advance_mtime() should consider namespace expiration