From 02ae7abf168eebe4efea8ac601642c560c190d5c Mon Sep 17 00:00:00 2001 From: luo rixin Date: Sat, 22 Feb 2020 17:57:46 +0800 Subject: [PATCH] test/test_socket: fix dispatch_sockets() unexpected exception In the test test_unexpected_down(), there is client running on CPU0 and server runing on CPU1, the server maybe finished before the client (client and other workloads share CPU0), so client couldn't read data and throws "dispatch_sockets(): cb_client() got unexpected exception std::system_error (error crimson::net:4, read eof)" Signed-off-by: luo rixin --- src/test/crimson/test_socket.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/test/crimson/test_socket.cc b/src/test/crimson/test_socket.cc index cb44373f8de58..5d1458ba4a2e3 100644 --- a/src/test/crimson/test_socket.cc +++ b/src/test/crimson/test_socket.cc @@ -373,7 +373,13 @@ future<> test_read_write() { future<> test_unexpected_down() { logger.info("test_unexpected_down()..."); return SocketFactory::dispatch_sockets( - [] (auto cs) { return Connection::dispatch_rw_bounded(cs, 128, true); }, + [] (auto cs) { + return Connection::dispatch_rw_bounded(cs, 128, true + ).handle_exception_type([] (const std::system_error& e) { + logger.debug("test_unexpected_down(): client get error {}", e); + ceph_assert(e.code() == error::read_eof); + }); + }, [] (auto ss) { return Connection::dispatch_rw_unbounded(ss); } ).then([] { logger.info("test_unexpected_down() ok\n"); -- 2.39.5