]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
2 years agoMerge pull request #51644 from Matan-B/wip-51167-reef
Matan [Tue, 23 May 2023 08:32:49 +0000 (10:32 +0200)]
Merge pull request #51644 from Matan-B/wip-51167-reef

reef: crimson/qa: make crimson run multicore in teuthology test

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51641 from Matan-B/wip-50457-reef
Matan [Tue, 23 May 2023 08:31:41 +0000 (10:31 +0200)]
Merge pull request #51641 from Matan-B/wip-50457-reef

reef: qa/suites/crimson-rados/rbd: Add new rbd image format api tests

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51675 from Matan-B/wip-47637-reef
Matan [Tue, 23 May 2023 08:30:50 +0000 (10:30 +0200)]
Merge pull request #51675 from Matan-B/wip-47637-reef

reef: crimson/osd: bring support for client blocklisting

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51674 from Matan-B/wip-51198-reef
Matan [Tue, 23 May 2023 08:29:50 +0000 (10:29 +0200)]
Merge pull request #51674 from Matan-B/wip-51198-reef

reef: crimson/osd/snaptrim_event: Handle missing clone obc case

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51635 from Matan-B/wip-49980-reef
Matan [Tue, 23 May 2023 08:24:52 +0000 (10:24 +0200)]
Merge pull request #51635 from Matan-B/wip-49980-reef

reef: crimson/os/seastore/journal: generalize recordsubmitter

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51629 from Matan-B/wip-50491-reef
Matan [Tue, 23 May 2023 08:23:05 +0000 (10:23 +0200)]
Merge pull request #51629 from Matan-B/wip-50491-reef

reef: test/librados/snapshots*: Enable Crimson supported tests

Reviewed-by: Laura Flores <lflores@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51623 from Matan-B/wip-50317-reef
Matan [Tue, 23 May 2023 08:00:32 +0000 (10:00 +0200)]
Merge pull request #51623 from Matan-B/wip-50317-reef

reef: crimson/os/seastore/epm: also do prepare_write for rbm

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51677 from zdover23/wip-doc-2023-05-23-backport-51646-to-reef
Anthony D'Atri [Mon, 22 May 2023 21:21:38 +0000 (17:21 -0400)]
Merge pull request #51677 from zdover23/wip-doc-2023-05-23-backport-51646-to-reef

reef: doc/dev/crimson: Improve crimson.rst

2 years agoMerge pull request #51678 from zdover23/wip-doc-2023-05-23-backport-51651-to-reef
Anthony D'Atri [Mon, 22 May 2023 21:21:30 +0000 (17:21 -0400)]
Merge pull request #51678 from zdover23/wip-doc-2023-05-23-backport-51651-to-reef

reef: doc: note deprecation of Cache Tiering in Reef

2 years agoMerge pull request #51612 from adk3798/wip-59548-reef
Adam King [Mon, 22 May 2023 20:38:12 +0000 (16:38 -0400)]
Merge pull request #51612 from adk3798/wip-59548-reef

reef: mgr/cephadm: allow setting mon crush locations through mon service spec

Reviewed-by: Redouane Kachach <rkachach@redhat.com>
2 years agoMerge pull request #51611 from adk3798/wip-59546-reef
Adam King [Mon, 22 May 2023 20:36:58 +0000 (16:36 -0400)]
Merge pull request #51611 from adk3798/wip-59546-reef

reef: cephadm: reschedule haproxy from an offline host

Reviewed-by: Michael Fritch <mfritch@suse.com>
2 years agoMerge pull request #51208 from guits/wip-59255-reef
Adam King [Mon, 22 May 2023 20:36:04 +0000 (16:36 -0400)]
Merge pull request #51208 from guits/wip-59255-reef

reef: ceph-volume: fix drive-group issue that expects the batch_args to be a string

Reviewed-by: Adam King <adking@redhat.com>
2 years agoMerge pull request #51205 from guits/wip-59516-reef
Adam King [Mon, 22 May 2023 20:35:10 +0000 (16:35 -0400)]
Merge pull request #51205 from guits/wip-59516-reef

reef: ceph-volume: fix batch refactor issue

Reviewed-by: Adam King <adking@redhat.com>
2 years agoMerge pull request #51194 from guits/wip-59523-reef
Adam King [Mon, 22 May 2023 20:34:22 +0000 (16:34 -0400)]
Merge pull request #51194 from guits/wip-59523-reef

reef: ceph-volume: quick fix in zap.py

Reviewed-by: Adam King <adking@redhat.com>
2 years agoMerge pull request #51191 from guits/wip-59519-reef
Adam King [Mon, 22 May 2023 20:33:30 +0000 (16:33 -0400)]
Merge pull request #51191 from guits/wip-59519-reef

reef: orchestrator: add `--no-destroy` arg to `ceph orch osd rm`

