* refs/pull/36134/head:
mgr/nfs: Remove NParts and Cache_Size from MDCACHE block
Reviewed-by: Michael Fritch <mfritch@suse.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
This avoids a use-after-free when there is a crash on shutdown (or when
something like ASAN triggers an ABORT on leak).
Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
This pass modifies RGW to use RGWObject and RGWRadosObject.
Also improves RGWBucket usage. This converts many of the APIs to
unique_ptr.
Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
mgr/dashboard: Use $localize and locl for TS translations
Reviewed-by: Ernesto Puertat <epuertat@redhat.com>
Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
Reviewed-by: Sebastian Krah <skrah@suse.com>
The librados API does not currently offer an async 'mon_command'
API method. Instead of adding one just to support this effort,
re-use the neorados API to issue an asynchronous 'mon_command'
for blacklisting a client.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The current usage of the asio::ContextWQ to similate an asynchronous blocklist
API call is resulting in deadlock in the rbd-mirror HA tests when multiple
blocklists are occurring concurrently. The next commit will switch to use the
neorados async MON command API (since librados doesn't offer one).
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Now that librbd utilizes multiple threads for the IO path, it's
possible for a race condition to occur if a client app is waiting
on a completion to fire and the actual invokation of the
completion.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Avoid the unnecessary wrapping of the strand completion in a
bind_executor by just directly posting the completion to the
strand.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This will assist with potential race condition debugging since the
stand pointer will be invalidated by the time the strand has been
destructed and shut down.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
With multiple threads of execution possible, we need to ensure that
all completions have fired prior to the destruction of the AsioEngine.
We also need to ensure that the AsioEngine is destoyed outside the
context of its owned stands.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
IO operations to the cluster are now dispatched via the neorados
API which allows multiple threads to be utilized for processing
incoming and outgoing IO.
This also involves switching from a map for tracking sparse extents
to a vector of pairs since that matches the new API for sparse
read operations.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The post operation is similar to the asio::ContextWQ::queue wrapper
but execution is not limited to a single thread strand.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This ensures that the API callers will not receive concurrent
callbacks and allows internal AioCompletion users to be able to
use all available asio dispatch threads.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Also create an up-to-date data_io_context that mimics the function
of ImageCtx::data_ctx. The data_io_context will eventually be passed
via the IO dispatch specs to replace the passing of the snapshot
id vectors.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The ImageCtx will contain a shared_ptr to its AsioEngine and previous
usage for get_work_queue now directly instantiate their own AsioEngine
instance.
Additionally, AsioEngine is now lighter weight by re-using the
io_context exposed via a neorados-wrapped librados API.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The neorados API does not require the creation of heavy IoCtx-like
objects with static read snap_ids pre-assigned. Therefore, we will
need to pass the read snap_id to all affected functions and adjust
all dependent unittests to expect a new parameter.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This is required when issuing a client blacklist to ensure that
they cannot overwrite any OSD data before their map updates.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
librbd passes blkin traces from the user API down through to
Objecter and back. Add these missing hooks to the neorados API
since they weren't included in the intial revision.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The std::conditional_variable will keep the provided reference and
repeatedly dereference it even after the lock was dropped and
re-acquired. This can lead to an invalid read if the associated
schedule entry has been removed while waiting.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
mgr/dashboard: Use same required field message accross the UI
Reviewed-by: Stephan Müller <smueller@suse.com>
Reviewed-by: Tatjana Dehler <tdehler@suse.com>
Reviewed-by: Tiago Melo <tmelo@suse.com>