Without this, rpmlint (on openSUSE Tumbleweed) fails with:
ceph-radosgw.x86_64: E: non-position-independent-executable
(Badness: 10000) /usr/bin/radosgw
This executable must be position independent. Check that it
is built with -fPIE/-fpie in compiler flags and -pie in linker
flags.
Signed-off-by: Tim Serong <tserong@suse.com>
Without this, rpmlint (on openSUSE Tumbleweed) fails with:
librgw2.x86_64: E: shlib-policy-name-error (Badness: 10000) librgw1
Your package contains a single shared library but is not named
after its SONAME.
It seems that the VERSION/SOVERSION mismatch results in the
creation of librgw.so.1 and librgw.so.2.0.0, whereas it should
be librgw.so.2 and librgw.so.2.0.0.
Signed-off-by: Tim Serong <tserong@suse.com>
In tests we allow to reset EventCenter instance in the same CephContext,
so it may let global_centers->centers to set the same position multi times.
Signed-off-by: Haomai Wang <haomai@xsky.com>
When the connection is lossy and enter fault, it will dispatch reset event.
If cleanup handler is executed as well as ms_handle_reset call mark_down,
it may exists racing for "cs". cleanup handler will reset "cs" but
_conn_prefix in mark_down will access "cs".
Signed-off-by: Haomai Wang <haomai@xsky.com>
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>
A non-primary image's commit possition won't accurately reflect
the current demotion/promotion chain. Therefore, directly specify
the predecessor for promotion events.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>