Reviewed-by: Adam King <adking@redhat.com>
2 years agodoc: note deprecation of Cache Tiering in Reef
Zac Dover [Mon, 22 May 2023 01:35:26 +0000 (11:35 +1000)]
doc: note deprecation of Cache Tiering in Reef

Add a note to the documentation that cache tiering is deprecated in
Reef.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 7f9eaf7a8ef95d611df81463424cfd06472db356)

2 years agodoc/dev/crimson: Improve crimson.rst
Anthony D'Atri [Sun, 21 May 2023 12:39:56 +0000 (08:39 -0400)]
doc/dev/crimson: Improve crimson.rst

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
(cherry picked from commit 524901d3cfbf73cc86284a2623ada493836c13ec)

2 years agoMerge pull request #51593 from cbodley/wip-61219-reef
Yuri Weinstein [Mon, 22 May 2023 19:57:29 +0000 (15:57 -0400)]
Merge pull request #51593 from cbodley/wip-61219-reef

reef: rgw: use string_view to parse Accept header

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
2 years agoMerge pull request #51592 from cbodley/wip-61298-reef
Yuri Weinstein [Mon, 22 May 2023 19:56:52 +0000 (15:56 -0400)]
Merge pull request #51592 from cbodley/wip-61298-reef

reef: qa/rgw: add POOL_APP_NOT_ENABLED to log-ignorelist

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
2 years agoMerge pull request #51569 from amathuria/wip-61232-reef
Yuri Weinstein [Mon, 22 May 2023 19:40:41 +0000 (15:40 -0400)]
Merge pull request #51569 from amathuria/wip-61232-reef

reef: qa/tasks: Changing default mClock profile to high_recovery_ops

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
2 years agoMerge pull request #51409 from kamoltat/wip-ksirivad-reef-backport-50857
Yuri Weinstein [Mon, 22 May 2023 19:39:38 +0000 (15:39 -0400)]
Merge pull request #51409 from kamoltat/wip-ksirivad-reef-backport-50857

reef:mon/Monitor.cc: exit function if !osdmon()->is_writeable()

Reviewed-by: Neha Ojha <nojha@redhat.com>
2 years agoMerge pull request #50977 from yaarith/wip-59390-reef
Laura Flores [Mon, 22 May 2023 19:38:54 +0000 (14:38 -0500)]
Merge pull request #50977 from yaarith/wip-59390-reef

reef: mgr/telemetry: add leaderboard description and documentation

2 years agoMerge pull request #51357 from rhcs-dashboard/wip-59633-reef
Adam King [Mon, 22 May 2023 18:33:25 +0000 (14:33 -0400)]
Merge pull request #51357 from rhcs-dashboard/wip-59633-reef

reef: mgr/cephadm: update monitoring stack versions

Reviewed-by: Adam King <adking@redhat.com>
2 years agocrimson/osd: drop the OSDMap caching from PG
Radoslaw Zarzynski [Mon, 29 Aug 2022 10:52:05 +0000 (10:52 +0000)]
crimson/osd: drop the OSDMap caching from PG

`PG` directly aggregates both `OSDMap` and `PeeringState` which
maintains its own `OSDMap` instance. This duplication leads to
issues as the `PG::osdmap` never gets updated.

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

2 years agocrimson/osd: implement watcher blocklisting
Radoslaw Zarzynski [Tue, 16 Aug 2022 14:34:23 +0000 (14:34 +0000)]
crimson/osd: implement watcher blocklisting

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

2 years agocrimson/osd: check for blocklisted clients
Radoslaw Zarzynski [Tue, 16 Aug 2022 12:23:58 +0000 (12:23 +0000)]
crimson/osd: check for blocklisted clients

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

2 years agocrimson/osd/pg: PG::on_active_actmap() clear PG_STATE_SNAPTRIM_ERROR
Matan Breizman [Mon, 24 Apr 2023 12:56:18 +0000 (12:56 +0000)]
crimson/osd/pg: PG::on_active_actmap() clear PG_STATE_SNAPTRIM_ERROR

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit ad129f39e75ed9a128c5bc2bc52d575a01f1b0ea)

2 years agocrimson/osd/pg: PG::on_active_actmap() fix SnapTrimEvent stop condition
Matan Breizman [Mon, 24 Apr 2023 12:55:45 +0000 (12:55 +0000)]
crimson/osd/pg: PG::on_active_actmap() fix SnapTrimEvent stop condition

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 03ff8f206ab681eb1518e7e73d737bce40ab7a15)

2 years agocrimson/osd/osd_operations/snaptrim_event: Handle missing clone obc
Matan Breizman [Mon, 24 Apr 2023 12:55:08 +0000 (12:55 +0000)]
crimson/osd/osd_operations/snaptrim_event: Handle missing clone obc

