Commit Graph

120233 Commits

Author SHA1 Message Date
Sebastian Wagner
a171b32a21
Merge pull request #39612 from jmolmo/fix_rook_orch_ls
mgr/orchestrator: Fix ceph orch ls in Rook

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
Reviewed-by: Varsha Rao <varao@redhat.com>
2021-03-02 14:47:25 +01:00
Kefu Chai
504aaaa9e5
Merge pull request #39784 from rzarzynski/wip-crimson-monc-close-active-conn-on-reset
crimson/monc: close() active_con before destructing it on resets.

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-03-02 20:48:35 +08:00
Kefu Chai
11cd800fe6
Merge pull request #39783 from tchaikov/wip-crimson-clang
crimson/os: fix clang build and cleanups.

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-02 20:45:24 +08:00
Radoslaw Zarzynski
1dc78fd5b2 crimson/monc: close() active_con before destructing it on resets.
`ProtocolV2` expects `AuthClient` implementations to withstand
calling `get_auth_request()` and `handle_auth_reply_more()` even
if `handle_auth_done()` had been already called. This is because
a network fault may happen on e.g. `AuthSignatureFrame` which is
put on the wire after the `AuthDone` handling.

`crimson::mon::Client` deals with that by returning `auth::error`
from both `get_auth_request()` and `handle_auth_reply_more()` as
the preceding invocation of `handle_auth_done()` had already
cleared `pending_conns` (and set `active_con`). This leads to
`abort_in_close()` and finally to dispatching `ms_handle_reset()`
on `mon::Client` which is fine in general but, when comes to the
current implementation, it destroys `active_con` without closing
it first.
One of the consequence is breaking the `mon::Connection::reply`
promise; another one is missed `mark_down()` call.

