lockdep will complain about loop cycles that won't cause an
issue in reality as replay and record are two different
journal states.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
If two or more images share the same CephContext, notifications
from one image can block the work queue which will potentially
block acknowledging the notification until after it times out.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The header update and lock notifications might be invoked
from the librados AIO thread. Update the close state
machine to flush any potential AIO notifications.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
client: add option to control how directory size is calculated
This lets you disable rstats if your workload is unhappy about directories
changing size (eg, tar of recently-moved/created/untarred files).
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
This change uses:
* a pystring to store ioctx state like other state attributes and like
previous binding
* use __dealloc__ instead of __del__ to ensure Object are freed correctly
Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
When --strict,
* Do not take into account the merge message. This is is not used
for backports
* Avoid duplicates by storing the issues in a set
* Display the list of PRs when more than one are found for a single
issue.
Signed-off-by: Loic Dachary <loic@dachary.org>
There is no default value for these arguments, and they are
necessary. Then make them as required.
Fixes 9666
Signed-off-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
This implements run_in_thread inside the ceph command itself.
And fixes the ceph command bootstrap when it run inside the
source tree to correctly load the new rados python module.
Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
Notable changes:
* run_in_thread have disapeared
* timeout argument of some methods are ignored
* rados_create_write_op/rados_create_read_op returns WriteOp/ReadOp
instead of the pointer address
* rados_monitor_log callback 'arg' arguments was broken in previous python
binding (callback was called with the pointer address instead pointed object)
* object attributes that was pointer addresses are now private and not accessible in python
Some tests have been added to cover all methods
Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
Since notify handling was made async from the librados threads in
d898995b0e tests can crash during
image close when exclusive locking is enabled.
This occurs because flushing the watches no longer guarantees that all
notifies have been completely handled, and since these are run from
the TaskFinisher attached to the CephContext, notifies added to the
TaskFinisher run after the ImageCtx they refer to has been
destroyed. The notify for exclusive lock release runs into this in
this case.
Looking into this also made me notice that sharing a single
TaskFinisher is not safe currently since all events are cancelled by
ImageWatcher::unregister_watch(), not just those scheduled by that
image.
Example crash backtrace from test_rbd.py:
at librados/IoCtxImpl.cc:1332
This reverts commit 96563c1515.
Fixes: #14780
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
To allow to create a autonomous rados module with cython.
We move the current librbdpy to the rbd sub directory.
Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>