The case where resolve_oid is not able to return the clone oid (in order
to load the clone obc) should result in an SNAPTRIM_ERROR and stop the loop
iteration. Without taking this case into account an infinite loop of snap
trim events will be created.
The ENOENT error is delegated upwards to be handled by PG::on_active_actmap().

Fixes: https://tracker.ceph.com/issues/59231
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 5f1f3625908331e164274621f2e0b092efda0452)

2 years agocrimson/osd/osd_operations/snaptrim_event: Add log lines and formatting
Matan Breizman [Mon, 24 Apr 2023 12:53:40 +0000 (12:53 +0000)]
crimson/osd/osd_operations/snaptrim_event: Add log lines and formatting

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 51c70dc95dd6a0ce2d9044a0907e7fa46fc02619)

2 years agoMerge pull request #51645 from Matan-B/wip-51448-reef
Matan [Mon, 22 May 2023 15:36:06 +0000 (17:36 +0200)]
Merge pull request #51645 from Matan-B/wip-51448-reef

reef: crimson/osd/scheduler/mclock_scheduler: Fix OSD unable to start

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51643 from Matan-B/wip-50411-reef
Matan [Mon, 22 May 2023 15:35:21 +0000 (17:35 +0200)]
Merge pull request #51643 from Matan-B/wip-50411-reef

reef: crimson/osd: start operations asynchrously

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51642 from Matan-B/wip-51333-reef
Matan [Mon, 22 May 2023 15:34:23 +0000 (17:34 +0200)]
Merge pull request #51642 from Matan-B/wip-51333-reef

reef: crimson/osd/objclass: Fix compilation warning

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51640 from Matan-B/wip-50227-reef
Matan [Mon, 22 May 2023 15:33:08 +0000 (17:33 +0200)]
Merge pull request #51640 from Matan-B/wip-50227-reef

reef: crimson/osd/heartbeat: share osdmap to peers when necessary

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51639 from Matan-B/wip-51202-reef
Matan [Mon, 22 May 2023 15:31:38 +0000 (17:31 +0200)]
Merge pull request #51639 from Matan-B/wip-51202-reef

reef: crimson/osd/pg: make clone object's version consistent with pglog

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51638 from Matan-B/wip-51180-reef
Matan [Mon, 22 May 2023 15:30:39 +0000 (17:30 +0200)]
Merge pull request #51638 from Matan-B/wip-51180-reef

reef: crimson/osd/snaptrim_event: get SnapSetContext from head obc

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51637 from Matan-B/wip-50530-reef
Matan [Mon, 22 May 2023 15:29:23 +0000 (17:29 +0200)]
Merge pull request #51637 from Matan-B/wip-50530-reef

reef: crimson/osd: Handle rollback to head obejct

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51634 from Matan-B/wip-50840-reef
Matan [Mon, 22 May 2023 15:25:34 +0000 (17:25 +0200)]
Merge pull request #51634 from Matan-B/wip-50840-reef

reef: crimson/os/seastore: avoid segment nonce collision

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51633 from Matan-B/wip-50839-reef
Matan [Mon, 22 May 2023 15:24:56 +0000 (17:24 +0200)]
Merge pull request #51633 from Matan-B/wip-50839-reef

reef: crimson/os/seastore: ensure transaction commit order

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51632 from Matan-B/wip-50653-reef
Matan [Mon, 22 May 2023 15:23:53 +0000 (17:23 +0200)]
Merge pull request #51632 from Matan-B/wip-50653-reef

reef: crimson/os/seastore/cache: consider EXIST_CLEAN extents as pending ones

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51631 from Matan-B/wip-50555-reef
Matan [Mon, 22 May 2023 15:18:22 +0000 (17:18 +0200)]
Merge pull request #51631 from Matan-B/wip-50555-reef

reef: crimson/os/seastore: implement get_stat() for RBM

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51630 from Matan-B/wip-50492-reef
Matan [Mon, 22 May 2023 15:17:19 +0000 (17:17 +0200)]
Merge pull request #51630 from Matan-B/wip-50492-reef

reef: crimson/common/log: Fix debug logging macros

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51627 from Matan-B/wip-50602-reef
Matan [Mon, 22 May 2023 15:15:37 +0000 (17:15 +0200)]
Merge pull request #51627 from Matan-B/wip-50602-reef

reef: crimson/os/seastore: don't set INVALID extents to CLEAN when reading extents

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51626 from Matan-B/wip-50556-reef
Matan [Mon, 22 May 2023 15:14:04 +0000 (17:14 +0200)]
Merge pull request #51626 from Matan-B/wip-50556-reef

reef: crimson: fix build error

