The operation's id and future returned when starting SnapTrimObjSubEvent
is emplaced into subop_blocker.
Later on, we await the completion of all the started operations futures.
Before this patch, we only stored the op id in the subop_blocker vector
which allowed `op` to go out of scope and lose all its references
(and get deleted) before exiting.
Storing the operation as a reference instead of the id
will maintain the SnapTrimObjSubEvent operation lifetime.
Fixes: https://tracker.ceph.com/issues/63299
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Give parallel structure to the questions in the Q&A section of the "The
Cluster Has Quorum But At Least One Monitor Is Down" subsection of the
"Most Common Monitor Issues" section of
doc/rados/troubleshooting/troubleshooting-mon.rst.
Signed-off-by: Zac Dover <zac.dover@proton.me>
Edit the first section of doc/rados/configuration/ceph-conf.rst.
Initially I just wanted to change "series" to "set", but once I got my
hands dirty I ended up simplifying some sentences.
Signed-off-by: Zac Dover <zac.dover@proton.me>
Unlike the other types Ceph and CephExporter share the underlying
method. There was no other use of get_container_mounts on the class
so it could be converted to be customize_container_mounts.
Because there's an extra arg that passes from get_container_mounts
top-level function to Ceph.get_ceph_mounts, that function was not
changed.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
This helps clarify what types will eventually have to be converted
away from calling get_container_mounts directly and to using common
methods.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Move the call to get_container_mounts out of the function call block.
This will aid with the next refactoring steps, so that the uses
of get_container_mounts can be brought into the get_container call
directly.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Fix all instances of 'deep_scrub' to the documented format (deep-scrub);
Make all formats of the documented command ('ceph tell $pg
[deep-]scrub', and the old 'ceph pg scrub $pgid') trigger an
operator-priority scrub;
Introduce a dev/tests-only format for the required functionality
of "trigger a scrub by modifying the timestamps".
Change some implementation details.
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
Edit the fifth part of the section "Most Common Monitor Issues" in
doc/rados/troubleshooting/troubleshooting-mon.rst.
Follows https://github.com/ceph/ceph/pull/54440.
Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com>
Signed-off-by: Zac Dover <zac.dover@proton.me>
qa/cephadm: basic test for monitoring stack
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
Reviewed-by: Redouane Kachach <rkachach@redhat.com>
rgw: make subclass dependencies explicit
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
As part of the Zipper project generic back-end code is being teased
apart from rados-specific back-end code. This is a work in progress,
so currently generic code and other subclasses of StoreDriver (and
related high-level classes) depend on the rados-specific declarations.
Some of these dependencies are not always obvious since
src/rgw/driver/rados was put on the include path. That is now removed,
so any includes needing files from that subclass have to give a more
fully specified path.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
Edit the fourth part of the section "Most Common Monitor Issues" in
doc/rados/troubleshooting/troubleshooting-mon.rst.
Follows https://github.com/ceph/ceph/pull/54432.
Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com>
Signed-off-by: Zac Dover <zac.dover@proton.me>
Since all types affected by get_container_binds now have the common
customize_container_binds, use a generic class-based approach by
creating an instance of ContainerDaemonForm and calling the method.
All other classes have a customize_container_binds that is a no-op.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
This is a step towards not calling get_container_binds in get_container.
A future commit will replace uses of get_container_binds with direct
uses of common class methods.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Move the call to get_container_binds out of the function call.
This will aid with the next refactoring steps, so that the uses
of get_container_binds can be brought into the get_container call
directly.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add a customize_container_binds function to the CustomContainer daemon
type class and use it from the common get_container_binds function.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Convert the CephNvmeof type's get_container_binds to
customize_container_binds and use it in the generic method.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Convert the CephIscsi type's get_container_binds to
customize_container_binds and use it in the generic method.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Ensure that the iscsi test can call CephIscsi.create inside other
functions by passing a required, but fake, gateway config file.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
These functions often derive the binds and/or mounts from the context
variable. Thus we should have the base class method accept the context.
Not all subclassess will use it but it will be there for those that do.
Also, fix the type for customize_container_mounts - it should be a dict
not a list.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Since we're adding a warning if any host is listed explicitly
in the placement of any service when removing the host,
we need to adjust the host drain test that removes a host
without the --force flag to not have the explicit hostname
in the placement for the mon service.
Signed-off-by: Adam King <adking@redhat.com>
In the case you apply a spec like
```
service_type: node-exporter
placement:
hosts:
- host3
```
and then you run `ceph orch host drain host3`, cephadm will remove
the daemon from that host and the placement would now match nothing.
This is definitely an issue that should be able to be bypassed as
it generally isn't serious, but it would be good to let users
know they have the host listed explicitly in placements like this
when they want to drain it.
Fixes: https://tracker.ceph.com/issues/63220
Signed-off-by: Adam King <adking@redhat.com>
Edit the second part of the section "Most Common Monitor Issues" in
doc/rados/troubleshooting/troubleshooting-mon.rst.
Follows https://github.com/ceph/ceph/pull/54417.
Signed-off-by: Zac Dover <zac.dover@proton.me>