From 6fed488f4452ce281ba9b42cda2eff1722693fdd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rados=C5=82aw=20Zarzy=C5=84ski?= Date: Tue, 21 Jun 2022 15:58:56 +0200 Subject: [PATCH] crimson/os: ignore CEPH_OSD_OP_SETALLOCHINT in SeaStore MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/crimson/os/seastore/seastore.cc | 5 +++++ 1 file changed, 5 insertions(+) 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(); -- 2.47.3