]>
git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/log
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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 )
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 )
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
J. Eric Ivancich [Fri, 23 Jan 2026 20:16:25 +0000 (15:16 -0500)]
Merge pull request #66622 from ivancich/wip-max-max-reshard-logs-listings
rgw: enforce max max for reshard logs listings
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Mingyuan Liang <liangmingyuan@baidu.com>
J. Eric Ivancich [Fri, 23 Jan 2026 19:34:34 +0000 (14:34 -0500)]
Merge pull request #66673 from ivancich/wip-fix-radosgw-admin-obj-put
rgw: `radosgw-admin object put ...` broken w/ versioned buckets
Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
J. Eric Ivancich [Fri, 12 Dec 2025 17:54:12 +0000 (12:54 -0500)]
rgw: enforce max max for reshard logs listings
Previously a list of reshard logs could be unlimited. We need to
enforce time limits on CLS ops.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
J. Eric Ivancich [Fri, 23 Jan 2026 17:31:40 +0000 (12:31 -0500)]
Merge pull request #66623 from ivancich/wip-fix-bi-list-backwards
rgw: bucket index list can go backwards and may loop
Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
Sridhar Seshasayee [Fri, 23 Jan 2026 17:17:04 +0000 (22:47 +0530)]
Merge pull request #67058 from sseshasa/wip-fix-iops-threshold-warning-74501
qa: Disable OSD benchmark from running for tests.
Reviewed-by: Laura Flores <lflores@ibm.com>
bluikko [Fri, 23 Jan 2026 14:49:06 +0000 (21:49 +0700)]
Merge pull request #67006 from bluikko/wip-doc-radosgw-ref-links-split1
doc/radosgw: change all intra-docs links to use ref (2 of 6)
Ilya Dryomov [Fri, 23 Jan 2026 13:48:53 +0000 (14:48 +0100)]
qa: don't assume that /dev/sda or /dev/vda is present in unmap.t
Instead of hard-coding the block device name, use the block device that
is backing the filesystem that the test is running on. We can be quite
sure it won't be an RBD device ;)
Fixes: https://tracker.ceph.com/issues/74529
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Afreen Misbah [Fri, 23 Jan 2026 10:38:27 +0000 (16:08 +0530)]
Merge pull request #66914 from afreen23/productive-card
mgr/dashboard: Add productive card component
Reviewed-by: Devika Babrekar <devika.babrekar@ibm.com>
Sridhar Seshasayee [Fri, 12 Sep 2025 08:08:30 +0000 (13:38 +0530)]
qa: Disable OSD benchmark from running for tests.
Disable OSD bench from benchmarking the OSDs for teuthology tests. This is to
help prevent a cluster warning pertaining to the IOPS value not lying within
a typical threshold range from being raised.
The tests can rely on the built-in static values as defined by
osd_mclock_max_capacity_iops_[ssd|hdd] which should be good enough.
Fixes: https://tracker.ceph.com/issues/74501
Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
David Galloway [Thu, 22 Jan 2026 16:34:53 +0000 (11:34 -0500)]
Merge pull request #67041 from Matan-B/wip-matanb-debug-container
container/build.sh: Use dedicated debug tags
Ilya Dryomov [Wed, 21 Jan 2026 18:41:41 +0000 (19:41 +0100)]
qa: krbd_blkroset.t: eliminate a race in the open_count test
Even at QD=1, dd may take less than 10 seconds to work its way to the
end of a 10M image, producing "No space left on device" error instead
of the expected "Operation not permitted" error which is supposed to
arise from the device getting marked read-only while opened.
Fixes: https://tracker.ceph.com/issues/74513
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Casey Bodley [Thu, 22 Jan 2026 15:22:53 +0000 (10:22 -0500)]
Merge pull request #66625 from kshtsk/wip-dnsmasq-preserve-nameservers
rgw/website: preserve nameservers for future use in dnsmasq
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Matan Breizman [Thu, 22 Jan 2026 14:00:47 +0000 (16:00 +0200)]
Merge pull request #66648 from Matan-B/wip-matanb-crimson-flavor-overrides
qa/config,crontab: Adjust to Crimson flavor cleanup
Reviewed-by: Matan Breizman <mbreizma@redhat.com>
Matan Breizman [Tue, 16 Dec 2025 11:03:25 +0000 (13:03 +0200)]
qa/crontab/teuthology-cronjobs: Use debug flavor
Use the new Debug flavor introduced in https://github.com/ceph/ceph-build/pull/2497.
This should provide more nightly test coverage.
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Matan Breizman [Tue, 16 Dec 2025 11:05:20 +0000 (13:05 +0200)]
qa/crontab/teuthology-cronjobs: Cleanup Crimson tentacle nightly
With https://github.com/ceph/ceph-build/pull/2497 merged we no loger
build Tentacle+Crimson regularly. As Crimson no longer backport changes
into Tentacle, there's no reason to keep testing it.
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Ilya Dryomov [Thu, 22 Jan 2026 10:57:59 +0000 (11:57 +0100)]
Merge pull request #67037 from tchaikov/wip-cmake-fix-cmake-ld
cmake: fix undefined PY_LDFLAGS in distutils_install_cython_module
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Ronen Friedman [Thu, 22 Jan 2026 10:54:06 +0000 (12:54 +0200)]
Merge pull request #66749 from ronen-fr/wip-rf-dumptargets
osd/scrub: improve scrub target dumps
Reviewed-by: Jon Bailey <jonathan.bailey1@ibm.com>
Matan Breizman [Thu, 22 Jan 2026 10:00:25 +0000 (12:00 +0200)]
container/build.sh: Use dedicated debug tags
https://github.com/ceph/ceph-build/pull/2497 introduced a debug flavor.
This seems to cause conflicts with the image being pushed to quay as one
of the flavors might override the other.
Tag debug build containers explicitly.
Alternative solution would be to skip debug containers all together.
However. these might be useful for development purposes.
Note, prune-quay might also need to be updated once this is merged.
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Matan Breizman [Thu, 22 Jan 2026 09:55:03 +0000 (11:55 +0200)]
container/build.sh: cleanup crimson flavors
We no longer have crimson-flavors see https://github.com/ceph/ceph-build/pull/2497
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Kefu Chai [Thu, 22 Jan 2026 03:57:37 +0000 (11:57 +0800)]
cmake: fix undefined PY_LDFLAGS in distutils_install_cython_module
The distutils_install_cython_module() function was using ${PY_LDFLAGS}
without defining it, causing the linker to fail with:
/opt/rh/gcc-toolset-13/root/usr/libexec/gcc/x86_64-redhat-linux/13/ld:
cannot find -lrados: No such file or directory
This bug was introduced in commit
d22734f6cb0 which changed:
set(ENV{LDFLAGS} "-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
to:
set(ENV{LDFLAGS} "${PY_LDFLAGS}")
However, PY_LDFLAGS was only defined in distutils_add_cython_module(),
not in distutils_install_cython_module(). This meant that during the
install phase, LDFLAGS was set to an empty string, and the linker
couldn't find librados.so and other Ceph libraries in the build
directory.
The bug was exposed by commit
719b74984605b490f23004eb41583a22c934c5fb
which changed rados.pxd to use C preprocessor conditionals (#ifdef
BUILD_DOC) instead of Cython's compile-time IF statements. This meant
the build now required proper linking during the install phase.
Fix by defining PY_LDFLAGS in distutils_install_cython_module():
set(PY_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
This keeps CMAKE_SHARED_LINKER_FLAGS as a space-separated string and
appends the library directory flag, avoiding issues with semicolon
conversion.
Fixes: d22734f6cb0
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
Ville Ojamo [Fri, 16 Jan 2026 09:43:31 +0000 (16:43 +0700)]
doc/radosgw: change all intra-docs links to use ref (2 of 6)
Part 2 of 6 to make backporting easier. Depends on part 1.
Use the the ref role for all remaining links in doc/radosgw/ with the
exception of config-ref.rst which will depend on changes to rgw.yaml.in.
The external link definitions syntax being removed is intended for
linking to external websites and not for intra-docs links. Validity of
ref links will be checked during the docs build process.
Add labels for links targets if necessary.
Remove unused external link definitions in the modified files.
Use confval instead of literal text for 2 configuration keys in
vault.rst.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
bluikko [Thu, 22 Jan 2026 05:41:27 +0000 (12:41 +0700)]
Merge pull request #66944 from bluikko/wip-doc-radosgw-ref-links1
doc/radosgw: change all intra-docs links to use ref (1 of 6)
Ville Ojamo [Fri, 16 Jan 2026 08:55:27 +0000 (15:55 +0700)]
doc/radosgw: change all intra-docs links to use ref (1 of 6)
Part 1 of 6 to make backporting easier. Many of the following parts
depend on this.
Use the the ref role for all remaining links in doc/radosgw/ with the
exception of config-ref.rst which will depend on changes to rgw.yaml.in.
The external link definitions syntax being removed is intended for
linking to external websites and not for intra-docs links. Validity of
ref links will be checked during the docs build process.
Add labels for links targets if necessary.
Remove unused external link definitions in the modified files.
Use confval instead of literal text for 2 configuration keys in
vault.rst.
Use Ceph Object Gateway consistently in multisite.rst.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
Kefu Chai [Thu, 22 Jan 2026 03:26:34 +0000 (11:26 +0800)]
Merge pull request #67020 from Matan-B/wip-matanb-crimson-asan-fixes-v2
Revert "common/options: fix heap-use-after-free by using never-destro…
Reviewed-by: Aishwarya Mathuria <amathuri@redhat.com>
Reviewed-by: Xuehan Xu <xuxuehan@qianxin.com>
Reviewed-by: Kefu Chai <k.chai@proxmox.com>