]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
13 days agofixup for to_error@Clang wip-crimson-ec-with-recovery wip-rzarzynski-crimson-testing
Radoslaw Zarzynski [Wed, 11 Feb 2026 18:25:34 +0000 (18:25 +0000)]
fixup for to_error@Clang

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimon/osd: drop present_shards from PGLog handler's partial_write()
Radoslaw Zarzynski [Tue, 27 Jan 2026 00:27:13 +0000 (00:27 +0000)]
crimon/osd: drop present_shards from PGLog handler's partial_write()

In correspondence with classical's 880a17e39626d99a0b6cc8259523daa83c72802c.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: handle retieval of RADOS xattrs from attr_cache regardless of PG backend
Radoslaw Zarzynski [Mon, 1 Dec 2025 14:41:24 +0000 (14:41 +0000)]
crimson/osd: handle retieval of RADOS xattrs from attr_cache regardless of PG backend

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: improve debugs in ECTransaction::Generate::Generate()
Radoslaw Zarzynski [Mon, 1 Dec 2025 14:39:08 +0000 (14:39 +0000)]
crimson/osd: improve debugs in ECTransaction::Generate::Generate()

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimon/osd: implement PG::PGLogEntryHandler::partial_write() for FastEC
Radoslaw Zarzynski [Mon, 1 Dec 2025 14:35:48 +0000 (14:35 +0000)]
crimon/osd: implement PG::PGLogEntryHandler::partial_write() for FastEC

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: port changes from classial FastEC
Radoslaw Zarzynski [Fri, 28 Nov 2025 12:55:10 +0000 (12:55 +0000)]
crimson/osd: port changes from classial FastEC

This commit ports changes from c116b8615d68a3926dc78a4965cc0a28ff85d4f2.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: replicated backend also uses attr_cache for xattrs handling
Radoslaw Zarzynski [Fri, 28 Nov 2025 12:49:07 +0000 (12:49 +0000)]
crimson/osd: replicated backend also uses attr_cache for xattrs handling

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agotests: LibRadosIoEC allows for overwrites / unalligned writes on crimson
Radoslaw Zarzynski [Thu, 27 Nov 2025 15:57:40 +0000 (15:57 +0000)]
tests: LibRadosIoEC allows for overwrites / unalligned writes on crimson

1. crimson-osd does support solely the FastEC flavor of EC pools;
   SlowEC isn't now and won't be implemented.
2. FastEC imposes the EC overwrites support.
3. When run against crimson's EC implementation, the tests shall
   not enforce e.g. ENOTSUPP on overwrite.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd, test: turn the EC tests on for crimson
Radoslaw Zarzynski [Thu, 27 Nov 2025 15:41:07 +0000 (15:41 +0000)]
fixup: crimson/osd, test: turn the EC tests on for crimson

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: implement handling of RADOS' extended attirbutes in FastEC
Radoslaw Zarzynski [Thu, 27 Nov 2025 15:28:58 +0000 (15:28 +0000)]
crimson/osd: implement handling of RADOS' extended attirbutes in FastEC

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: drop unused variable from PGBackend::getxattr()
Radoslaw Zarzynski [Wed, 19 Nov 2025 13:26:50 +0000 (13:26 +0000)]
crimson/osd: drop unused variable from PGBackend::getxattr()

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: drop unneccessary variant of PGBackend::getxattr()
Radoslaw Zarzynski [Tue, 18 Nov 2025 15:15:34 +0000 (15:15 +0000)]
crimson/osd: drop unneccessary variant of PGBackend::getxattr()

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: don't decode EC only attrs are needed
Radoslaw Zarzynski [Fri, 17 Oct 2025 14:39:49 +0000 (14:39 +0000)]
crimson/osd: don't decode EC only attrs are needed

