Adam C. Emerson [Tue, 24 Jan 2023 03:50:58 +0000 (22:50 -0500)]
common/async: Don't get allocator from moved-from handler
In the `destroy_` functions of `CompletionImpl` we were getting the
associated allocator after moving out of the handler into the call to
`bind_and_forward`. This was triggering a crash on null-pointer access
in operations made with `co_composed`.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Adam C. Emerson [Wed, 9 Mar 2022 23:58:11 +0000 (18:58 -0500)]
neorados: Remove 'broken out' versions of calls
Previously we had versions of all the calls that took an int64_t and
optional key and namespace.
This didn't really offer much benefit and doubled the maintenance
burden for changing anything.
As such just make the IOContext constructor non-explicit, and make all
its mutators return the same IOContext so people can supply them
builder-style if they want to.
Only wrap some things in optional, when it actually makes it easier.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
* refs/pull/53070/head:
PendingReleaseNotes: add note about 'm' and 'M' periods
doc/cephfs: add note about monthly scheduling and retention period
qa: update minute period multiplier to m
qa: change minute duration specifier from M to m
mgr/snap_schedule: change minute duration specifier from M to m
Milind Changire [Thu, 24 Aug 2023 02:17:46 +0000 (07:47 +0530)]
mgr/snap_schedule: change minute duration specifier from M to m
Problem:
As per the issue tracker, the period spec specifier 'M' is not
consistent with what is used elsewhere, like the period specifiers
displayed in the 'ceph status' command output.
The 'M' period specifier is used as a 'minute' level period specifier by
the cephfs team.
The issue reporter suggests to use 'M' as a 'month' period specifier.
Solution:
Since the 'minute' level period specifer, 'M', is used internally by
the development team, it is failrly easy to swap the 'minute' ('M')
level and 'month' ('m') level period specifers to finally mean that 'm'
implies 'minute' level period and 'M' implies 'month' level period.
Also, since this is the first time that somebody has ever reported that
neither the 'M' nor the 'm' level specifiers work in production, it is a
good idea to fix them once and for all.
Myoungwon Oh [Fri, 25 Aug 2023 08:55:36 +0000 (17:55 +0900)]
crimson/os/seastore/object_data_handler: consider a RBM case when checking if write can be merged
RBM's paddr always indicates physical address, which means it doesn't have the dealayed.
So, this commit adds a condition that checks if given paddr is used for ongoing write.
John Mulligan [Wed, 26 Jul 2023 17:24:36 +0000 (13:24 -0400)]
cephadm: convert get_container_mounts to use a DaemonIdentity argument
Convert get_container_mounts to use a DaemonIdentity argument, and in
order to do so: split get_container_mounts_for_type out of
get_container_mounts. get_container_mounts will take a DaemonIdentity
and safely assume that the fsid, daemon_type, daemon_id triple is
available whereas get_container_mounts_for_type has the functionality
of only requiring the fsid and daemon_type.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Laura Flores [Fri, 8 Sep 2023 17:49:01 +0000 (17:49 +0000)]
src/common: add context to tracing::Tracer::init
Followup to https://github.com/ceph/ceph/pull/50948. This wasn't originally
caught since the centos 8 default build passed, but it did fail the
crimson build: https://shaman.ceph.com/builds/ceph/wip-yuri3-testing-2023-08-15-0955/b5259484dbc61e8573f27e692560c6c107b9d4c1/
Fixes: https://tracker.ceph.com/issues/62761 Signed-off-by: Laura Flores <lflores@ibm.com>
John Mulligan [Tue, 25 Jul 2023 20:46:01 +0000 (16:46 -0400)]
cephadm: split get_unit_name into two functions
The previous version of get_unit_name was effectively overloaded,
so that you could pass either an fsid, daemon_type, & daemon_id OR
pass an fsid and a "daemon_type" only that wasn't actually a daemon_type
but rather the instance name of the systemd service. Separate the
two use cases into two functions, making the naming more correct and
the code more audit-able overall.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
John Mulligan [Tue, 25 Jul 2023 20:23:34 +0000 (16:23 -0400)]
cephadm: use DaemonIdentity in arguments to CephContainer.for_daemon
Previously, the CephContainer.for_daemon took separate arguments for
fsid, daemon_type, & daemon_id. Now that we have a dedicated type
for encapsulating those values, switch for_daemon to take
a DaemonIdentity instead.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
John Mulligan [Tue, 25 Jul 2023 18:08:52 +0000 (14:08 -0400)]
cephadm: split DaemonSubIdentity class off from DaemonIdentity
Split DaemonSubIdentity into it's own subclass of DaemonIdentity
in order to better use the type system for validation and clarity.
DaemonIdentity loses the `subcomponent` field so that there's no
mistaking a DaemonIdentity with a DaemonSubIdentity.
This will make a lot more sense once there are more uses of
DaemonSubIdentity in the codebase.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
RadosGW API: incorrect bucket quota in response to HEAD /{bucket}/?usage
When we try to get the bucket usage via various methods, through curl or while accessing rgw api endpoint at HEAD /{bucket}/?usage doesn't return the updated information. The endpoint was always returning the user quota and not the actual bucket quota which we see after querying the endpoint.
John Mulligan [Tue, 5 Sep 2023 18:18:45 +0000 (14:18 -0400)]
cephadm: remove duplicates when listing files in scan
Fix running tox env flake8 during a rebase/merge where git ls-files
may return duplicate file names.
An earlier version of this change used the `--deuplicate` option to `git
ls-files` in order to remove duplicate files listed when running the
tool during rebase/merge. Mysteriously, this seemed to break the `ceph
API tests` in the CI. A completely unrelated command in a tox file that,
AFAIK, is not executed in that test suite. They ways of git are
subtle and often sucky.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Rishabh Dave [Mon, 11 Sep 2023 09:55:46 +0000 (15:25 +0530)]
doc/cephfs: write cephfs commands fully in docs
We write CephFS commands incompletely in docs. For example, "ceph tell
mds.a help" is simply written as "tell mds.a help". This might confuse
the reader and it won't harm to write the command in full.
Fixes: https://tracker.ceph.com/issues/62791 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Adds subvolume groups into the subvolume tabs in order to select the subvolumes from the appropiate group.
Also adds the capabilities to manage the subvolume groups of the subvolume in the different actions, create, edit, remove.
Fixes: https://tracker.ceph.com/issues/62675 Signed-off-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
Link to the "Ceph Clients" section of doc/architecture.rst from the
"Ceph Clients" entry in the glossary. A glossary entry should be a short
summary of the topic with which it deals, and it should direct the
reader to further and more detailed reading if the reader is interested.
This does that.
crimson/os/seastore/onode_manager: populate value recorders of onodes to
be erased
Otherwise, the following modification sequence with the same transaction
might lead to onode extents' crc inconsistency during journal replay:
1. modify the last mapping in an onode extent;
2. erase the last mapping in that onode extent.
During journal replay, if the first modification is not recorded in the
delta, the onode extent's content would be inconsistent with that before
the system reboot
Change the sentence structure of a sentence because the verb
"experience" looked like the abstract noun "experience" when I read it
with fresh eyes. I chose the perhaps TESOL-unfriendly verb "incur", but
I believe it is right.