Reviewed-by: Samuel Just <sjust@redhat.com>
2 years agoMerge pull request #51624 from Matan-B/wip-49116-reef
Matan [Mon, 22 May 2023 15:11:02 +0000 (17:11 +0200)]
Merge pull request #51624 from Matan-B/wip-49116-reef

reef: crimson/osd: Support balance reads

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2 years agoMerge pull request #51652 from zdover23/wip-doc-2023-05-22-backport-51319-to-reef
Anthony D'Atri [Mon, 22 May 2023 08:55:31 +0000 (04:55 -0400)]
Merge pull request #51652 from zdover23/wip-doc-2023-05-22-backport-51319-to-reef

reef: doc: deprecate the cache tiering

2 years agodoc: deprecate the cache tiering
Radosław Zarzyński [Tue, 2 May 2023 15:52:23 +0000 (17:52 +0200)]
doc: deprecate the cache tiering

This topic has been discussed many times; recently at the Dev
Summit of Cephalocon 2023.

This commit is the minial version of the work, contained entirely
within the `doc`. However, likely it will be expanded as there
were ideas like e.g. adding cache tiering back experimental feature
list (Sam) to warn users when deploying a new cluster.

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
(cherry picked from commit 535b8db33ea03fbab7ef0c4df5251658f956b0c5)

2 years agomgr/cephadm: verify mon spec exists before trying to grab from spec store
Adam King [Tue, 2 May 2023 22:59:18 +0000 (18:59 -0400)]
mgr/cephadm: verify mon spec exists before trying to grab from spec store

In a normal deployment, we generally shouldn't have
to worry about this. This is more for teuthology
which does deployments in a weird way that can cause
there to be no mon spec in the cluster. Fixes an issue
seen when backporting the mon crush location work
to quincy where an upgrade test would fail with

```
[WRN] UPGRADE_REDEPLOY_DAEMON: Upgrading daemon mon.b on host smithi047 failed.
    Upgrade daemon: mon.b: Service mon not found.
```

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 8aab7beefbb52f47573ad7fce932552ad5c0b2fa)

2 years agocrimson/osd/scheduler/mclock_scheduler: Fix OSD unable to start
Matan Breizman [Thu, 11 May 2023 14:18:46 +0000 (14:18 +0000)]
crimson/osd/scheduler/mclock_scheduler: Fix OSD unable to start

https://github.com/ceph/ceph/pull/49975 Introduced changes to
mclock conf value types which caused the osd to stall while booting.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 5cb12bb4af1f1c9cd3051429d8f6c0c01535ab04)

2 years agocrimson/qa: enable multicore for crimson in teuthology test
chunmei [Thu, 20 Apr 2023 22:09:34 +0000 (22:09 +0000)]
crimson/qa: enable multicore for crimson in teuthology test

Signed-off-by: chunmei <chunmei.liu@intel.com>
(cherry picked from commit 179a3e01c5a70596bdecc58e28ef23dbe68b9871)

2 years agocrimson/osd/snaptrim_event: preserve interrupt condition when creating
Xuehan Xu [Fri, 5 May 2023 05:22:11 +0000 (05:22 +0000)]
crimson/osd/snaptrim_event: preserve interrupt condition when creating
subops

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit 58f527893e0a5c051c91d6df0c8d3217c1811875)

2 years agocrimson/osd: start operations asynchrously
Xuehan Xu [Wed, 8 Mar 2023 05:52:00 +0000 (05:52 +0000)]
crimson/osd: start operations asynchrously

Fixes: https://tracker.ceph.com/issues/58928
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit a1963937e421bfdaf2e9735dc2faf750c9a9e08e)

2 years agocrimson/osd/objclass: Compilation warning
Matan Breizman [Wed, 3 May 2023 09:39:14 +0000 (09:39 +0000)]
crimson/osd/objclass: Compilation warning