This a crimson coutnerpart of 417fb71c9b5628726d3217909ba1b6d3e7bf251a.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agormw_pipeline in RMWPipeline::Op
Radoslaw Zarzynski [Wed, 3 Sep 2025 12:06:56 +0000 (12:06 +0000)]
rmw_pipeline in RMWPipeline::Op

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: settle ECRecoveryBackend -- local MOSDPGPush
Radoslaw Zarzynski [Wed, 16 Jul 2025 12:24:26 +0000 (12:24 +0000)]
fixup: crimson/osd: settle ECRecoveryBackend -- local MOSDPGPush

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: settle RMWPipeline and RMWPipeline within ECBackend
Radoslaw Zarzynski [Wed, 16 Jul 2025 12:17:54 +0000 (12:17 +0000)]
fixup: crimson/osd: settle RMWPipeline and RMWPipeline within ECBackend

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: wire MOSDECSubOpWriteReply up with ECBackend
Radoslaw Zarzynski [Wed, 16 Jul 2025 12:16:16 +0000 (12:16 +0000)]
fixup: crimson/osd: wire MOSDECSubOpWriteReply up with ECBackend

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: route EC messages over PG
Radoslaw Zarzynski [Wed, 16 Jul 2025 12:15:43 +0000 (12:15 +0000)]
fixup: crimson/osd: route EC messages over PG

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: fix unused variable warnings pg.cc and seastore
Radoslaw Zarzynski [Wed, 16 Jul 2025 12:04:00 +0000 (12:04 +0000)]
crimson/osd: fix unused variable warnings pg.cc and seastore

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agoECCommon: fixups for crimson's FastEC support
Radoslaw Zarzynski [Wed, 16 Jul 2025 12:02:13 +0000 (12:02 +0000)]
ECCommon: fixups for crimson's FastEC support

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: bring ECRecoveryBackend, phase 0.1
Radoslaw Zarzynski [Wed, 16 Jul 2025 11:57:12 +0000 (11:57 +0000)]
fixup: crimson/osd: bring ECRecoveryBackend, phase 0.1

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: translate for os::Transaction into ECTransaction
Radoslaw Zarzynski [Wed, 16 Jul 2025 11:48:36 +0000 (11:48 +0000)]
fixup: crimson/osd: translate for os::Transaction into ECTransaction

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: switch return type of PG::get_dpp to unify with ECListener
Radoslaw Zarzynski [Wed, 16 Jul 2025 08:56:25 +0000 (08:56 +0000)]
fixup: crimson/osd: switch return type of PG::get_dpp to unify with ECListener

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: switch return type of PG::get_dpp to unify with ECListener
Radoslaw Zarzynski [Wed, 21 May 2025 14:42:20 +0000 (14:42 +0000)]
crimson/osd: switch return type of PG::get_dpp to unify with ECListener

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: settle ECExtentCache within ShardService
Radoslaw Zarzynski [Wed, 21 May 2025 14:38:40 +0000 (14:38 +0000)]
crimson/osd: settle ECExtentCache within ShardService

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: PGBackend::_read() takes object_size for the sake of FastEC
Radoslaw Zarzynski [Wed, 21 May 2025 14:31:36 +0000 (14:31 +0000)]
crimson/osd: PGBackend::_read() takes object_size for the sake of FastEC

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: fixup: crimson/osd: add support for MOSDECSubOpRead
Radoslaw Zarzynski [Wed, 21 May 2025 14:01:32 +0000 (14:01 +0000)]
fixup: fixup: crimson/osd: add support for MOSDECSubOpRead

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: wire MOSDECSubOpWriteReply up with ECBackend
Radoslaw Zarzynski [Wed, 21 May 2025 13:44:06 +0000 (13:44 +0000)]
fixup: crimson/osd: wire MOSDECSubOpWriteReply up with ECBackend

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: implement ECBackend::handle_rep_read_reply()
Radoslaw Zarzynski [Wed, 21 May 2025 13:40:38 +0000 (13:40 +0000)]
fixup: crimson/osd: implement ECBackend::handle_rep_read_reply()

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: translate for os::Transaction into ECTransaction
Radoslaw Zarzynski [Wed, 21 May 2025 13:35:34 +0000 (13:35 +0000)]
fixup: crimson/osd: translate for os::Transaction into ECTransaction

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: implement ECBackend::objects_read_and_reconstruc
Radoslaw Zarzynski [Mon, 19 May 2025 17:43:39 +0000 (17:43 +0000)]
fixup: crimson/osd: implement ECBackend::objects_read_and_reconstruc

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: settle RMWPipeline and RMWPipeline within ECBacken
Radoslaw Zarzynski [Wed, 21 May 2025 16:05:13 +0000 (16:05 +0000)]
fixup: crimson/osd: settle RMWPipeline and RMWPipeline within ECBacken

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: settle RMWPipeline and RMWPipeline within ECBackend
Radoslaw Zarzynski [Wed, 21 May 2025 14:02:34 +0000 (14:02 +0000)]
fixup: crimson/osd: settle RMWPipeline and RMWPipeline within ECBackend

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: settle RMWPipeline and RMWPipeline within ECBackend
Radoslaw Zarzynski [Mon, 19 May 2025 17:43:02 +0000 (17:43 +0000)]
crimson/osd: settle RMWPipeline and RMWPipeline within ECBackend

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: tackle the get_write_plan() problem of ECBackend
Radoslaw Zarzynski [Sun, 11 May 2025 11:29:18 +0000 (11:29 +0000)]
crimson/osd: tackle the get_write_plan() problem of ECBackend

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: settle ECRecoveryBackend -- misc small bits of ECListener
Radoslaw Zarzynski [Wed, 23 Apr 2025 09:57:07 +0000 (09:57 +0000)]
fixup: crimson/osd: settle ECRecoveryBackend -- misc small bits of ECListener

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: bring ECRecoveryBackend, phase 0.1
Radoslaw Zarzynski [Wed, 12 Feb 2025 00:14:36 +0000 (00:14 +0000)]
fixup: crimson/osd: bring ECRecoveryBackend, phase 0.1

