1. remove transaction manager initialization in rbm test
2. do not call check_bitmap_blocks directly and use close() and open()
because open() invokes it internally
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
rgw: fix d3n crash in StoreManager::get_config()
Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
Reviewed-by: Mark Kogan <mkogan@redhat.com>
With auto-deletion of trashed snapshots, it is relatively easy to lose
a race to "rbd flatten" as follows:
- when V2_GET_PARENT runs, the image is technically still a clone
- when V2_REFRESH_PARENT runs, the image is fully flattened and the
snapshot in the parent image is deleted
This results in a spurious ENOENT error, mainly when trying to open the
image (e.g. for "rbd info"). This race condition has always been there
but auto-deletion of trashed snapshots makes it much worse.
Retry ENOENT in V2_REFRESH_PARENT the same way as in V2_GET_SNAPSHOTS.
Fixes: https://tracker.ceph.com/issues/52810
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Make RefreshRequest properly restartable, at least up until and including
V2_REFRESH_PARENT step:
- clear m_migration_spec when skipping GET_MIGRATION_HEADER
- don't rely on potentially stale m_incomplete_update on retry
- reset m_legacy_parent when retrying more than just V2_GET_PARENT
- don't rely on potentially stale m_parent_md.overlap and
m_head_parent_overlap on retry
- clear m_metadata before fetching image metadata (but not before
fetching pool metadata)
- clear m_op_features when skipping V2_GET_OP_FEATURES
- clear m_group_spec on EOPNOTSUPP error in V2_GET_GROUP
- reset m_legacy_snapshot when retrying more than just V2_GET_SNAPSHOTS
- don't rely on potentially stale m_snap_parents on retry
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Stick to *result >= 0 checks everywhere and add missing checks for
op_features_get_finish() and image_group_get_finish() errors.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
there is chance that the bind() call may fail if we have another test
happen to pick the free port picked by operating system. in this case,
we just retry up to 42 times.
in theory, this change does not fully address the racing, but it should
help to alleviate this issue.
See-also: https://tracker.ceph.com/issues/57116
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
mgr/dashboard: Improve level A accessibility for usagebar
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Laura Flores <lflores@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
Generate random ids for column filters to avoid id conflics on pages with multiple tables sharing the same column filters
Signed-off-by: nsedrickm <nsedrick101@gmail.com>
Fixes: https://tracker.ceph.com/issues/55869
rgw: fix bug where variable referenced after data moved out
Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
cephadm/mgr: adding logic to handle --no-overwrite for tuned profiles
Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
rgw: avoid use-after-move in RGWDataSyncSingleEntryCR ctor
Reviewed-by: Yuval Lifshitz <ylifshit@redhat.com>
Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
when compiling with the standard library comes with GCC-10, we have
FTBFS like:
```
src/include/denc.h:517:49: error: 'bit_cast' is not a member of 'std';
did you mean 'bad_cast'?
517 | unsigned lowznib = v ?
(std::countr_zero(std::bit_cast<uint64_t>(v)) / 4) : 0u;
| ^~~~~~~~
| bad_cast
```
to address this issue, an implementation of std::bit_cast<> is defined
if it is not available. in the long run, we should use a better C++
compiler for compiling the tree.
Fixes: https://tracker.ceph.com/issues/57355
Signed-off-by: Kefu Chai <tchaikov@gmail.com>