```
In copy constructor ‘ceph::buffer::v15_2_0::list::list(const ceph::buffer::v15_2_0::list&)’,
    inlined from ‘OSDOp::OSDOp(const OSDOp&)’ at ../src/osd/osd_types.h:4081:8,
    inlined from ‘int cls_cxx_snap_revert(cls_method_context_t, snapid_t)’ at ../src/crimson/osd/objclass.cc:279:37:
../src/include/buffer.h:945:20: warning: ‘op.OSDOp::indata.ceph::buffer::v15_2_0::list::_len’ is used uninitialized [-Wuninitialized]
  945 |         _len(other._len),
      |              ~~~~~~^~~~
../src/crimson/osd/objclass.cc: In function ‘int cls_cxx_snap_revert(cls_method_context_t, snapid_t)’:
../src/crimson/osd/objclass.cc:279:9: note: ‘op’ declared here
  279 |   OSDOp op{op = CEPH_OSD_OP_ROLLBACK};
      |
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 99a8d19b05c175777ec7877eb58bb87270602ba5)

2 years agotest/cls_rbd/test_cls_rbd: Skip mirror_image_status (Crimson)
Matan Breizman [Tue, 25 Apr 2023 10:14:06 +0000 (10:14 +0000)]
test/cls_rbd/test_cls_rbd: Skip mirror_image_status (Crimson)

This commit is part of an initial attempt to establish a Crimson testing baseline.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 32fecf11cac9d3f32a79aa6a78a88f11053baca5)

2 years agoqa/suites/crimson-rados/rbd: Add new rbd image format api tests
Matan Breizman [Thu, 9 Mar 2023 11:15:18 +0000 (11:15 +0000)]
qa/suites/crimson-rados/rbd: Add new rbd image format api tests

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 27e309ef9668a17fec774ba29fa82654f4cd1785)

2 years agotest/librbd: Skip unsupported Crimson tests
Matan Breizman [Thu, 9 Mar 2023 10:59:18 +0000 (10:59 +0000)]
test/librbd: Skip unsupported Crimson tests

This commit is part of an initial attempt to establish a Crimson testing baseline.

test_librbd notes:

* Skip ListChildrenTiered (Crimson):
  Cache tiering is not supported.

test_internal notes:

* Skip SnapshotCopyup (Crimson):
  Clone overlap calculation is WIP: https://tracker.ceph.com/issues/58263

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 89d50e933d67dcda08f75968f9e403d9a0cd710f)

2 years agocrimson/osd/heartbeat: add latest epoch sent concept
Matan Breizman [Wed, 29 Mar 2023 16:42:09 +0000 (16:42 +0000)]
crimson/osd/heartbeat: add latest epoch sent concept

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 12af68c24d2ea0cfd540f4da0a4f765b8212396d)

2 years agocrimson/osd/shard_services: Add logs to load_map_bls
Matan Breizman [Wed, 29 Mar 2023 09:21:12 +0000 (09:21 +0000)]
crimson/osd/shard_services: Add logs to load_map_bls

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 7550d423b1baf2a7bd701b0391a192dc30e9482f)

2 years agocrimson/osd/heartbeat: add a rename todo
Matan Breizman [Thu, 27 Apr 2023 16:07:01 +0000 (16:07 +0000)]
crimson/osd/heartbeat: add a rename todo

In continuation to: bfbbc311f1f

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 0075349661a838abc04f110630bc4f370116c391)

2 years agocrimson/osd/heartbeat: Rename Peer's created at epoch
Matan Breizman [Wed, 29 Mar 2023 09:19:29 +0000 (09:19 +0000)]
crimson/osd/heartbeat: Rename Peer's created at epoch

As these getter and setter represent the epoch at which the peer was added

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit bfbbc311f1fc029ef5df3415cada325fbfed4bde)

2 years agocrimson/osd/heartbeat: share osdmap to peers when necessary
Xuehan Xu [Thu, 23 Feb 2023 06:50:56 +0000 (06:50 +0000)]
crimson/osd/heartbeat: share osdmap to peers when necessary

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 670bbaa4d858de3dd50d857370f76bbd1a13c702)

2 years agocrimson/osd/pg: make clone object's version consistent with pglog
Xuehan Xu [Tue, 25 Apr 2023 06:21:07 +0000 (06:21 +0000)]
crimson/osd/pg: make clone object's version consistent with pglog

Right now, the head object's version is 1 less than clone object's
version in the pg log; while it's exactly the other way around when
it comes to the versions recorded in the object info of head/clone
objects

Fixes: https://tracker.ceph.com/issues/59536
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit 1fd6324bb8baaee4d413f188c78b821f84e5d4ff)

2 years agocrimson/osd/snaptrim_event: avoid leaking txn ops for updating head obcs
Xuehan Xu [Thu, 27 Apr 2023 03:32:04 +0000 (03:32 +0000)]
crimson/osd/snaptrim_event: avoid leaking txn ops for updating head obcs
when removing clones

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit 08625c27f9e158ffb46d0d5d008f500ee9677b42)

2 years agocrimson/osd/snaptrim_event: encode head oi with no oid
Xuehan Xu [Thu, 27 Apr 2023 03:31:20 +0000 (03:31 +0000)]
crimson/osd/snaptrim_event: encode head oi with no oid

This is required by PGBackend::load_metadata

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit ba8732d2a942b4faede4bd3d88764f1da0aa5ad8)

2 years agocrimson/osd/snaptrim_event: don't clear head obc's snaps
Xuehan Xu [Thu, 27 Apr 2023 03:29:58 +0000 (03:29 +0000)]
crimson/osd/snaptrim_event: don't clear head obc's snaps

There may be valid snaps for a head object, although some snap is
being removed

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit f5194e60a25d89f0b0673a96629ea7db42487ac0)

2 years agocrimson/osd: get SnapSetContext from head obc
Xuehan Xu [Sun, 23 Apr 2023 03:59:17 +0000 (03:59 +0000)]
crimson/osd: get SnapSetContext from head obc

clone obc doesn't have snapset context

Fixes: https://tracker.ceph.com/issues/59511
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit a41588532a0339bd647daaf52a6207b67c4459b5)

2 years agotest/librados/snapshots_cxx: Add WriteRollback test
Matan Breizman [Tue, 21 Mar 2023 10:50:58 +0000 (10:50 +0000)]
test/librados/snapshots_cxx: Add WriteRollback test

This test is an example for https://tracker.ceph.com/issues/59114

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit b4f453d3a2d8bbdd3b48c7101ef91303c8b2b00b)

2 years agocrimson/osd/pg_backend: Add a note about unhandled rollback case
Matan Breizman [Sun, 19 Mar 2023 11:26:41 +0000 (11:26 +0000)]
crimson/osd/pg_backend: Add a note about unhandled rollback case

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit f616fafbd6e8beeb1cb0852407014227b3c34421)

2 years agotest/librados/snapshots: Add FutureSnapRollback test
Matan Breizman [Wed, 15 Mar 2023 11:11:47 +0000 (11:11 +0000)]
test/librados/snapshots: Add FutureSnapRollback test

Add a test we rollback to a future snap id. Meaning, no mutation is
followed after taking the third snapshot.
The read op is expected to be applied to the head object.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 047c1832c41afc3ce17c724375a6817fa1672b67)

2 years agocrimson/osd/pg_backend: Rename clone_obc to resolved_obc
Matan Breizman [Wed, 15 Mar 2023 11:19:10 +0000 (11:19 +0000)]
crimson/osd/pg_backend: Rename clone_obc to resolved_obc

The resolved_obc being used is not necessarily a clone object.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit a9100256d03dc94805ebf41c1e7e67eb70f8a47e)

2 years agocrimson/osd/pg_backend:: rollback to support resolved head
Matan Breizman [Wed, 15 Mar 2023 10:00:29 +0000 (10:00 +0000)]
crimson/osd/pg_backend:: rollback to support resolved head

Consider the following `resolve_oid()` case:
```
    // Because oid.snap > ss.seq, we are trying to read from a snapshot
    // taken after the most recent write to this object. Read from head.