Per ecda6780c93db66865533a27dab5b0beb052f5fa.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd, test: turn the EC tests on for crimson
Radoslaw Zarzynski [Mon, 20 Jan 2025 19:31:27 +0000 (19:31 +0000)]
crimson/osd, test: turn the EC tests on for crimson

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agoRevert "crimson/.../object_context: drop recovery_read_marker"
Radoslaw Zarzynski [Mon, 16 Dec 2024 17:24:03 +0000 (17:24 +0000)]
Revert "crimson/.../object_context: drop recovery_read_marker"

This reverts commit c1b7435d6c3a598ee13dd57ba8b83014c4cca893.

EC support needs `wait_for_recovery()`.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agoosd: ECCommon respects crimson non-null obc for new objects
Radoslaw Zarzynski [Thu, 9 May 2024 21:51:11 +0000 (21:51 +0000)]
osd: ECCommon respects crimson non-null obc for new objects

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: bring get_temp_recovery_object() to PGRecovery for EC
Radoslaw Zarzynski [Thu, 9 May 2024 18:22:13 +0000 (18:22 +0000)]
crimson/osd: bring get_temp_recovery_object() to PGRecovery for EC

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: settle ECRecoveryBackend -- misc small bits of ECListener
Radoslaw Zarzynski [Thu, 9 May 2024 18:21:10 +0000 (18:21 +0000)]
crimson/osd: settle ECRecoveryBackend -- misc small bits of ECListener

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: settle ECRecoveryBackend -- local MOSDPGPush
Radoslaw Zarzynski [Thu, 9 May 2024 17:37:51 +0000 (17:37 +0000)]
crimson/osd: settle ECRecoveryBackend -- local MOSDPGPush

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: settle ECRecoveryBackend -- bring maybe_load_obc()
Radoslaw Zarzynski [Thu, 9 May 2024 18:12:55 +0000 (18:12 +0000)]
crimson/osd: settle ECRecoveryBackend -- bring maybe_load_obc()

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: make objctx loading agnostic about source of attrs
Radoslaw Zarzynski [Mon, 19 Jan 2026 22:29:07 +0000 (22:29 +0000)]
crimson/osd: make objctx loading agnostic about source of attrs

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/errorator: helpers for tl::expected
Radoslaw Zarzynski [Mon, 19 Jan 2026 22:27:19 +0000 (22:27 +0000)]
crimson/errorator: helpers for tl::expected

`ErrorHelper` is supposed to facilitate transformation of `std::error_code`
(and similar) into an immediately failed errorated `future` with extra error
checking.

The main idea is to let something like:

```cpp
my_ertr_t::future<my_value_t> foo() {
  // ...
  // `maybe_decoded` here is an instance of `tl::expected` carrying `std::error_code`
  // in its error part
  if (!maybe_decoded) {
    // `std::error_code` can convey errors `my_ertr_t` does not allow – in that case,
    // it would be helpful to get at least a run-time assert.
    return ErrorHelper<my_ertr_t>::from_error<my_value_t>(maybe_decoded.error());
  }
  // ...
}
```

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit a7ffc18eb40b9145fca5f064c4b3d097bffeb8d0)

