Because daemon() will termniate all existing threads, it will make something go
wrong.
So we want to add hook at CephContext, do something before/after fork.
Signed-off-by: Haomai Wang <haomai@xsky.com>
New async msgr runtime need to spawn threads when binding, but ceph-osd will
call daemon() after binding port. So we need to respawn threads if forked.
Then thread spawn delay will increase complexity for this change and it's
really a simple strategy which help less, we disable auto spawn now.
Signed-off-by: Haomai Wang <haomai@xsky.com>
AsyncMessenger will try to loop the bind port range, so it will produce
some addr inuse errors which is not abnormal.
Signed-off-by: Haomai Wang <haomai@xsky.com>
Now only dispatch external event will wakeup event thread(previously
delete_time_event will call wakeup), we only need to use
"external_num_events" to indicate whether we have extra events.
Signed-off-by: Haomai Wang <haomai@xsky.com>
Add default posix backend support, it should be the full replacement for
the original AsyncMessenger IO logics.
Signed-off-by: Haomai Wang <haomai@xsky.com>
Stack is a network IO framework which encapsulates all necessary basic network
interface, then it manages threads to work.
Different network backend like posix, dpdk even RDMA need to inherit Stack
class to implement necessary interfaces. So it will make ease for other
network backend to integrated into ceph. Otherwise, each backend need to
implement the whole Messenger logics like reconnect, policy handle, session
maintain...
Signed-off-by: Haomai Wang <haomai@xsky.com>
Gracefully handle stale LDAP connections by rebinding--verified
with MS AD. Rebind is attempted once per request until rebound--
not worse than misconfiguring the environment.
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
rgw: Fix incorrect content length and range for zero sized objects during range requests
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
This change adds python API for the following C methods:
* rados_aio_write_op_operate
* rados_write_op_omap_set
* rados_read_op_set_flags
* rados_aio_read_op_operate
Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
as Thread.cc lives in libcommon, and global is not using libpthread
directly. so moving libpthread linkage from libglobal to libcommon.
Signed-off-by: Kefu Chai <kchai@redhat.com>
pybind: Port Python-based tests and remaining Python bindings to Python 3
Reviewed-by: Case Bodley <cbodley@redhat.com>
Reviewed-by: John Spray <jspray@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
* remove unused stuff, we do not pass/use FUSE_VERSION in cmake.
the FUSE_VERSION we are using is defined by "fuse_common.h".
* use FindPackageHandleStandardArgs for handling find_package()
arguments.
* also detect osxfuse on MacOS.
Signed-off-by: Kefu Chai <kchai@redhat.com>
* AIO_LIBS is now named AIO_LIBARIES, and there is not point to print
out its path
* USE_NSS is not defined if NSS is not checked, so if(USE_NSS) is better
here.
Signed-off-by: Kefu Chai <kchai@redhat.com>
better off using the detected path, instead of using the default path
for finding the linked libaries.
see "cmake --help-policy CMP0065" for more details.
Signed-off-by: Kefu Chai <kchai@redhat.com>