```
DEBUG 2021-03-01 18:10:50,489 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@56752 >> mon.? v2:172.21.15.110:3300/0] GOT AuthDoneFrame: gid=4121, con_mode=se
cure, payload_len=995
DEBUG 2021-03-01 18:10:50,489 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@56752 >> mon.? v2:172.21.15.110:3300/0] WRITE AuthSignatureFrame: signature=60ca
f49e5a6cf3cc39c4160cb9d09032db5f794e29655dc0124cf5f42b7546fb
DEBUG 2021-03-01 18:10:50,489 [shard 0] ms - authenticated_encrypt_update plaintext.length()=80 buffer.length()=80
DEBUG 2021-03-01 18:10:50,489 [shard 0] ms - authenticated_encrypt_final buffer.length()=96 final_len=0
INFO  2021-03-01 18:10:50,489 [shard 0] monc - found mon.noname-a
INFO  2021-03-01 18:10:50,489 [shard 0] monc - sending auth(proto 2 2 bytes epoch 0) v1
INFO  2021-03-01 18:10:50,489 [shard 0] monc - waiting
DEBUG 2021-03-01 18:10:50,489 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@56752 >> mon.? v2:172.21.15.110:3300/0] GOT AuthSignatureFrame: signature=ea04f1
318cf76808414a853ed37fd232ae886bef036cb4248079c6cba89d669a
DEBUG 2021-03-01 18:10:50,490 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@56752 >> mon.? v2:172.21.15.110:3300/0] WRITE ClientIdentFrame: addrs=v2:172.21.
15.110:6800/33954, target=v2:172.21.15.110:3300/0, gid=0, gs=1, features_supported=4540138303579357183, features_required=576460752303432193, flags=1, cookie=9231904580
14536120
...
INFO  2021-03-01 18:10:50,490 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@56752 >> mon.? v2:172.21.15.110:3300/0] execute_connecting(): fault at CONNECTIN
G, going to WAIT -- std::system_error (error crimson::net:4, read eof)
...
DEBUG 2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@0 >> mon.? v2:172.21.15.110:3300/0] GOT HelloFrame: my_type=mon peer_addr=v2:172.21.15.110:63960/0
INFO  2021-03-01 18:10:50,690 [shard 0] monc - get_auth_request(con=[osd.0(client) v2:172.21.15.110:6800/33954@63960 >> mon.? v2:172.21.15.110:3300/0], auth_method=0)
ERROR 2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@63960 >> mon.? v2:172.21.15.110:3300/0] get_initial_auth_request returned crimson::auth::error (unknown connection)
INFO  2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@63960 >> mon.? v2:172.21.15.110:3300/0] closing: reset yes, replace no
DEBUG 2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@63960 >> mon.? v2:172.21.15.110:3300/0] TRIGGER CLOSING, was CONNECTING
...
INFO  2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@63960 >> mon.? v2:172.21.15.110:3300/0] write_event: dropped
INFO  2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@63960 >> mon.? v2:172.21.15.110:3300/0] execute_connecting(): protocol aborted at CLOSING -- std::system_error (error crimson::net:6, protocol aborted)
INFO  2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@63960 >> mon.? v2:172.21.15.110:3300/0] closing: reset yes, replace no
DEBUG 2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@63960 >> mon.? v2:172.21.15.110:3300/0] TRIGGER CLOSING, was CONNECTING
WARN  2021-03-01 18:10:50,690 [shard 0] osd - ms_handle_reset
WARN  2021-03-01 18:10:50,690 [shard 0] monc - active conn reset v2:172.21.15.110:3300/0
INFO  2021-03-01 18:10:50,690 [shard 0] monc - reopen_session to mon.-1
WARN  2021-03-01 18:10:50,690 [shard 0] monc - mon.0 does not have an addr compatible with me
INFO  2021-03-01 18:10:50,690 [shard 0] monc - connecting to mon.1
INFO  2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954 >> mon.? v2:172.21.15.110:3300/0] ProtocolV2::start_connect(): peer_addr=v2:172.21.15.110:3300/0, peer_name=mon.?, cc=14512795460730278364 policy(lossy=true, server=false, standby=false, resetcheck=false)
DEBUG 2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954 >> mon.? v2:172.21.15.110:3300/0] TRIGGER CONNECTING, was NONE
DEBUG 2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954 >> mon.? v2:172.21.15.110:3300/0] UPDATE: gs=3 for connect
INFO  2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954 >> mon.? v2:172.21.15.110:3300/0] write_event: delay ...
INFO  2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@63960 >> mon.? v2:172.21.15.110:3300/0] write_event: dropped
INFO  2021-03-01 18:10:50,690 [shard 0] ms - [osd.0(client) v2:172.21.15.110:6800/33954@63960 >> mon.? v2:172.21.15.110:3300/0] execute_connecting(): protocol aborted at CLOSING -- std::system_error (error crimson::net:6, protocol aborted)
...
"
WARN  2021-03-01 18:10:50,690 [shard 0] seastar - Exceptional future ignored: seastar::broken_promise (broken promise), backtrace:    0x146f364
   0x146f6e1
   0x146fb01
   0x135c2fe
   0x135c481
   0x6ee079
   0x137db87
   0x137def2
   0x13ab085
   0x1347b27
   0x6619f5
   /lib64/libc.so.6+0x237b2
   0x6b217d
   --------
   N7seastar12continuationINS_8internal22promise_base_with_typeIvEENS_6futureIvE12finally_bodyIZNS_5asyncIZZ4mainENKUlvE_clEvEUlvE_JEEENS_8futurizeINSt9result_ofIFNSt5decayIT_E4typeEDpNSC_IT0_E4typeEEE4typeEE4typeENS_17thread_attributesEOSD_DpOSG_EUlvE1_Lb0EEEZNS5_17then_wrapped_nrvoIS5_SU_EENSA_ISD_E4typeEOT0_EUlOS3_RSU_ONS_12future_stateINS1_9monostateEEEE_vEE

```

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-02 12:36:28 +00:00
Kefu Chai
957653d1b2
Merge pull request #39779 from tchaikov/wip-crimson-monc-cleanup
crimson/mon: resend mon command when connected and cleanups

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Xuehan Xu <xxhdx1985126@gmail.com>
2021-03-02 20:32:25 +08:00
Kefu Chai
195c5bb962 crimson/os: return an errorator::future in an erroratorized chain
errorator does not convert a "void" continuation to a ready future at
the time of writing.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:55:50 +08:00
Kefu Chai
c951ec3eb2 crimson/os: capture structured binding labels with new variable
structured binding does not define variables. unlike GCC, Clang does
not allow this.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:54:14 +08:00
Kefu Chai
cec783344e crimson/os: mark unused variable with [[maybe_unused]]
`MAX_FLAT_BLOCK_SIZE` is only used in Debug builds.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:54:14 +08:00
Kefu Chai
50f29bf2b7 crimson/os: do not capture unused variables
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:54:13 +08:00
Kefu Chai
db9b319aab crimson/mon: do not use futurize_invoke
flatten the call in seastar::futurize_invoke().

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:13:22 +08:00
Sebastian Wagner
8287a34aea
Merge pull request #39744 from zdover23/wip-doc-cephadm-install-install-cephadm-rewrite-2021-Feb-28
doc/cephadm: rewrite "install cephadm"

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
2021-03-02 12:05:30 +01:00
Kefu Chai
6b6537d5b1 crimson/mon: let reopen_session() return future<bool>
this change is for improve the readability. to emphasis that the
next steps are performed only if a connection to monitor is
established.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:04:28 +08:00
Kefu Chai
3edaaab493 crimson/mon: use a vector for mon_commands
for smaller memory foot print. as we don't have lots of mon_command in
flight, hence not likely to benefit from a O(log(n)) lookup.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:04:28 +08:00
Kefu Chai
44e45cfc76 crimson/mon: resend mon command when session established
this behavior matches that of `MonClient::_resend_mon_commands()`. so
far the only user which sends mon command in crimson is
`OSD::_add_me_to_crush()`, but there is still (rare) chance that the connected
monitor cannot be reached when we send the command to it, in that case,
we should retry when the connection is re-established.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:04:28 +08:00
Kefu Chai
d30e4c2318 crimson/mon: pass a string to Client::run_command()
as the reason why MMonCommand uses a vector is but for legacy reasons,
there is no need to expose this via the interface.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:04:28 +08:00
Kefu Chai
3a9fd7d711 crimson/mon: move keyring and sub renewals into on_session_opened()
both of them fall into the category of jobs which we should do after
the connection to monitor is established.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:04:28 +08:00
Kefu Chai
e971624d77 crimson/mon: let on_session_opened() return a future
so we can expand its responsibility to perform some async calls.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:04:28 +08:00
Kefu Chai
94a8772afe crimson/mon: s/send_pendings/on_session_opened/
will use this method also for sending requests which are not acked

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:04:28 +08:00
Kefu Chai
aea159c626 crimson/mon: pending_messages should not be empty if active_conn
we always send all pending_messages, and clear it when establishing a
connection to mon, so there is no need to check for it when calling
`send_message()`.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:04:28 +08:00
Kefu Chai
83d2e322a3 crimson/mon: check for active_con before calling send_pendings()
before this change, we guard the `send_pendings()` call only in
`Client::send_message()`, after this change, all of the
`send_pendings()` calls are guarded with this check.

