From: Radosław Zarzyński Date: Tue, 21 Jun 2022 13:58:56 +0000 (+0200) Subject: crimson/os: ignore CEPH_OSD_OP_SETALLOCHINT in SeaStore X-Git-Tag: v18.0.0~581^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6fed488f4452ce281ba9b42cda2eff1722693fdd;p=ceph.git crimson/os: ignore CEPH_OSD_OP_SETALLOCHINT in SeaStore At the moment crimson ignores this operation at the layer of ops execution. However, this handles only those alloc hints that come from clients while `set_alloc_hint` can be called from `ReplicatedRecoveryBackend::prep_push_target()`. Likely this was the reason behind the following crash: ``` INFO 2022-06-20 11:03:38,952 [shard 0] osd - Entering state: Started/ReplicaActive/RepRecovering ERROR 2022-06-20 11:03:39,002 [shard 0] seastore - SeaStore::_do_transaction_step: bad op 39 ``` Fixes: https://tracker.ceph.com/issues/56115 Signed-off-by: Radosław Zarzyński --- diff --git a/src/crimson/os/seastore/seastore.cc b/src/crimson/os/seastore/seastore.cc index 62682d42f9ba..ddbd44e3da68 100644 --- a/src/crimson/os/seastore/seastore.cc +++ b/src/crimson/os/seastore/seastore.cc @@ -1181,6 +1181,11 @@ SeaStore::tm_ret SeaStore::_do_transaction_step( extent_len_t len = op->len; return _zero(ctx, onodes[op->oid], off, len); } + case Transaction::OP_SETALLOCHINT: + { + WARN("OP_SETALLOCHINT ignored as not-implemented-yet"); + return tm_iertr::now(); + } default: ERROR("bad op {}", static_cast(op->op)); return crimson::ct_error::input_output_error::make();