Kefu Chai [Mon, 18 Mar 2019 05:42:46 +0000 (13:42 +0800)]
messages,osd: remove MPGStats::had_map_for
MPGStats::had_map_for was added back in 7844d0e5, the last release that
still checks this field was mimic -- monitor sends OSD incremental
osdmaps if the monitor finds that the pg_stats' had_map_for is greater
than 30 and the epoch is less than that of latest osdmap.
but DaemonServer as the new consumer of MPGStats does not check
had_map_for anymore -- it simply updates the cluster state with the
pg_stats reported by OSD. and we directs OSD to mgr for sending pg_stats
since mimic. so, we can safely drop the support of had_map_for in
octopus, as it has been 2 releases.
The stress-split thrasher already had this off, but the ec variant did
not. We don't support ceph-objectstore-tool exports/imports between major
versions.
Fixes: http://tracker.ceph.com/issues/38294 Signed-off-by: Sage Weil <sage@redhat.com>
Kefu Chai [Sun, 17 Mar 2019 07:21:14 +0000 (15:21 +0800)]
osd: transpose two wait lists in comment
see PrimaryLogPG::do_request(), we check for
1. is_peered(), then
2. flushes_in_progress, then
3. is_active()
4. scrubber.is_chunky_scrub_active() && write_blocked_by_scrub(head) in
PrimaryLogPG::do_op() which is called by PrimaryLogPG::do_request().
while in PrimaryLogPG::on_change()
we requeue the waiting request in the reversed order,
so the comment is not in sync with the code. in this change,
"waiting_for_active" and "waiting_for_flush" are transposed in the
comment explaining blocked request wait lists.
also, sync the pre-conditions of "waiting_for_peered" and
"waiting_for_flush" with "PrimaryLogPG::do_request()"
Sage Weil [Fri, 15 Mar 2019 17:24:52 +0000 (12:24 -0500)]
osd/PG: fix pg merge check for rc clusters
If a cluster had a pg merge pending before last_pg_merge_meta was
introduced then the source_pgid will be pg_t(). If that's the case,
skip these new checks.
Likewise, if we decode a legacy pg_pool_t, put the old merge les/lec
values into the correct location.
Sage Weil [Fri, 15 Mar 2019 17:08:34 +0000 (12:08 -0500)]
Merge PR #26965 into nautilus
* refs/pull/26965/head:
ms/async/ProtocolV2: add ms_die_on_bug and assert rxbuf/txbuf don't get big
msg/async/ProtocolV2: do not reenable pre_auth buffering on from reset_recv_state
Matt Benjamin [Thu, 14 Mar 2019 21:25:20 +0000 (17:25 -0400)]
rgw: nfs: svc-enable RGWLib
Add minimal svc_sys_obj.h boilerplate to RGWLibRequest. Fix a
trivial illegal access from RGWPutObjProcessor's RadosWriter
when the request object is not stack allocated.
Fixes: https://tracker.ceph.com/issues/38769 Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Sage Weil [Fri, 15 Mar 2019 03:50:29 +0000 (22:50 -0500)]
msg/async/ProtocolV2: do not reenable pre_auth buffering on from reset_recv_state
This is specifically bad because we call reset_recv_state from
reuse_connection, which turns buffering back on on an already-authenticated
session.
Instead, reenable it only when we set the state to START_CONNECT. (On
the accepting side, it is a fresh connection, so it starts out true.)
Also, we want to *disable* it on the connection we are reusing, which
might be in a pre-auth state, while we are in a post-auth state.
Fixes: http://tracker.ceph.com/issues/38746 Signed-off-by: Sage Weil <sage@redhat.com>
Lenz Grimmer [Fri, 15 Mar 2019 09:38:00 +0000 (10:38 +0100)]
Merge pull request #26738 from votdev/fix_docs
mgr/dashboard: Fix issues in controllers/docs
Reviewed-by: Ernesto Puerta <epuertat@redhat.com> Reviewed-by: Patrick Nawracay <pnawracay@suse.com> Reviewed-by: Tatjana Dehler <tdehler@suse.com> Reviewed-by: Tina Kallio <tina.kallio@gmail.com>
xie xingguo [Fri, 15 Mar 2019 07:52:28 +0000 (15:52 +0800)]
mon/MonMap: fix mon priority
The mon priorities, if specified by configuration or through DNS,
might get lost in some scenarios.
Since the caller(s) of _add_ambiguous_addr should have taken good
care of the priority parameter in all cases (e.g., caller will
guarantee to pass in a sane (zeroed) value if unspecified), it should
be safe to apply priority unconditionally.
Sage Weil [Fri, 15 Mar 2019 03:37:18 +0000 (22:37 -0500)]
Merge PR #26898 into nautilus
* refs/pull/26898/head:
osd/PG: invalidate PG if merging with unexpected version
osd,mon: include more pg merge metadata in pg_pool_t
qa/standalone/osd/pg-split-merge.sh: reproduce pg merge problem with empty pgs
osd: add osd_debug_no_{acting_change,purge_strays}
Sage Weil [Thu, 14 Mar 2019 15:04:14 +0000 (10:04 -0500)]
Merge PR #26875 into nautilus
* refs/pull/26875/head:
common: implement HMACs on top of OpenSSL.
msg/async, v2: switch the pre-auth mechanism to HMAC-SHA256.
include/types: beef sha_digest_t up with encode and compare.
auth: add hmac_sha256() to CryptoKey.
msg/async, v2: introduce pre_auth exchanges with CRC32.
msg/async, v2: introduce pre_auth buffers.
msg/async, v2: rectify the encapsulation of rx_segments_{desc,data}.
msg/async, v2: rework decoding of MessageFrame.
msg/async, v2: limit the num_segments to non-empty segments.
msg/async, v2: drop the bl onwire space optimization in ControlFrames.
msg/async, v2: clean up ret handling in ProtocolV2::write().
msg/async, v2: drop next_payload_len as we don't need anymore.
msg/async, v2: drop temp_buffer and limitations driven by it.
msg/async, v2: switch to rx_buffer_t entirely.
msg/async, v2: rx continuations use buffer::ptr_node.
msg/async, v2: use bptr continuation for segment reading.
msg/async: introduce bptr-carrying continuations.
msg/async: replace CONTINUATION_PARAM() with specialized types.
msg/async, v2: ::_banner_exchange() takes CtRef instead of CtPtr.
msg/async: avoid extra pointers in continuation definitions.
msg/async, v2: dissect setting stream handlers into ::finish_auth().
msg/async, v2: drop ceph_msg_header2 handling from ControlFrames.
msg/async, v2: drop the SignedEncryptedFrame entirely.
msg/async, v2: reintroduce segment aligment. It's compile-time now.
msg/async, v2: generalize Frame about number of segments.
msg/async, v2: rework and generalize Frame encryption.
msg/async, v2: rework the class hierarchy - introduce MessageFrame.
msg/async, v2: rework the class hierarchy - introduce ControlFrame.
msg/async/ProtocolV2: remove obsolete AuthFlags
Sage Weil [Thu, 14 Mar 2019 03:07:45 +0000 (22:07 -0500)]
Merge PR #26894 into nautilus
* refs/pull/26894/head:
qa/standalone/erasure-code/test-erasure-code: adjust test to avoid m=0
erasure-code: ensure m >= 1
mon/OSDMonitor: set ec min_size to k + min(1, m - 1)
Sage Weil [Wed, 13 Mar 2019 17:46:50 +0000 (12:46 -0500)]
qa/standalone/erasure-code/test-erasure-code: adjust test to avoid m=0
_DD is k=2 m=0, which we don't allow. Switch it to cDD.
I confess I don't fully understand why this was _DD to begin with, but
I'm pretty sure mapping is there to control the order of results so that
it can be mapped to the CRUSH rule output sanely, and the coding portion
is not relevant to the test.
Patrick Donnelly [Wed, 13 Mar 2019 16:13:02 +0000 (09:13 -0700)]
qa: extend MDS heartbeat grace for valgrind
Valgrind makes the MDS slowwwww. The newish mds_heartbeat_grace config allows
us to keep sending beacons to the mons even if the internal heartbeat is slow.
This avoids the laggy messages which are useful to grep for unrelated messaging
issues.
Fixes: http://tracker.ceph.com/issues/38723 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>