```
In this case, a no-op is expected as the head object can read from.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 18f3a67cb53c473fd74a92ab7d5211dff63b88fa)

2 years agocrimson/osd/pg_backend: PGBackend::rollback take RWWRITE lock
Matan Breizman [Tue, 14 Mar 2023 13:33:40 +0000 (13:33 +0000)]
crimson/osd/pg_backend: PGBackend::rollback take RWWRITE lock

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 1e1c4318e7fb4cd3d7f585b3431236904ccaea31)

2 years agocrimson/os/seastore/cbjournal: reset start address for replay if committed_to exceeds...
myoungwon oh [Thu, 20 Apr 2023 07:26:38 +0000 (07:26 +0000)]
crimson/os/seastore/cbjournal: reset start address for replay if committed_to exceeds cbjournal_end()

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit 6b453c9b2f88cc334a43cf31619ba3e7afd3f3f1)

2 years agotest/crimson/seastore/cbjournal: call close after a unittest is done and relocate...
myoungwon oh [Fri, 7 Apr 2023 01:43:43 +0000 (01:43 +0000)]
test/crimson/seastore/cbjournal: call close after a unittest is done and relocate open and close related functions

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit 7bac32cd710116ac2410e8881bbc0ea935921c08)

2 years agocrimson/os/seastore/journal: add CircularJournalSpace
myoungwon oh [Thu, 6 Apr 2023 01:56:10 +0000 (01:56 +0000)]
crimson/os/seastore/journal: add CircularJournalSpace

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit 59cb8c1050b08bd3fa002c0c401605b977631be9)

2 years agocrimson/os/seastore/journal: introduce JournalAllocator to generalize SegmentAllocator
myoungwon oh [Wed, 5 Apr 2023 04:37:29 +0000 (04:37 +0000)]
crimson/os/seastore/journal: introduce JournalAllocator to generalize SegmentAllocator

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit bba25dbce6491dcc80887ac70e012616c9934c47)

2 years agocrimson/os/seastore/journal: relocate RecordSubmitter related classes
myoungwon oh [Mon, 27 Mar 2023 00:49:18 +0000 (00:49 +0000)]
crimson/os/seastore/journal: relocate RecordSubmitter related classes

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit 5abf9b5c98e07159bd8c90555b2579f1ff7b89a5)

2 years agocrimson/os/seastore: check the type of segment head and segment tail during mount
Zhang Song [Tue, 4 Apr 2023 01:34:06 +0000 (09:34 +0800)]
crimson/os/seastore: check the type of segment head and segment tail during mount

Signed-off-by: Zhang Song <zhangsong325@gmail.com>
(cherry picked from commit b890de1c2fe489e05804a2724ad3493c0114732e)

2 years agocrimson/os/seastore: avoid segment nonce collision
Zhang Song [Mon, 3 Apr 2023 11:29:27 +0000 (19:29 +0800)]
crimson/os/seastore: avoid segment nonce collision

Signed-off-by: Zhang Song <zhangsong325@gmail.com>
(cherry picked from commit 367577efa7440d6d7414b9772a3b130109852535)

2 years agocrimson/os/seastore: ensure transaction commit order
Zhang Song [Mon, 3 Apr 2023 11:15:21 +0000 (19:15 +0800)]
crimson/os/seastore: ensure transaction commit order

The previous implementation acquired the throttler first,
which could result in an unordered wakeup sequence.

Signed-off-by: Zhang Song <zhangsong325@gmail.com>
(cherry picked from commit 0740e21e3248d227301d099d6778e94baf62a9e8)

2 years agocrimson/os/seastore/cache: use CachedExtent::is_mutable() where appropriate
Yingxin Cheng [Mon, 27 Mar 2023 09:38:17 +0000 (17:38 +0800)]
crimson/os/seastore/cache: use CachedExtent::is_mutable() where appropriate

CachedExtent::is_mutable() should only be used to check whether need to
call duplicate_for_write(extent).

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit 865285a53cf3a4a2880c2b7b6a35b5b20a55553d)

2 years agocrimson/os/seastore/cache: consider EXIST_CLEAN extents as pending ones
Xuehan Xu [Fri, 24 Mar 2023 10:43:57 +0000 (18:43 +0800)]
crimson/os/seastore/cache: consider EXIST_CLEAN extents as pending ones

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit f34faf363e69053d18d50263ee02ca5948b6462c)

2 years agocrimson/os/seastore/rbm: implement get_stat()
myoungwon oh [Thu, 16 Mar 2023 06:35:59 +0000 (15:35 +0900)]
crimson/os/seastore/rbm: implement get_stat()

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit 3c21cff441739a93d9936ed0d7b4fdc4a32ca51c)

2 years agocrimson/common/log: Fix debug logging macros
Matan Breizman [Sun, 12 Mar 2023 19:52:28 +0000 (19:52 +0000)]
crimson/common/log: Fix debug logging macros

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 5b33995073d70921a1412c07d710f4bdc6e1b0fe)

2 years agotest/librados/snapshots*: Enable supported tests
Matan Breizman [Mon, 13 Mar 2023 08:55:48 +0000 (08:55 +0000)]
test/librados/snapshots*: Enable supported tests

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 04083372485b62233c3b5a1e6a12d28aa2b34524)

2 years agocrimson/os/seastore: don't set INVALID extents to CLEAN when reading
Xuehan Xu [Tue, 21 Mar 2023 05:52:43 +0000 (05:52 +0000)]
crimson/os/seastore: don't set INVALID extents to CLEAN when reading
extents

CLEAN_PENDING extents may be invalidated before read completes:

1. transaction A retired an laddr, which lead to a RetirePlaceHolder in
   Cache
2. transaction B try to read that extent, and replace A's
   RetirePlaceHolder with it;
3. transaction A commits and invalidate that extent;
4. transaction B complete reading that extent;

In this case, we shouldn't set the extent's state to CLEAN

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit 729dabd8ff20a747e02c15113e005a6d61acc8d7)

2 years agocrimson: fix build error
Aravind Ramesh [Thu, 16 Mar 2023 07:02:39 +0000 (12:32 +0530)]
crimson: fix build error

With -DWITH_SEASTAR=ON, build is failing.

src/crimson/osd/osd_operations/snaptrim_event.cc:174:29: error: ‘sleep’ is not a member of ‘seastar’

Signed-off-by: Aravind Ramesh <Aravind.Ramesh@wdc.com>
(cherry picked from commit 917cba60ca40b187ac5da915956e8523c5e161d0)

2 years agocrimson/osd/object_context_loader: Hide private methods
Matan Breizman [Sun, 5 Mar 2023 10:22:10 +0000 (10:22 +0000)]
crimson/osd/object_context_loader: Hide private methods

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit b1632dbf17d0118b6a6c7aff1da15c62cbec6637)

2 years agocrimson/osd: Introduce with_head_and_clone_obc()
Matan Breizman [Sun, 5 Mar 2023 09:31:03 +0000 (09:31 +0000)]
crimson/osd: Introduce with_head_and_clone_obc()

In continuation to 7ca2690be956a36f61c7729946b94ccd970dd9c7:
Now that the head ref is no longer a member of obc, we need a new
substitute way to get the head when needed.

When loading a clone object, the head object is loaded
first (See with_clone_obc). Therefore we can make use of this design
to move the loaded head forward to the relevant func (See with_head_and_clone_obc).
Usually, we wouldn't need to make use of both the head and the clone obc in the
same function. However, SnapTrimObjSubEvent::remove_or_update is an abnormal usage.

Note: We want to avoid holding any unneeded references to obcs
to allow the obc_registery to evict no longer valid obc.
Therefore, with_obc() which references only a single obc is the
preferred entry point for loading obcs.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 3ea1d8e09d43a742d52931bbc508f80cdd8ceaa0)

2 years agocrimson/osd/object_context_loader: with_clone_obc to move head
Matan Breizman [Sun, 19 Feb 2023 10:50:04 +0000 (10:50 +0000)]
crimson/osd/object_context_loader: with_clone_obc to move head

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 4bf99c69f2506babc566395ea1f090c30bd70d30)

2 years agocrimson/osd/object_conetxt*: Rename get_ro_ss to get_head_ss
Matan Breizman [Sun, 19 Feb 2023 13:12:15 +0000 (13:12 +0000)]
crimson/osd/object_conetxt*: Rename get_ro_ss to get_head_ss

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit efcf292905135419f9f6f929f9bd3194e3661e61)

2 years agocrimson/osd: Remove head memeber from ObjectContext
Matan Breizman [Sun, 19 Feb 2023 10:49:47 +0000 (10:49 +0000)]
crimson/osd: Remove head memeber from ObjectContext

Before this patch, ObjectContext had a head member which was used
to get the head obc of a clone object.
This member caused the head object to being referenced while
attempting to 'clear_replica_obc' (Since we only evict un-referenced
obc from the obc_registery).
This mechanism, of obtaining the head, is no longer needed since
'with_clone_obc' loads the head object context first (using
oid.get_head).

In this commit, head is removed from ObjectContext class and users
are removed as well.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit e702dc39606bfcc3899307453a6b54af11b8b803)

2 years agocrimson/osd/pg: Add can_discard_op case
Matan Breizman [Sun, 19 Feb 2023 11:35:03 +0000 (11:35 +0000)]
crimson/osd/pg: Add can_discard_op case

discard op in the case where same_primary_since is later than
the MOSDOp's map epoch

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit c6ab21791545598473bd044ce602eea2bba892d3)

2 years agocrimson/osd/pg: Implement context_registry_on_change()
Matan Breizman [Tue, 7 Feb 2023 19:48:42 +0000 (19:48 +0000)]
crimson/osd/pg: Implement context_registry_on_change()

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit f468c673253e3fdd30677e424674f58a8affd963)

2 years agocommon/instrusive_lru: Implement for_each
Matan Breizman [Tue, 7 Feb 2023 19:47:55 +0000 (19:47 +0000)]
common/instrusive_lru: Implement for_each

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 9f8e2329882a2d5101489b7c2445285a43d4ed13)

2 years agoqa/*/crimson: Seperate Crimson's rbd api testing
Matan Breizman [Sun, 5 Feb 2023 14:53:11 +0000 (14:53 +0000)]
qa/*/crimson: Seperate Crimson's rbd api testing

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit b73d8fd860b13f970292e7e78a19df76c9dc15fb)

2 years agocrimson/osd/osd_operations: Add RepRequest::with_pg() to the pipeline
Matan Breizman [Sun, 5 Feb 2023 12:01:41 +0000 (12:01 +0000)]
crimson/osd/osd_operations: Add RepRequest::with_pg() to the pipeline

Wait on a PG to advance to the request's map epoch.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit cc53ae651249a24ab3e6844823bec6fe65fd7cd3)

2 years agocrimson/osd/pg: add replica_clear_repop_obc() and log_operation()
Matan Breizman [Wed, 7 Dec 2022 13:19:26 +0000 (13:19 +0000)]
crimson/osd/pg: add replica_clear_repop_obc() and log_operation()

Clear invalid obc from cache.

Fixes: https://tracker.ceph.com/issues/58089
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 91cbe881397dbf548559a94582b244f0d4ebf8cb)

2 years agocommon/intrusive_lru: Add clear_range()
Matan Breizman [Wed, 7 Dec 2022 13:17:23 +0000 (13:17 +0000)]
common/intrusive_lru: Add clear_range()

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit c4d996e0b733a8a198274949a9d77c1f2fed7fbd)

2 years agoosd/osd_types_fmt: Add fmt::formatter<pg_log_entry_t>
Matan Breizman [Sun, 22 Jan 2023 11:32:01 +0000 (11:32 +0000)]
osd/osd_types_fmt: Add fmt::formatter<pg_log_entry_t>

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit f4300d4aa4390f78fe1fc7b09558cfa765ea9260)