more consistent this way.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-02 19:04:28 +08:00
Sebastian Wagner
90f908a84d
Merge pull request #39760 from zdover23/wip-doc-cephadm-install-bootstrap-rewrite-2021-Mar-01
doc/cephadm: rewrite "b.strap a new cluster"

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
2021-03-02 11:46:08 +01:00
Kefu Chai
5a50d986f4
Merge pull request #39685 from tchaikov/wip-mgr-dashboard-requests
pybind/mgr/dashboard: bump up requests to 2.25.1

Reviewed-by: Laura Paduano <lpaduano@suse.com>
2021-03-02 18:31:39 +08:00
Kefu Chai
4d0273d7fc
Merge pull request #39673 from rzarzynski/wip-crimson-drop-protocol-v1
crimson: drop the support of ProtocolV1

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-03-02 12:44:31 +08:00
Kefu Chai
005b836f2d
Merge pull request #39768 from rzarzynski/wip-crimson-monc-renew-subs
crimson/monc: renew subscriptions when reopening a session.

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-03-02 11:25:26 +08:00
Josh Durgin
6ce7048a3f
Merge pull request #39718 from zdover23/wip-doc-dev-t8y-label-in-toc-2021-Feb-26
doc/dev: add t8y label to index.rst

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2021-03-01 16:26:46 -08:00
Brad Hubbard
08af21c9c0
Merge pull request #39601 from badone/wip-ceph_test_rados_api_watch_notify-enoent-failure
tests: ceph_test_rados_api_watch_notify: Allow for reconnect

