]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Mouratidis Theofilos [Fri, 10 May 2024 10:17:12 +0000 (12:17 +0200)]
Fix CephExporter protocol bind logic
In a dual stack configuration ceph-exporter binds to ipv4 only and the metrics fail in ipv6
Signed-off-by: Mouratidis Theofilos <mtheofilos@gmail.com>
(cherry picked from commit
110bc665078fe19c31e3680c4197587e69e4e751 )
Matan Breizman [Mon, 17 Jun 2024 15:25:09 +0000 (18:25 +0300)]
Merge pull request #58034 from Matan-B/wip-57593-squid
squid: Crimson: Support basic deployments
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Mon, 17 Jun 2024 15:24:18 +0000 (18:24 +0300)]
Merge pull request #58027 from Matan-B/wip-57455-squid
squid: crimson/osd/replicated_backend: no need to set_rollback_to for repops
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Mon, 17 Jun 2024 15:19:33 +0000 (18:19 +0300)]
Merge pull request #58022 from Matan-B/wip-57069-squid
squid: crimson/common/operation: detach blockers from blocking events when they are destroyed
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Mon, 17 Jun 2024 15:18:34 +0000 (18:18 +0300)]
Merge pull request #58015 from Matan-B/wip-57474-squid
squid: crimson/os/seastore/transaction_manager: correct the offset of the data copied from the original extents
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Mon, 17 Jun 2024 15:18:11 +0000 (18:18 +0300)]
Merge pull request #58013 from Matan-B/wip-57432-squid
squid: crimson/os/seastore/object_data_handler: cleanup read()
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Mon, 17 Jun 2024 15:17:24 +0000 (18:17 +0300)]
Merge pull request #58011 from Matan-B/wip-57368-squid
squid: crimson/os/seastore: add is_data_stable() to allow delta-overwrite on EXIST_CLEAN
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Mon, 17 Jun 2024 13:30:13 +0000 (16:30 +0300)]
Merge pull request #58029 from Matan-B/wip-57692-squid
squid: crimson/osd/pg_shard_manager: remove the unnecessary "std::move" call
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Mon, 17 Jun 2024 13:29:30 +0000 (16:29 +0300)]
Merge pull request #58021 from Matan-B/wip-57725-squid
squid: crimson/osd/object_context_loader: Fix obc cache existence usage
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Mon, 17 Jun 2024 13:28:58 +0000 (16:28 +0300)]
Merge pull request #58016 from Matan-B/wip-56114-squid
squid: src/test/TestRados: add max-attr-len to control the max length of attributes sent to OSDs
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Mon, 17 Jun 2024 13:28:18 +0000 (16:28 +0300)]
Merge pull request #58009 from Matan-B/wip-55488-squid
squid: crimson/osd/osd_operations/client_request: make loading-obc concurrent
Reviewed-by: Samuel Just <sjust@redhat.com>
Pedro Gonzalez Gomez [Mon, 17 Jun 2024 07:19:18 +0000 (09:19 +0200)]
Merge pull request #58075 from idryomov/wip-cephadm-flake8-fix-squid
squid: mgr/cephadm: fix flake8 test failures
Reviewed-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
Jos Collin [Mon, 17 Jun 2024 05:08:15 +0000 (10:38 +0530)]
Merge pull request #57840 from rishabh-d-dave/wip-66330-squid
squid: mon,cephfs: require confirmation flag to bring down unhealthy MDS
Reviewed-by: Anthony D Atri <anthony.datri@gmail.com>
Reviewed-by: Jos Collin <jcollin@redhat.com>
Jos Collin [Mon, 17 Jun 2024 04:54:25 +0000 (10:24 +0530)]
Merge pull request #57682 from batrick/wip-66196-squid
squid: mds: use regular dispatch for processing beacons
Reviewed-by: Jos Collin <jcollin@redhat.com>
Nizamudeen A [Sun, 16 Jun 2024 09:11:04 +0000 (14:41 +0530)]
mgr/cephadm: fix flake8 test failures
after a recent update on flake8, some tests in cephadm started failing
```
flake8: commands[0]> flake8 --config=tox.ini alerts balancer cephadm cli_api crash devicehealth diskprediction_local hello iostat localpool nfs orchestrator prometheus rbd_support rgw selftest smb
cephadm/configchecks.py:94:6: E204 whitespace after decorator '@'
cephadm/module.py:3017:10: E204 whitespace after decorator '@'
cephadm/module.py:3344:144: E226 missing whitespace around arithmetic operator
cephadm/tests/test_cephadm.py:982:6: E204 whitespace after decorator '@'
3 E204 whitespace after decorator '@'
1 E226 missing whitespace around arithmetic operator
```
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit
a9563d91c2ac405ae9101bd4e63fa9b749d54432 )
Matan Breizman [Sun, 16 Jun 2024 10:12:54 +0000 (13:12 +0300)]
Merge pull request #58033 from Matan-B/wip-57313-squid
squid: crimson/osd/ops_executor: calculation of clone_overlap shouldn't consider snap contexts
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 10:11:40 +0000 (13:11 +0300)]
Merge pull request #58031 from Matan-B/wip-57908-squid
squid: crimson/osd/osd_operations: correct connection pipelines for osd operations
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 10:09:57 +0000 (13:09 +0300)]
Merge pull request #58028 from Matan-B/wip-57416-squid
squid: crimson/osd/pg: hold PGs' references to the last minute of snap trim events executions
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 10:08:59 +0000 (13:08 +0300)]
Merge pull request #58026 from Matan-B/wip-57386-squid
squid: crimson/osd/recovery_backend: change recovery waiters' promises into optional ones
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 10:08:39 +0000 (13:08 +0300)]
Merge pull request #58025 from Matan-B/wip-57276-squid
squid: crimson/osd/pg_backend: DONOT modify OSDOp::indata when handling CEPH_OSD_OP_CHECKSUM
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 10:07:43 +0000 (13:07 +0300)]
Merge pull request #58023 from Matan-B/wip-57204-squid
squid: crimson/osd: clamp reads to object size and bring full read trimming
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 10:05:20 +0000 (13:05 +0300)]
Merge pull request #58020 from Matan-B/wip-57711-squid
squid: crimson/os/seastore/async_cleaner: fix incorrect get_num_rolls()
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 10:04:56 +0000 (13:04 +0300)]
Merge pull request #58019 from Matan-B/wip-57694-squid
squid: crimson/os/seastore/rbm/avlallocator: return enough regions when request size is greater than max_alloc_size
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 10:04:28 +0000 (13:04 +0300)]
Merge pull request #58018 from Matan-B/wip-57656-squid
squid: test/crimson/seastore/transaction_manager_test_state: fix compilation…
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 10:04:00 +0000 (13:04 +0300)]
Merge pull request #58017 from Matan-B/wip-57262-squid
squid: crimson/os/seastore/lba_manager: don't increase intermediate mappings' refcount if LBAManager::clone_mapping() is called to remap mappings
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 09:56:54 +0000 (12:56 +0300)]
Merge pull request #58014 from Matan-B/wip-55735-squid
squid: crimson/common/errorator: disallow void-returning error handlers
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 09:54:55 +0000 (12:54 +0300)]
Merge pull request #58012 from Matan-B/wip-57476-squid
squid: crimson/os/seastore/transaction_manager: drop unused code
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 09:53:53 +0000 (12:53 +0300)]
Merge pull request #58010 from Matan-B/wip-57434-squid
squid: crimson/os/seastore/record_scanner: replace [=] capturing
Reviewed-by: Samuel Just <sjust@redhat.com>
Matan Breizman [Sun, 16 Jun 2024 09:52:34 +0000 (12:52 +0300)]
Merge pull request #58008 from Matan-B/wip-57102-squid
squid: crimson/osd/osdop_params:Unify OpsExecuter::user_modify and osd_op_params_t::user_modify
Reviewed-by: Samuel Just <sjust@redhat.com>
Anthony D'Atri [Sun, 16 Jun 2024 06:16:22 +0000 (02:16 -0400)]
Merge pull request #58059 from zdover23/wip-doc-2024-06-16-backport-58057-to-squid
squid: doc/rados: explain replaceable parts of command
Zac Dover [Sat, 15 Jun 2024 11:55:18 +0000 (21:55 +1000)]
doc/rados: explain replaceable parts of command
Add an explanation that directs the reader to replace the "X" part of
the command "ceph tell mon.X mon_status" with the value specific to the
reader's Ceph cluster (which is (probably) not "X").
In the future, such replaceable strings in commands may be bounded by
angle brackets ("<" and ">").
This improvement to the documentation was suggested on the [ceph-users]
email list by Joel Davidow. This email, an absolute model of user
engagement with an upstream project, can be reviewed here:
https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/message/KF67F5TXFSSTPXV7EKL6JKLA5KZQDLDQ/
Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit
d071ad2575c86f300a9ba39df3c4949e5dc9c47d )
Laura Flores [Fri, 14 Jun 2024 17:52:42 +0000 (12:52 -0500)]
Merge pull request #57998 from ljflores/wip-tracker-66460
squid: qa/suites/rados/thrash-old-clients: update supported releases and distro
Anthony D'Atri [Fri, 14 Jun 2024 15:14:23 +0000 (11:14 -0400)]
Merge pull request #58049 from zdover23/wip-doc-2024-06-14-backport-58007-to-squid
squid: doc/rados: add pg-states and pg-concepts to tree
Jos Collin [Fri, 14 Jun 2024 11:33:46 +0000 (17:03 +0530)]
Merge pull request #57525 from batrick/wip-66044-squid
squid: qa: unmount clients before damaging the fs
Reviewed-by: Jos Collin <jcollin@redhat.com>
Jos Collin [Fri, 14 Jun 2024 11:20:23 +0000 (16:50 +0530)]
Merge pull request #57762 from joscollin/wip-66270-squid
squid: pybind/mgr/mirroring: Fix KeyError: 'directory_count' in daemon status
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Jos Collin [Fri, 14 Jun 2024 11:19:09 +0000 (16:49 +0530)]
Merge pull request #57760 from joscollin/wip-66277-squid
squid: cephfs-journal-tool: Add preventive measures to avoid fs corruption
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Jos Collin [Fri, 14 Jun 2024 11:12:26 +0000 (16:42 +0530)]
Merge pull request #57795 from rishabh-d-dave/wip-65920-squid
squid: mds: don't add counters in warning for standby-replay MDS
Reviewed-by: Jos Collin <jcollin@redhat.com>
Jos Collin [Fri, 14 Jun 2024 11:00:51 +0000 (16:30 +0530)]
Merge pull request #57945 from ceph/wip-lusov-qdb-exclude-or-cancel-squid
squid: mds: QuiesceDbRequest: update the internal encoding of ops
Reviewed-by: Jos Collin <jcollin@redhat.com>
Zac Dover [Thu, 13 Jun 2024 11:29:47 +0000 (21:29 +1000)]
doc/rados: add pg-states and pg-concepts to tree
Add "pg-states" and "pg-concepts" to the left tree pane on
docs.ceph.com.
This commit has been made in response to a request from the upstream
made in https://pad.ceph.com/p/Report_Documentation_Bugs.
Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit
0629f47faf73a5b88adbeceaf022ee23111bae7d )
Laura Flores [Mon, 1 Apr 2024 17:27:54 +0000 (12:27 -0500)]
qa/suites: add "mon down" log variations to ignorelist
Fixes: https://tracker.ceph.com/issues/64864
Signed-off-by: Laura Flores <lflores@ibm.com>
(cherry picked from commit
d475ac3e6ab86a4913e1d318989c617031978bc2 )
Conflicts:
qa/suites/orch/cephadm/smoke/start.yaml
qa/suites/orch/cephadm/workunits/task/test_host_drain.yaml
qa/suites/orch/cephadm/workunits/task/test_monitoring_stack_basic.yaml
qa/suites/orch/cephadm/workunits/task/test_rgw_multisite.yaml
qa/suites/orch/cephadm/workunits/task/test_set_mon_crush_locations.yaml
The log-only-match entry was backported to squid before the ignorelist changes,
but in main it was introduced after the ignorelist changes.
See https://github.com/ceph/ceph/commit/
b4522dd332d40a54b9e0be58bd96aeaa345f8977 .
Matan Breizman [Thu, 30 May 2024 09:12:33 +0000 (09:12 +0000)]
crimson/osd: warn cluster when optimal deployment is not used
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
64a9915ecbafadc5afb16b04366a69fc4e548568 )
Matan Breizman [Tue, 21 May 2024 09:56:01 +0000 (09:56 +0000)]
crimson: introduce crimson_seastar_num_threads
This new option is there to allow *basic* cluster deployments.
crimson_seastar_num_threads can be used globally for all the OSDs in the cluster:
```
osd:
crimson_seastar_num_threads: <n>
crimson_alien_op_num_threads: <m>
```
As a result, all the available CPUs will be allocated to *both* seastar reactor threads
and to Alienstore threads - without any exclusion.
Notes:
* The core allocation will most likely overlap between OSDS and/or Seastar and Alienstore.
An optiomal deployment requires `crimson_alien_thread_cpu_cores`
and `crimson_seastar_cpu_cores` to be set for each OSD based on the host its located at.
* Seastar reactor number (smp::count) will be deduced directly from crimson_seastar_num_threads
---
Documentation followup: https://github.com/ceph/ceph/pull/57352
---
### Option 1 (Optimal)
* CPUs are pinned to the provided sets (seastar and alien cpu sets)
* thread-affinity = 1 (seastar's default).
* smp (smp::count / reactor count): `seastar_cpu_set.size()`
* Seastar reactor threads: `seastar_cpu_set.size()`
* Alienstore threads num: `crimson_alien_op_num_threads`
---
### Option 2 (Basic):
* No CPU pinning.
* thread-affinity = 0
* smp (smp::count / reactor count) = `crimson_seastar_num_threads`
* Seastar reactor threads num: `crimson_seastar_num_threads`
* Alienstore threads num: `crimson_alien_op_num_threads`
---
Fixes: https://tracker.ceph.com/issues/65752
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
e0b6fff4f3bf9495fc0fdc17e5ea1f53ffa1d423 )
Xuehan Xu [Tue, 7 May 2024 10:05:27 +0000 (18:05 +0800)]
crimson/osd/ops_executor: calculation of clone_overlap shouldn't consider
snap contexts
Fixes: https://tracker.ceph.com/issues/65832
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
213ae3f42cbb478b503212d704161b16e90cf878 )
Xuehan Xu [Thu, 6 Jun 2024 03:55:38 +0000 (11:55 +0800)]
crimson/osd/osd_operations: correct connection pipelines for osd
operations
Fixes: https://tracker.ceph.com/issues/66374
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
cb379bbdb7526c8858f64e035a676e23a82770a6 )
Xuehan Xu [Fri, 24 May 2024 09:35:47 +0000 (17:35 +0800)]
crimson/osd/pg_shard_manager: remove the unnecessary "std::move" call
Fixing the following compilation issue:
/home/xuxuehan/src/ceph/src/crimson/osd/pg_shard_manager.h:236:7: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
236 | );
| ^
/home/xuxuehan/src/ceph/src/crimson/osd/pg_shard_manager.h:236:7: note: remove ‘std::move’ call
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
3d77b5c7e2ed95d424cdc9b97f9b41cea1a2648a )
Xuehan Xu [Sat, 11 May 2024 07:01:54 +0000 (15:01 +0800)]
crimson/osd/pg: clear PG_STATE_SNAPTRIM on interval changes
This is to avoid the scenarios in which pgs get activated before
PG_STATE_SNAPTRIM of the last pg interval gets cleared
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
2c216b95ece4a0ec7ad723bdd2b00efce3135b2d )
Xuehan Xu [Sat, 11 May 2024 07:00:58 +0000 (15:00 +0800)]
crimson/osd/pg: hold PGs' references to the last minute of snap trim
events executions
Fixes: https://tracker.ceph.com/issues/65972
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
1116c418b4fed0c8b6ab42d4f6c23cdc1afbef57 )
Xuehan Xu [Tue, 14 May 2024 03:05:17 +0000 (11:05 +0800)]
crimson/osd/replicated_backend: no need to set_rollback_to for repops
Fixes: https://tracker.ceph.com/issues/66002
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
aeb43ba413d0c8fb6f8066107d48ac8f45cb2bfa )
Xuehan Xu [Fri, 10 May 2024 06:29:34 +0000 (14:29 +0800)]
crimson/osd/recovery_backend: change recovery waiters' promises into
optional ones
Fixes: https://tracker.ceph.com/issues/65894
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
422c94251d1ff1ecb38170afc9db16f6c5f7072c )
Xuehan Xu [Mon, 6 May 2024 02:11:40 +0000 (10:11 +0800)]
crimson/osd/pg_backend: DONOT modify OSDOp::indata when handling
CEPH_OSD_OP_CHECKSUM
So that crimson's handling of CEPH_OSD_OP_CHECKSUM is idempotent
Fixes: https://tracker.ceph.com/issues/65804
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
899afd3472abb8055924278e7ee29c609ec4eb54 )
Radoslaw Zarzynski [Wed, 1 May 2024 14:06:29 +0000 (14:06 +0000)]
crimson/osd: clamp reads to object size and bring full read trimming
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit
788c364de79787df5d6d808e423cb36b579f4fa7 )
Xuehan Xu [Wed, 24 Apr 2024 07:58:19 +0000 (15:58 +0800)]
crimson/osd/osd_operations/client_request: also dump pg_tracking_events
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
d11eddfb01e67a052116c22b863d92d37f21b362 )
Xuehan Xu [Wed, 24 Apr 2024 02:56:14 +0000 (10:56 +0800)]
crimson/common/operation: detach blockers from blocking events when they are destroyed
Fixes: https://tracker.ceph.com/issues/65632
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit
89f23accb4a8d53492cb0a9d169c08177e6e1848 )
Xuehan Xu [Wed, 24 Apr 2024 02:39:05 +0000 (10:39 +0800)]
crimson/common/operation.h: move functionality of OrderedConcurrentPhaseT<T>::BlockingEvent into BlockerT
This makes compliers' instantiation of crimson::BlockerT<T>::BlockingEvent complete when instantiating
crimson::BlockerT<T>
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit
01aa611e71a5ac8affaeaed2a2211c6bdc0d76ce )
Matan Breizman [Thu, 6 Jun 2024 09:48:09 +0000 (09:48 +0000)]
crimson/osd/object_context_loader: get_or_load to support atomicity
make use of try_lock in order to support atomicity when called in
ObjectContext::_with_lock()
Co-authored-by: Yingxin Cheng <yingxin.cheng@intel.com>
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
1675ce8c1b5347ad13b65389686cd45853a4149e )
Yingxin Cheng [Mon, 3 Jun 2024 06:33:26 +0000 (14:33 +0800)]
crimson/common/tri_mutex: make lock() atomic if doesn't need wait
Otherwise, promotion cannot be atomic with the 1st locker.
Identified by: Matan Breizman <mbreizma@redhat.com>
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
f63d76a2ae348e1419dab20fab9557ce483080ca )
Yingxin Cheng [Mon, 3 Jun 2024 06:31:35 +0000 (14:31 +0800)]
crimson/common/tri_mutex: minor cleanup to be consistent
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
251b9d4bca14c314b467fd77202e76a70ed90c0f )
Matan Breizman [Sun, 2 Jun 2024 15:17:36 +0000 (15:17 +0000)]
crimson/common/tri_mutex: add waiter_t::waiter_name
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
71eef36644e50fdf269f898e707182e72e083eeb )
Matan Breizman [Sun, 2 Jun 2024 15:00:37 +0000 (15:00 +0000)]
crimson/common/tri_mutex: add debug logs
to be used only for testing
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
6c5106d134c7a4c308253b8ba04aa66416bf1689 )
Matan Breizman [Thu, 30 May 2024 11:48:46 +0000 (11:48 +0000)]
crimson/osd/object_context_loader: with_head_obc to log `existed`
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
583cb17a308c9c56851719371aac75d08e3f35c8 )
Matan Breizman [Tue, 28 May 2024 13:52:08 +0000 (13:52 +0000)]
crimson/osd/object_context_loader: cleanup `loaded`
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
5b5d2ea4aebcbbe3fec349377337fe38f5a2f27a )
Matan Breizman [Tue, 28 May 2024 13:23:10 +0000 (13:23 +0000)]
crimson/osd/object_context: await in-progress loading (per-obc)
```
// obc loading is a concurrent phase. In case this obc is being loaded,
// make other useres of this obc to await for the loading to complete.
```
Since we now await for loading to finish (in-case in progress), we can
also assert is_loaded().
Fixes: https://tracker.ceph.com/issues/65451
Co-authored-by: Xuehan Xu <xuxuehan@qianxin.com>
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
e456bd7cdd1ad1cd68026cebedd5b1d9d01001f7 )
Matan Breizman [Mon, 27 May 2024 15:24:00 +0000 (15:24 +0000)]
crimson/osd/object_context: cleanup is_loaded_and_valid
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
ccc0001a5dc54aef5b4d4b3f85952f1edaf17fb1 )
Matan Breizman [Mon, 27 May 2024 13:21:41 +0000 (13:21 +0000)]
crimson/osd/object_context_loader: Fix obc cache existence usage
with_head_obc() uses get_cached_obc() to get_or_create obc instances.
If the obc exists in cache, get_or_load_obc is called with `existed`=true.
The assumption above is wrong.
Cache existence (`existed`) only guarantees that the obc instance was created (and inserted) in the obc_registery.
However, it does **not** assure that the obc was actually loaded.
As obc-loading is now concurrent, it's possible for the first user to only create the obc in
cache (without loading yet) and the second concurrent user to assume it was already loaded.
With this patch, we verify that the obc was loaded in get_or_load_obc.
* make loading-obc concurrent PR: https://github.com/ceph/ceph/pull/55488
Fixes: https://tracker.ceph.com/issues/64206
Fixes: https://tracker.ceph.com/issues/66214
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
0b90ee74e06cc5a3a30088fa39fde5634148bda1 )
Yingxin Cheng [Mon, 27 May 2024 02:16:41 +0000 (10:16 +0800)]
crimson/os/seastore/async_cleaner: fix incorrect get_num_rolls()
The number of journal segments should not be based on the committed
journal_head. Otherwise, if a new journal segment is just opened and the
committed journal_head hasn't been updated, the result will be wrong.
This causes ceph_assert(get_segments_reclaimable() == 0) in
SegmentCleaner::get_next_reclaim_segment().
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
5ae59cf52159bdc1ad3637da8654524cb7b4b4b6 )
Zhang Song [Fri, 24 May 2024 09:56:48 +0000 (17:56 +0800)]
crimson/os/seastore/rbm/avlallocator: return enough regions when request size is greater than max_alloc_size
Signed-off-by: Zhang Song <zhangsong02@qianxin.com>
(cherry picked from commit
8ff2a31c51dc3259d56764ddae11bf2fcd544d68 )
Matan Breizman [Thu, 23 May 2024 11:06:41 +0000 (11:06 +0000)]
test/crimson/seastore/transaction_manager_test_state: fix compilation error
Introduced in: https://github.com/ceph/ceph/commit/
898efa78e2cde90a2bdf8e6f7eda1d4def736705
Followup: https://github.com/ceph/ceph/pull/53433
```
FAILED: src/crimson/tools/CMakeFiles/perf-staged-fltree.dir/perf_staged_fltree.cc.o
error: ‘GetParam’ was not declared in this scope
287 | if (std::get<1>(GetParam()) == integrity_check_t::FULL_CHECK) {
| ^~~~~~~~
/home/yogisha/ceph/src/test/crimson/seastore/transaction_manager_test_state.h: In member function ‘virtual seastar::future<> SeaStoreTestState::_init()’:
/home/yogisha/ceph/src/test/crimson/seastore/transaction_manager_test_state.h:439:21: error: ‘GetParam’ was not declared in this scope
439 | if (std::get<1>(GetParam()) == integrity_check_t::FULL_CHECK) {
| ^~~~~~~~
```
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
8a182dffc1ad2571f53a4990c19cb4a329722101 )
Xuehan Xu [Mon, 20 May 2024 02:45:25 +0000 (10:45 +0800)]
crimson/os/seastore/lba_manager: hide incref_extent(t, addr, delta)
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
4b4d04bef29f82d07f667570f758f7993e429dd3 )
Xuehan Xu [Thu, 16 May 2024 06:56:20 +0000 (14:56 +0800)]
crimson/os/seastore: add comments to highlight necessary invariants
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
ac4981160e790368cbb49b469937bee83edd26fb )
Xuehan Xu [Mon, 13 May 2024 03:48:28 +0000 (11:48 +0800)]
crimson/os/seastore/cache: add a TODO comment to recommand dropping
`Cache::retire_extent_addr` in the future
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
cf49ef60755e3201b9126e46c4f0208416acc41c )
Xuehan Xu [Fri, 10 May 2024 08:34:02 +0000 (16:34 +0800)]
crimson/os/seastore/object_data_handler: minor bug fix
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
ab312f3e2b5db784afc4427c0511afbebb8838f8 )
Xuehan Xu [Wed, 8 May 2024 03:14:33 +0000 (11:14 +0800)]
crimson/os/seastore/lba_manager: clean up LBAManager::decref_extent()
interface
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
502d922bdd45b6177080a6da8466420c8de563ec )
Xuehan Xu [Thu, 9 May 2024 12:02:07 +0000 (20:02 +0800)]
crimson/os/seastore/transaction_manager: refactor extent remapping
dec_ref/alloc/clone/inc_ref of lba mappings caused by extent remappings
are now integrated into a single LBAManager::remap_lba_mappings()
interface
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
a2e244388c4822d81474bf0e45caada6c97e6e24 )
Xuehan Xu [Thu, 9 May 2024 11:59:19 +0000 (19:59 +0800)]
crimson/os/seastore/transaction_manager: add get_extent_if_linked() interface
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
a6f90bc27ec62c6595028aa97524abffd682dcf3 )
Xuehan Xu [Thu, 9 May 2024 12:01:29 +0000 (20:01 +0800)]
crimson/os/seastore/cache: add retire_absent_extent_addr() interface
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
6e583ccf458c740d6da86a19722b3e484aaf285c )
Xuehan Xu [Sat, 4 May 2024 04:21:13 +0000 (12:21 +0800)]
crimson/os/seastore/lba_manager: don't increase intermediate mappings'
refcount if LBAManager::clone_mapping() is called to remap mappings
TransactionManager::remap_pin() will increase the refcount itself
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
0cac72adc175404a013e86e450c58e9fb3f94af4 )
Xuehan Xu [Mon, 11 Mar 2024 08:41:21 +0000 (16:41 +0800)]
qa/suites/crimson-rados(-experimental): set max-attr-len to 8192 for crimson thrash
tests
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
45943555ea170e630218eb1ae107b606ba06f0a7 )
Xuehan Xu [Mon, 11 Mar 2024 08:38:54 +0000 (16:38 +0800)]
test/osd/TestRados: add parameter max-attr-len
SeaStore can't handle too big attributes
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
45a6d3f2c7fd5281a398b08762849fd37488ac21 )
Xuehan Xu [Wed, 15 May 2024 07:58:24 +0000 (15:58 +0800)]
crimson/os/seastore: set last_committed_crc for rewritten extents
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
e7ccb91c1d1c6b0048edab96cb70b0cc671d6124 )
Xuehan Xu [Wed, 15 May 2024 07:31:14 +0000 (15:31 +0800)]
crimson/os/seastore/transaction_manager: correct the offset of the data
copied from the original extents
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
a136cc62d6878b124c41700e2f55ca214cdf041a )
Xuehan Xu [Tue, 27 Feb 2024 04:49:41 +0000 (12:49 +0800)]
crimson/common/errorator: drop discard_all
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
0043fa92ab2435b4237d0d79112ab397730a8e91 )
Xuehan Xu [Mon, 26 Feb 2024 02:27:55 +0000 (10:27 +0800)]
crimson: adjust all void-returning handlers to either return values or
switch to errorator::asserts
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
2f2b4f6170dbbd24c404d2bf58170e0818df8c80 )
Xuehan Xu [Sat, 2 Mar 2024 07:33:55 +0000 (15:33 +0800)]
crimson/common/errorator: make assert_all() interfaces accept functors
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
a543db27108003fa4ace41a559efc5fb35555d23 )
Xuehan Xu [Sun, 25 Feb 2024 04:06:18 +0000 (12:06 +0800)]
crimson/common/errorator: disallow void-returning error handlers
Fixes: https://tracker.ceph.com/issues/64556
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit
513257cdd67ec126539f617256d73e4e8c65cf31 )
Yingxin Cheng [Mon, 13 May 2024 07:05:49 +0000 (15:05 +0800)]
crimson/os/seastore/object_data_handler: adjust code indention of read()
To make it easier to read, make sure there are 2 spaces per nesting.
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
1293bc9004726b5663fd5f2607bebc88217dec08 )
Yingxin Cheng [Mon, 13 May 2024 06:52:43 +0000 (14:52 +0800)]
crimson/os/seastore/object_data_handler: cleanup read() and logs
Specifically, refactor based on read range, pin range and extent range.
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
16a716fbf8237828e4a2b4da1691a37efb66c105 )
Yingxin Cheng [Mon, 13 May 2024 05:37:34 +0000 (13:37 +0800)]
crimson/os/seastore/object_data_handler: adjust l_current asserts for read()
l_current is only allowed to be larger than pin_key for the first pin.
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
fec6ae6520ae2583d6cd77189702090180b1ca86 )
Yingxin Cheng [Mon, 13 May 2024 02:36:42 +0000 (10:36 +0800)]
crimson/os/seastore/object_data_handler: cleanup and renames
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
0af15fbe079f673e674249416d4972b550044e27 )
Yingxin Cheng [Wed, 15 May 2024 07:59:04 +0000 (15:59 +0800)]
crimson/os/seastore/transaction_manager: drop unused code
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
ab5bc65ce38a0408bb6d74776f4396e0ef1bbffc )
myoungwon oh [Mon, 13 May 2024 04:21:26 +0000 (04:21 +0000)]
crimson/os/seastore: add comments to add a note that seastore_obj_data_write_amplification needs to be reconsidered
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit
cb7548f0dcc9fe6dd9bdfe360dc1bd3eb3a51ae6 )
myoungwon oh [Mon, 13 May 2024 04:16:46 +0000 (04:16 +0000)]
crimson/os/seastore: replace is_left_stable/is_right_stable with is_left_fresh/is_right_fresh
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit
64d9451aa3dd38657b2d8a87bd18c3f649608bea )
myoungwon oh [Thu, 9 May 2024 06:25:18 +0000 (06:25 +0000)]
crimson/os/seastore: add is_data_stable() to allow delta-overwrite on EXIST_CLEAN
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit
c20a5d8b53789fd53fb98bb784a180f4d349035a )
Yingxin Cheng [Mon, 13 May 2024 07:14:40 +0000 (15:14 +0800)]
crimson/os/seastore/record_scanner: replace [=] capturing
Capturing with = is error prone and causes compile warning.
And it is wrong:
* cursor should be captured by reference
* mutable keyword is unnecessary
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
116c5b4894193124cde485091b9627ccf3cf73a0 )
Yingxin Cheng [Tue, 7 May 2024 08:33:04 +0000 (16:33 +0800)]
crimson/common/operation: distruct barrier after the wait future is resolved
Specifically, OrderedExclusivePhaseT::mutex must be unlocked only after
it is locked. Otherwise it can unlock other client requests
unexpectedly, causing incorrect order upon exit.
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
4a9ed13cb73361f4069de602c225e23002209203 )
Yingxin Cheng [Tue, 7 May 2024 05:45:40 +0000 (13:45 +0800)]
crimson/common/operation: cleanup, merge exit() into ~PipelineExitBarrierI()
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
df2804dc1d4d9c983db407e145d69dcb1b065d3b )
Yingxin Cheng [Thu, 25 Jan 2024 02:42:17 +0000 (10:42 +0800)]
crimson/osd/osd_operations: introduce concurrent lock_obc phase
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
2e50a5ed8ad387a2408f808e2bb677ebdf3a4d3f )
Yingxin Cheng [Tue, 23 Jan 2024 06:45:17 +0000 (14:45 +0800)]
crimson/osd/osd_operations/client_request: make loading-obc concurrent during recover missing
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
430358d758dcac7cefcbff9b0d5b4db9ce2c9147 )
Yingxin Cheng [Thu, 25 Jan 2024 08:47:38 +0000 (16:47 +0800)]
crimson/.../client_request: introduce instance_handle_t::enter_stage_sync()
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
4f532cfd8fdf9b7ac11aa327baca355062dabcb1 )
Yingxin Cheng [Mon, 22 Apr 2024 07:29:28 +0000 (15:29 +0800)]
crimson/osd/osd_operation: introduce PhasedOperationT::enter_stage_sync()
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
22847658944408446b1acbaa3be80e2aa99df5c6 )
Yingxin Cheng [Thu, 25 Jan 2024 05:54:00 +0000 (13:54 +0800)]
crimson/common/operation: cleanup around PipelineHandle::enter()
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit
6a538c21f071f1b22afce679351bd0264d7cfaa1 )