librados: only call watch_flush if necessary

Fix bug #10424
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Merge pull request #3243 from yuyuyu101/wip-10424

librados: only call watch_flush if necessary

Reviewed-by: Loic Dachary <ldachary@redhat.com>
AsyncConnection: Ensure reply connect_seq larger than sent

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncConnection:: Avoid getting stopping connection

Now AsyncConnection::_stop may consume a little time on deleting time events,
it may occur that accepting a connection get this stopping connection
because unregister call isn't met.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncMessenger: Make learn_addr async to avoid destroying lock rule

Make learn_addr become a async op, otherwise holding connection's
lock then acquire messenger's lock will destroy lock rule.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
test_msgr: Avoid deadlock between send_message and dispatch

If connection holds Connection's lock and try to acquire
FakeDispatcher's lock while gtest thread try to send_message with
FakeDispatcher's lock and try to acquire Connection's lock,
it will be deadlock.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncConnection: Init peer_global_seq

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Makefile: Restore check

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncMessenger: Fix leak memory

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>