At the moment, "rbd-wnbd" says that "help" is an unsupported command,
only "rbd-wnbd -h" works. This isn't very user friendly.
Although "rbd-wnbd" isn't supposed to be used directly in most cases,
users might want to retrieve device specific arguments that can be
passed using "rbd device -o".
Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
With the new queue-based GC code, when a GC defer operation is
performed, it adds an "urgent" record to prevent GC from removing
objects that are still being read. It does not check whether the
objects are on the GC queue or not and that's OK for the urgent
record.
The code *also* adds a new GC entry to the queue to cause GC to occur
at a later time. This would be incorrect if there was no GC entry to
begin with, however. In such a case this would cause GC to delete tail
objects when no user-initiated remove has happend. In other words a
READ could cause a DELETE of tail objects and therefore data loss.
This fix prevents such a new GC entry from being enqueued, thus
preventing the data loss in this rare case. There is a new risk that
tail object orphans to be created, but as an immediate fix to prevent
data loss, this is appropriate and it is a rare event. A follow-on PR
that will handle these cases is likely.
This PR adds a level 0 log entry as a way to potentially confirm this
case is being triggered in real-world cases. In time, this log entry
should be deleted.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
some code under test use formatter to output, but Formatter *f
was not freed like elsewere. So use unique_ptr to avoid this.
Signed-off-by: haoyixing <haoyixing@kuaishou.com>
mgr/dashboard: RBD: Disable actions when name is not valid
Reviewed-by: Tatjana Dehler <tdehler@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
The copy functionality of ceph::static_ptr is unused, and it means that
nothing containing a std::unique_ptr (or any other non-copyable type)
can be put into a static_ptr.
Remove the copy functionality, so that unique_ptr can be used in
static_ptr.
Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
- Move cluste stat into public header, allowing more zipper cleanup
- Swift versioning
- Implement a MPSerializer for Zipper.
- Add Lifecycle APIs to Zipper.
Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
`PG` is heavy-weight class with many responsibilities.
Exposing it to lower-layer may suggest there is far more
coupling between them than in reality.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
We'll update the "rbd-wnbd show" command to return -ENOENT
when the specified mapping doesn't exist, instead of returning
-EINVAL. At the moment, it's impossible to tell if the operation
failed because of an error or the mapping simply doesn't exist.
Worth mentioning that on Windows, we can use 32b for the exit code,
which is a bit more flexible.
Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
mgr/dashboard: use http://docs.ceph.com/en/${release}/ for the domain…
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
Without the fix, on a build with `NDEBUG` set,
GCC complains:
```
crimson/osd/pg.cc:869:35: warning: control reaches end of non-void function [-Wreturn-type]
869 | const hobject_t oid = get_oid(*m);
```
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Fix the calculation of how many PGs are available to be balanced
each iteration.
Fixes: https://tracker.ceph.com/issues/48309
Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>