]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os: ignore CEPH_OSD_OP_SETALLOCHINT in SeaStore
authorRadosław Zarzyński <rzarzyns@redhat.com>
Tue, 21 Jun 2022 13:58:56 +0000 (15:58 +0200)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 1 Jul 2022 07:56:18 +0000 (07:56 +0000)
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 <rzarzyns@redhat.com>
src/crimson/os/seastore/seastore.cc

index 62682d42f9baf23bde4f02ca4868e169c411e9ae..ddbd44e3da68de6e775bfe4056095005263ce9b6 100644 (file)
@@ -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<unsigned>(op->op));
         return crimson::ct_error::input_output_error::make();