osd: separate cleanup from PGBackend::on_change()

The generic portion of on_change() cleaned up temporary on-disk objects
and requires a Transaction.  The rest is clearing out in-memory state and
does not.  Separate the two.

Signed-off-by: Sage Weil <sage@inktank.com>
osd: clear PGBackend state on shutdown

This was leaking state on shutdown whenever there were in-flight repops
that were canceled.

Fixes: #7891
Signed-off-by: Sage Weil <sage@inktank.com>
osd: s/applying repop/canceling repop/

The 'applying' language dates back to when we would wait for acks from
replicas before applying writes locally.  We don't do any of that any more;
now, this loop just cancels the repops with remove_repop() and some other
cleanup.

Signed-off-by: Sage Weil <sage@inktank.com>
osd: cancel agent_timer events on shutdown

We need to cancel all agent timer events on shutdown.  This also needs to
happen early so that any in-progress events will execute before we start
flushing and cleaning up PGs.

Backport: firefly
Signed-off-by: Sage Weil <sage@inktank.com>
Merge pull request #2085 from ceph/wip-7891

osd: fix pg ref leaks on shutdown

Reviewed-by: Samuel Just <sam.just@inktank.com>
Revert "qa: add an fsx run which turns on kernel debugging"

This reverts commit 29c33f0c057acc4e0f4e5022c97553a2dc095b21.
We don't need the debugging any more, and having two separate fsx runners
already caused one update-in-the-wrong-place issue.

Signed-off-by: Greg Farnum <greg@inktank.com>
rgw: fix RGWObjManifestRule decoder

Only decode the new field if it is a new struct.

Fixes: #8804
Backport: firefly
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
osd/osd_types: remove useless encode_compat local var for pg_pool_t::encode

This is left over from db3fd1152a87f8f152facdf141f8367296b371df
when we made the HitSet stuff incompat, but that behavior was reverted by
dc3ce58add130ca5a0a20b097b0ac934a1b486c7, leaving this cruft behind.

Signed-off-by: Sage Weil <sage@redhat.com>
osd/osd_types: be pedantic about encoding last_force_op_resend without feature bit

The addition of the value is completely backward compatible, but if the
mon feature bits don't match it can cause monitor scrub noice (due to the
parallel OSDMap encoding).  Avoid that by only adding the new field if the
feature (which was added 2 patches after the encoding, see
3152faf79f498a723ae0fe44301ccb21b15a96ab and
45e79a17a932192995f8328ae9f6e8a2a6348d10.

Fixes: #8815
Backport: firefly
Signed-off-by: Sage Weil <sage@redhat.com>
Merge pull request #2094 from ceph/wip-8815

mon: avoid scrub noise due to divering OSDMap encoding versions

Reviewed-by: Greg Farnum <greg@inktank.com>
Merge remote-tracking branch 'gh/next'