Fix for:
CID 1221525 (#1 of 1): Resource leak (RESOURCE_LEAK)
leaked_storage: Failing to save or free storage allocated
by this->getObjName(soid, 0UL) leaks it.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
The tests were sending invalid responses back to ImageWatchers
(missing the result code), which had the potential to allow the
lock to be acquired sooner than the test was expecting since
ImageWatcher would assume the last of response code meant no
clients owned the exclusive lock and would retry as fast as
possible.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The C_DoWatchError context did not verify whether or not the
watch was cancelled prior to invoking the callback. This
resulted in sporadic crashes when reconnect errors bubbled
up to destroyed objects.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The options are grouped according to the stage they relate to
- input/build
- tunables adjustments
- modifications
- display/test
- output
Signed-off-by: Loic Dachary <ldachary@redhat.com>
We are using the connection features to populate the features field in the
OSDMap, but this is the *intersection* of mon and osd features, not the
osd features. Fix this by explicitly specifying the features in
MOSDBoot.
Fixes: #10911
Backport: giant, firefly
Signed-off-by: Sage Weil <sage@redhat.com>
Specifically, the object_copy_data_t encoding changed such that the reply
encoding is dependent on features; if we proxy such a read to an old
OSD it will use *our* features to encode instead of the original OSD's.
This effectively conditionally reverts 8e145e08ed
when the cluster features aren't all present.
Fixes: #10788
Signed-off-by: Sage Weil <sage@redhat.com>
This method is O(n) and called from in a few places for each IO operation.
Cache the value since it does not change over the lifetime of a single
epoch. Invalidate on apply_incremental() and decode.
Signed-off-by: Sage Weil <sage@redhat.com>
Since the post-snap create header update runs asynchrously
in a finalizer callback, it's possible that the snapshot
is not immediately visible. Also, if a proxied snap create
message is replayed, it's possible for the client to receive
a EEXISTS error.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Document the high level view of the development workflows which are
otherwise implicit and non trivial to figure out.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Added a unique client id to announcement messages so that duplicate
lock release / acquired / requested messages can be detected and
ignored by the client. Also fixed an issue processing the result
code for async operations.
Fixes: #10898
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Moved all RPC messages to their own classes to facilitate cleaner
version control and backward compatibility.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Utilize the existing rbd_default_features config option to
control whether or not to enable RBD exclusive locking and
object map features by default. Also added a new option to
the rbd cli to specify the image features when creating images.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
When using :doc:`/dev/sepia` the page title is inlined. The modified
title is easier to include as part of a sensible sentence.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
because it does not publish an API that needs to be documented and
because it triggers https://github.com/ceph/asphyxiate/issues/1 in some
contexts.
Signed-off-by: Loic Dachary <ldachary@redhat.com>