Reviewed-by: Neha Ojha <nojha@redhat.com>
2021-03-02 08:10:10 +10:00
Radoslaw Zarzynski
2eaa5ac501 crimson/monc: renew subscriptions when reopening a session.
Lack of this feature was the root cause of an issue in
teuthology testing in which a socket failure injection
happened exactly during `mon_subscribe`; after the OSD
reconnected, the message hasn't been resent and entire
boot process has frozen.

```
DEBUG 2021-02-25 11:42:53,757 [shard 0] ms - [osd.2(client) v2:172.21.15.204:6804/33459@57376 >> mon.0 v2:172.21.15.204:3300/0] --> #6 === mon_subscribe({osdmap=1}) v3
(15)
DEBUG 2021-02-25 11:42:53,757 [shard 0] ms - authenticated_encrypt_update plaintext.length()=80 buffer.length()=80
DEBUG 2021-02-25 11:42:53,757 [shard 0] ms - authenticated_encrypt_final buffer.length()=96 final_len=0
DEBUG 2021-02-25 11:42:53,757 [shard 0] ms - authenticated_encrypt_update plaintext.length()=48 buffer.length()=48
DEBUG 2021-02-25 11:42:53,757 [shard 0] ms - authenticated_encrypt_update plaintext.length()=16 buffer.length()=64
DEBUG 2021-02-25 11:42:53,757 [shard 0] ms - authenticated_encrypt_final buffer.length()=80 final_len=0
INFO  2021-02-25 11:42:53,758 [shard 0] ms - [osd.2(client) v2:172.21.15.204:6804/33459@57376 >> mon.0 v2:172.21.15.204:3300/0] execute_ready(): fault at READY on lossy
 channel, going to CLOSING -- std::system_error (error crimson::net:4, read eof)
```

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-01 21:29:43 +00:00
Patrick Donnelly
c991e28a92
Merge PR #39680 into master
* refs/pull/39680/head:
	mds: allow `fs authorize` command to work

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Rishabh Dave <ridave@redhat.com>
2021-03-01 12:07:32 -08:00
Patrick Donnelly
4a6b11ac49
Merge PR #39710 into master
* refs/pull/39710/head:
	qa: run fs:verify on all distros

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Yuri Weinstein <yweins@redhat.com>
Reviewed-by: Rishabh Dave <ridave@redhat.com>
2021-03-01 12:05:47 -08:00
Patrick Donnelly
944e2e8c5e
Merge PR #39725 into master
* refs/pull/39725/head:
	qa: delete all fs during tearDown

Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Rishabh Dave <ridave@redhat.com>
2021-03-01 11:35:58 -08:00
Zac Dover
1b626b9895 doc/cephadm: rewrite "install cephadm"
This PR breaks the "Deploying a New Ceph Cluster"
section into several sub-sections, so that each sub-section
pertains to only one subject. I've also added some explanatory
text that puts the instructions into context more than they were
before.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
2021-03-02 05:06:00 +10:00
Jason Dillaman
03cf50fe82
Merge pull request #39732 from mychoxin/resolve_compile_error
test/librbd: resolve compile error on centos

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2021-03-01 13:25:25 -05:00
Jason Dillaman
2bda8970e1
Merge pull request #39731 from mychoxin/use_unified_zero_func
rbd: use portable zero-ing memory function

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2021-03-01 13:24:46 -05:00
Zac Dover
2ec313caba doc/cephadm: rewrite "b.strap a new cluster"
This PR rewrites the section "Bootstrap A New
Cluster" in the Cephadm Guide, in the Install
Chapter. I've broken this section up into what
seem to me to be the topics that the content
naturally divides into.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
2021-03-02 04:20:35 +10:00
Radoslaw Zarzynski
3573c5d50e crimson/monc: drop misleading comment about Connection::reply.
Before the commit the `crimson::mon:Connection::reply`
was commented as being specific to the ProtocolV1.
However, the code suggests this member participates also
in V2-related paths like `Connection::renew_tickets()`
where `do_auth()` is called from. `do_auth()` generates
`MAuth` which causes a monitor to send `MAuthReply`.
The `Connection::reply` synchronizes sending the auth
request with response handling.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-01 15:14:25 +00:00
Radoslaw Zarzynski
3857bab837 mon: drop the unnecessary inclusion of MAuthReply.h.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-01 15:14:25 +00:00
Radoslaw Zarzynski
2f35f7e8f6 auth: drop unnecessary forward declaration from AuthClientHandler.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-01 15:14:25 +00:00
Radoslaw Zarzynski
4807e2a639 crimson/monc: fix debugs in Connection::do_auth_single().
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-01 15:14:25 +00:00
Radoslaw Zarzynski
b682a0c2d8 crimson/monc: drop the support for ProtocolV1.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-01 15:14:25 +00:00
Radoslaw Zarzynski
7f46b984be crimson/net: drop the implementation of ProtocolV1.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-01 15:14:25 +00:00
Radoslaw Zarzynski
b312794686 crimson/tests: drop the v1 support in unittest-seastar-messenger.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-01 15:14:25 +00:00
Radoslaw Zarzynski
7a7e869c0a crimson: do not use ProtocolV1 anymore.
At the moment crimson offers only a partial and buggy
support for ProtocolV1. When it enters the production,
V1 will be long obsolete, so spending time on improving
it doesn't seem to be a sound investment while offering
half-baked feature can be worse that lacking it entirely.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-03-01 15:14:25 +00:00
Casey Bodley
853e60f77e
Merge pull request #39521 from yuvalif/wip-yuval-fix-49322
rgw/notification: add exception handling for persistent notification thread

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2021-03-01 10:05:48 -05:00
YuanXin
49a63a5940 test/librbd: resolve compile error on centos
Signed-off-by: YuanXin <yuanxin@didiglobal.com>
2021-03-01 22:50:02 +08:00
Kefu Chai
34dee80251
Merge pull request #39743 from tchaikov/wip-crimson-cleanup
crimson/osd: capturing this in a better way

Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
Reviewed-by: Xuehan Xu <xxhdx1985126@gmail.com>
2021-03-01 16:39:41 +08:00
Kefu Chai
f0635e34b9
Merge pull request #39652 from athanatos/sjust/wip-crimson-omap
crimson: btree omap_manager rework with other misc fixes