4 weeks agocrimson/*: rename errorator-loop.h into errorator-utils.h
Radoslaw Zarzynski [Tue, 20 Jan 2026 15:23:22 +0000 (15:23 +0000)]
crimson/*: rename errorator-loop.h into errorator-utils.h

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit 682e4ff4322a895a0bdb6c9cc0d00a516499baad)

4 weeks agocrimson/osd: delegate md loading outside of ObjectContextLoader::load_obc()
Radoslaw Zarzynski [Thu, 9 May 2024 10:25:08 +0000 (10:25 +0000)]
crimson/osd: delegate md loading outside of ObjectContextLoader::load_obc()

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: dissect metadata decoding from PGBackend::load_metadata()
Radoslaw Zarzynski [Thu, 9 May 2024 10:20:33 +0000 (10:20 +0000)]
crimson/osd: dissect metadata decoding from PGBackend::load_metadata()

This loosens the coupling between loading and decoding making
the latter reusable with metadata coming from other source than
local object store.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: make OSD::osd_stat compliant with multi-core
Radoslaw Zarzynski [Thu, 9 May 2024 09:44:56 +0000 (09:44 +0000)]
crimson/osd: make OSD::osd_stat compliant with multi-core

The EC recovery backend needs `inc_osd_stat_repaired()`.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: add support for reads over EC pool
Radoslaw Zarzynski [Thu, 2 May 2024 13:29:52 +0000 (13:29 +0000)]
crimson/osd: add support for reads over EC pool

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: fix compiler warnings on copy elision being prevented
Radoslaw Zarzynski [Wed, 1 May 2024 17:04:12 +0000 (17:04 +0000)]
crimson/osd: fix compiler warnings on copy elision being prevented

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: on the cloning path bump obj version closer to its usage
Radoslaw Zarzynski [Tue, 23 Apr 2024 13:54:23 +0000 (13:54 +0000)]
crimson/osd: on the cloning path bump obj version closer to its usage

My understanding at the time of writing is this change is a pure
refactoring.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: fix std::moving in ShardServices
Radoslaw Zarzynski [Wed, 3 Apr 2024 14:37:20 +0000 (14:37 +0000)]
crimson/osd: fix std::moving in ShardServices

```
/home/rzarzynski/ceph2/src/crimson/osd/shard_services.cc:595:9:   required from here
/home/rzarzynski/ceph2/src/crimson/osd/shard_services.cc:596:10: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  596 |     auto [pool, name, ec_profile] = std::move(std::get<0>(ret).get0());
      |          ^~~~~~~~~~~~~~~~~~~~~~~~
/home/rzarzynski/ceph2/src/crimson/osd/shard_services.cc:596:10: note: remove ‘std::move’ call
/home/rzarzynski/ceph2/src/crimson/osd/shard_services.cc:597:10: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  597 |     auto coll = std::move(std::get<1>(ret).get0());
      |          ^~~~
/home/rzarzynski/ceph2/src/crimson/osd/shard_services.cc:597:10: note: remove ‘std::move’ call
```

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: implement ECRecoveryBackend::commit_txn_send_replies()
Radoslaw Zarzynski [Tue, 26 Mar 2024 14:25:18 +0000 (14:25 +0000)]
crimson/osd: implement ECRecoveryBackend::commit_txn_send_replies()

This bypasses the crimson-msgr for local ops.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: implement ECRecoveryBackend::recover_object()
Radoslaw Zarzynski [Tue, 26 Mar 2024 14:24:59 +0000 (14:24 +0000)]
crimson/osd: implement ECRecoveryBackend::recover_object()

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: wire up MOSDPGPush and MOSDPGPushReply in ECRecoveryBackend
Radoslaw Zarzynski [Tue, 26 Mar 2024 12:18:04 +0000 (12:18 +0000)]
crimson/osd: wire up MOSDPGPush and MOSDPGPushReply in ECRecoveryBackend

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: ECReplicatedBackend embraces ECCommon::RecoveryBackend
Radoslaw Zarzynski [Tue, 26 Mar 2024 11:47:38 +0000 (11:47 +0000)]
crimson/osd: ECReplicatedBackend embraces ECCommon::RecoveryBackend

The idea is to compose the latter into the former (thus the private
inheritance) to easily build a class that fulfills the crimon iface
called `crimson::ReplicatedBackend`.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: settle ECCommon::RecoveryBackend within crimson-osd
Radoslaw Zarzynski [Mon, 25 Mar 2024 14:31:55 +0000 (14:31 +0000)]
crimson/osd: settle ECCommon::RecoveryBackend within crimson-osd

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: compile and link with ECTransaction.cc
Radoslaw Zarzynski [Fri, 18 Apr 2025 09:03:53 +0000 (09:03 +0000)]
fixup: crimson/osd: compile and link with ECTransaction.cc

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: add support for error handling around MOSDECSubOpRead
Radoslaw Zarzynski [Fri, 18 Apr 2025 08:50:53 +0000 (08:50 +0000)]
fixup: crimson/osd: add support for error handling around MOSDECSubOpRead

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agoRevert "crimson: clarify RecoveryBackend::handle_backfill_op"
Radoslaw Zarzynski [Fri, 18 Apr 2025 08:47:09 +0000 (08:47 +0000)]
Revert "crimson: clarify RecoveryBackend::handle_backfill_op"

This reverts commit ecda6780c93db66865533a27dab5b0beb052f5fa.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: wire MOSDPGPush{,Reply} with ECRecoveryBackend, phase 2
Radoslaw Zarzynski [Mon, 25 Mar 2024 11:07:33 +0000 (11:07 +0000)]
crimson/osd: wire MOSDPGPush{,Reply} with ECRecoveryBackend, phase 2

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: wire MOSDPGPush{,Reply} with ECRecoveryBackend
Radoslaw Zarzynski [Tue, 19 Mar 2024 17:40:26 +0000 (17:40 +0000)]
crimson/osd: wire MOSDPGPush{,Reply} with ECRecoveryBackend

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: bring factory to RecoveryBackend
Radoslaw Zarzynski [Tue, 19 Mar 2024 17:18:41 +0000 (17:18 +0000)]
crimson/osd: bring factory to RecoveryBackend

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: bring ECRecoveryBackend, phase 0.1
Radoslaw Zarzynski [Tue, 19 Mar 2024 17:18:02 +0000 (17:18 +0000)]
crimson/osd: bring ECRecoveryBackend, phase 0.1

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: conceptually move delete handling out of ReplicatedRecoveryBackend
Radoslaw Zarzynski [Tue, 19 Mar 2024 16:58:45 +0000 (16:58 +0000)]
crimson/osd: conceptually move delete handling out of ReplicatedRecoveryBackend

This logic is shareable between ReplicatedRecoveryBackend and
coming ECRecoveryBackend.

The switch happens currently only structural level; shuffling
betweeen source files will happen later.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: bring ECRecoveryBackend, phase 0
Radoslaw Zarzynski [Tue, 19 Mar 2024 16:49:06 +0000 (16:49 +0000)]
crimson/osd: bring ECRecoveryBackend, phase 0

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: drop the green thread for ECBackend::submit_transaction()
Radosław Zarzyński [Wed, 22 Nov 2023 16:53:31 +0000 (17:53 +0100)]
crimson/osd: drop the green thread for ECBackend::submit_transaction()

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: ECBackend::handle_sub_write() handles the end of local write
Radosław Zarzyński [Tue, 24 Oct 2023 10:51:24 +0000 (12:51 +0200)]
crimson/osd: ECBackend::handle_sub_write() handles the end of local write

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: improve debugs in ECBackend::handle_rep_write_reply
Radosław Zarzyński [Tue, 24 Oct 2023 10:48:25 +0000 (12:48 +0200)]
crimson/osd: improve debugs in ECBackend::handle_rep_write_reply

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: handle_rep_write_reply() takes ECSubWriteReply
Radosław Zarzyński [Tue, 24 Oct 2023 10:43:35 +0000 (12:43 +0200)]
crimson/osd: handle_rep_write_reply() takes ECSubWriteReply

Taking this ECSubWriteReply instead of MOSDECSubOpWriteReply
makes this method easier to reuse for handling local writes.

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: extend PG::should_send_op() and move it to .cc
Radosław Zarzyński [Tue, 24 Oct 2023 10:38:51 +0000 (12:38 +0200)]
crimson/osd: extend PG::should_send_op() and move it to .cc

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: implement ECBackend::objects_read_and_reconstruct
Radosław Zarzyński [Mon, 9 Oct 2023 20:20:06 +0000 (22:20 +0200)]
crimson/osd: implement ECBackend::objects_read_and_reconstruct

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: implement submit_transaction() of ECBackend
Radosław Zarzyński [Fri, 6 Oct 2023 21:35:26 +0000 (23:35 +0200)]
crimson/osd: implement submit_transaction() of ECBackend

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: PCBackend::_submit_transaction() takes ObjectContext
Radosław Zarzyński [Tue, 24 Oct 2023 10:25:41 +0000 (12:25 +0200)]
crimson/osd: PCBackend::_submit_transaction() takes ObjectContext

For the sake of ECBackend.

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: bring attr cache to ObjectContext
Radosław Zarzyński [Fri, 6 Oct 2023 14:42:20 +0000 (16:42 +0200)]
crimson/osd: bring attr cache to ObjectContext

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: compile and link with ECTransaction.cc
Radosław Zarzyński [Fri, 6 Oct 2023 14:41:54 +0000 (16:41 +0200)]
crimson/osd: compile and link with ECTransaction.cc

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: drop the mock of ECTransaction-for-crimson from ECCommon
Radosław Zarzyński [Mon, 2 Oct 2023 19:51:53 +0000 (21:51 +0200)]
crimson/osd: drop the mock of ECTransaction-for-crimson from ECCommon

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: translate for os::Transaction into ECTransaction
Radosław Zarzyński [Mon, 2 Oct 2023 19:27:27 +0000 (21:27 +0200)]
crimson/osd: translate for os::Transaction into ECTransaction

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: make ECCommon compatible with libfmt
Radosław Zarzyński [Thu, 28 Sep 2023 16:23:47 +0000 (18:23 +0200)]
crimson/osd: make ECCommon compatible with libfmt

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: wire MOSDECSubOpWriteReply up with ECBackend
Radosław Zarzyński [Thu, 28 Sep 2023 16:21:15 +0000 (18:21 +0200)]
crimson/osd: wire MOSDECSubOpWriteReply up with ECBackend

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: implement ECBackend::handle_rep_read_reply()
Radosław Zarzyński [Tue, 26 Sep 2023 15:47:24 +0000 (17:47 +0200)]
crimson/osd: implement ECBackend::handle_rep_read_reply()

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: settle RMWPipeline and RMWPipeline within ECBackend
Radosław Zarzyński [Tue, 26 Sep 2023 15:42:55 +0000 (17:42 +0200)]
crimson/osd: settle RMWPipeline and RMWPipeline within ECBackend

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: add support for ECWrites on replica
Radosław Zarzyński [Mon, 11 Sep 2023 14:26:58 +0000 (16:26 +0200)]
crimson/osd: add support for ECWrites on replica

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: PG::log_operation() is now able to update hset
Radosław Zarzyński [Mon, 11 Sep 2023 14:24:27 +0000 (16:24 +0200)]
crimson/osd: PG::log_operation() is now able to update hset

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agofixup: crimson/osd: add support for MOSDECSubOpRead
Radoslaw Zarzynski [Fri, 18 Apr 2025 08:49:24 +0000 (08:49 +0000)]
fixup: crimson/osd: add support for MOSDECSubOpRead

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agocrimson/osd: instantiate an EC plugin
Radosław Zarzyński [Mon, 4 Sep 2023 17:16:29 +0000 (19:16 +0200)]
crimson/osd: instantiate an EC plugin

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: route EC messages over PG
Radosław Zarzyński [Mon, 7 Aug 2023 13:22:38 +0000 (15:22 +0200)]
crimson/osd: route EC messages over PG

The reason behind this change is to avoid mixing responsibilities.
Although in the classical OSD `ECBackend` handles virually everything
related to handling e.g.

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: PGBackend stores pg_shard_t instead of just shard_id_t
Radosław Zarzyński [Fri, 4 Aug 2023 13:07:06 +0000 (15:07 +0200)]
crimson/osd: PGBackend stores pg_shard_t instead of just shard_id_t

It's worth a note that `ReplicatedBackend` (derivate of `PGBackend`)
already holds `pg_shard_t`, so information is duplicated.
As the `ECBackend` starts needs `pg_shard_t` as well, let's rework.

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: add support for attr retrieval of MOSDECSubOpRead
Radosław Zarzyński [Thu, 3 Aug 2023 13:15:49 +0000 (15:15 +0200)]
crimson/osd: add support for attr retrieval of MOSDECSubOpRead

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: add support for error handling around MOSDECSubOpRead
Radosław Zarzyński [Wed, 2 Aug 2023 14:43:56 +0000 (16:43 +0200)]
crimson/osd: add support for error handling around MOSDECSubOpRead

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: add support for MOSDECSubOpRead
Radosław Zarzyński [Tue, 1 Aug 2023 13:52:55 +0000 (15:52 +0200)]
crimson/osd: add support for MOSDECSubOpRead

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: wire the EC-specific messages up
Radosław Zarzyński [Tue, 1 Aug 2023 13:52:08 +0000 (15:52 +0200)]
crimson/osd: wire the EC-specific messages up

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: bring ECRepRequest
Radosław Zarzyński [Wed, 12 Jul 2023 19:35:37 +0000 (21:35 +0200)]
crimson/osd: bring ECRepRequest

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd: always dencode object_info_t with hobject_t
Radosław Zarzyński [Tue, 22 Aug 2023 13:17:54 +0000 (15:17 +0200)]
crimson/osd: always dencode object_info_t with hobject_t

The classical OSD never uses the the `encode_no_oid()`
and `decode_no_oid()` variants of object info's encoding
machinery. crimson departed from this to such an extent
on recovery it sends `OI_ATTR` with meaningless `soid`-
related bytes. The net result is the following crash in
an heterogenous cluster:

```
    -7> 2023-08-22T14:36:57.621+0200 7f25113c8700  0 osd.1 pg_epoch: 62 pg[1.0( v 42'43 lc 39'37 (0'0,42'43] local-lis/les=45/58 n=4 ec=6/6 lis/c=45/6 les/c/f=58/8/0 sis=45) [1] r=0 lpr=53 pi=[6,45)/1 crt=42'43 lcod 0'0 mlcod 0'0 active+recovering rops=2 m=2 mbc={255={(0+1)=2}}] get_object_context:11843: soid.pool=1
    -6> 2023-08-22T14:36:57.621+0200 7f25113c8700 10 osd.1 pg_epoch: 62 pg[1.0( v 42'43 lc 39'37 (0'0,42'43] local-lis/les=45/58 n=4 ec=6/6 lis/c=45/6 les/c/f=58/8/0 sis=45) [1] r=0 lpr=53 pi=[6,45)/1 crt=42'43 lcod 0'0 mlcod 0'0 active+recovering rops=2 m=2 mbc={255={(0+1)=2}}] get_object_context: obc NOT found in cache: 1:30306672:devicehealth::main.db.0000000000000000:head
    -5> 2023-08-22T14:36:57.621+0200 7f25113c8700  0 osd.1 pg_epoch: 62 pg[1.0( v 42'43 lc 39'37 (0'0,42'43] local-lis/les=45/58 n=4 ec=6/6 lis/c=45/6 les/c/f=58/8/0 sis=45) [1] r=0 lpr=53 pi=[6,45)/1 crt=42'43 lcod 0'0 mlcod 0'0 active+recovering rops=2 m=2 mbc={255={(0+1)=2}}] get_object_context:11865 bv came from OI_ATTR
    -4> 2023-08-22T14:36:57.621+0200 7f25113c8700  0 osd.1 pg_epoch: 62 pg[1.0( v 42'43 lc 39'37 (0'0,42'43] local-lis/les=45/58 n=4 ec=6/6 lis/c=45/6 les/c/f=58/8/0 sis=45) [1] r=0 lpr=53 pi=[6,45)/1 crt=42'43 lcod 0'0 mlcod 0'0 active+recovering rops=2 m=2 mbc={255={(0+1)=2}}] get_object_context:11897 just after bv decode oi.soid.pool=-9223372036854775808
    -3> 2023-08-22T14:36:57.621+0200 7f25113c8700  0 osd.1 pg_epoch: 62 pg[1.0( v 42'43 lc 39'37 (0'0,42'43] local-lis/les=45/58 n=4 ec=6/6 lis/c=45/6 les/c/f=58/8/0 sis=45) [1] r=0 lpr=53 pi=[6,45)/1 crt=42'43 lcod 0'0 mlcod 0'0 active+recovering rops=2 m=2 mbc={255={(0+1)=2}}] soid.pool=-9223372036854775808 info.pgid.pool()=1
    -2> 2023-08-22T14:36:57.641+0200 7f25113c8700 -1 ../src/osd/PrimaryLogPG.cc: In function 'ObjectContextRef PrimaryLogPG::get_object_context(const hobject_t&, bool, const std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list, std::less<void> >*)' thread 7f25113c8700 time 2023-08-22T14:36:57.625282+0200
../src/osd/PrimaryLogPG.cc: 11906: FAILED ceph_assert(oi.soid.pool == (int64_t)info.pgid.pool())

 ceph version 18.0.0-4293-g6cd888f2315 (6cd888f2315e525412ee7d39587d11d0a19245c2) reef (dev)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x127) [0x5602381712da]
 2: (ceph::register_assert_context(ceph::common::CephContext*)+0) [0x560238171505]
 3: (PrimaryLogPG::get_object_context(hobject_t const&, bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0::list> > > const*)+0xc9e) [0x560237b5aec6]
 4: (non-virtual thunk to PrimaryLogPG::get_obc(hobject_t const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0::list> > > const&)+0x30) [0x560237c2f9d5]
 5: (ReplicatedBackend::handle_pull_response(pg_shard_t, PushOp const&, PullOp*, std::__cxx11::list<ReplicatedBackend::pull_complete_info, std::allocator<ReplicatedBackend::pull_complete_info> >*, ceph::os::Transaction*)+0x5dc) [0x560237e9d116]
 6: (ReplicatedBackend::_do_pull_response(boost::intrusive_ptr<OpRequest>)+0x477) [0x560237e9e6d5]
 7: (ReplicatedBackend::_handle_message(boost::intrusive_ptr<OpRequest>)+0x1e1) [0x560237e9f2ef]
 8: (PGBackend::handle_message(boost::intrusive_ptr<OpRequest>)+0x59) [0x560237c3f3bb]
 9: (PrimaryLogPG::do_request(boost::intrusive_ptr<OpRequest>&, ThreadPool::TPHandle&)+0x93f) [0x560237bb7bdd]
 10: (OSD::dequeue_op(boost::intrusive_ptr<PG>, boost::intrusive_ptr<OpRequest>, ThreadPool::TPHandle&)+0x531) [0x5602379dcb41]
 11: (ceph::osd::scheduler::PGRecoveryMsg::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x22c) [0x560237d5b8f8]
 12: (OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*)+0x3386) [0x5602379ff9f4]
 13: (ShardedThreadPool::shardedthreadpool_worker(unsigned int)+0x979) [0x56023815f9c3]
 14: (ShardedThreadPool::WorkThreadSharded::entry()+0x17) [0x560238163279]
 15: (Thread::entry_wrapper()+0x43) [0x56023814c0af]
 16: (Thread::_entry_func(void*)+0xd) [0x56023814c0cb]
 17: /lib/x86_64-linux-gnu/libpthread.so.0(+0x8609) [0x7f2531844609]
 18: clone()
```

Fixes: https://tracker.ceph.com/issues/62526
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
4 weeks agocrimson/osd, osd: build and link ECCommon
Radoslaw Zarzynski [Thu, 17 Jul 2025 14:25:28 +0000 (14:25 +0000)]
crimson/osd, osd: build and link ECCommon

The modifications of the code shared with the classical OSD boil
down to just adding some `WITH_CRIMSON` guards; nothing more.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agoMerge pull request #66740 from xxhdx1985126/wip-seastore-rbm-no-backref wip-kdhaduk-testing-3-2026-01-27-1359
Matan Breizman [Sun, 25 Jan 2026 13:26:33 +0000 (15:26 +0200)]
Merge pull request #66740 from xxhdx1985126/wip-seastore-rbm-no-backref

crimson/os/seastore: drop backrefs in cases of pure rbm seastores

Reviewed-by: Samuel Just <sjust@redhat.com>
4 weeks agoMerge pull request #67063 from idryomov/wip-74529
Ilya Dryomov [Sat, 24 Jan 2026 14:00:24 +0000 (15:00 +0100)]
Merge pull request #67063 from idryomov/wip-74529

qa: don't assume that /dev/sda or /dev/vda is present in unmap.t

Reviewed-by: Ramana Raja <rraja@redhat.com>
4 weeks agoMerge pull request #67048 from idryomov/wip-74513
Ilya Dryomov [Sat, 24 Jan 2026 10:02:02 +0000 (11:02 +0100)]
Merge pull request #67048 from idryomov/wip-74513

qa: krbd_blkroset.t: eliminate a race in the open_count test

Reviewed-by: Ramana Raja <rraja@redhat.com>