Reviewed-by: Chunmei Liu <chunmei.liu@intel.com>
Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-03-01 15:48:40 +08:00
Sage Weil
f11ccd2d60 Merge PR #39631 into master
* refs/pull/39631/head:
	osd/OSDMap: don't warn on NEW osd ids
	mon/OSDMonitor: behave if inc map sets weight on not-yet-existing OSD
	mon/OSDMonitor: do not mark newly created OSDs OUT

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2021-02-28 19:00:29 -05:00
Sage Weil
aa5bd55b2d Merge PR #39696 into master
* refs/pull/39696/head:
	qa/suites/rados/monthrash: crank up client side debugging w/ mon thrashing

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-02-28 19:00:16 -05:00
Sage Weil
7aba1840fb osd/OSDMap: don't warn on NEW osd ids
If we allocate a new OSD, don't raise a health alert about it.

Signed-off-by: Sage Weil <sage@newdream.net>
2021-02-28 11:29:53 -05:00
Kefu Chai
17fc145f90 crimson/osd: keep ClientRequest alive during seastar::repeat()
before this change, `this` is wrapped by a smart pointer which is
in turn captured by multiple continuations. the continuation with the
longest life cycle is the one passed to `seastar::repeat()`. where
the underlying `repeater` captures the continuation as its member variable.
and `repeater` is not destroyed before `seastar::repeat()` returns.

so, we only need to capture `opref` in the continuation passed to
`seastar::repeat()`.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-28 14:06:05 +08:00