From: Xiubo Li Date: Fri, 7 Aug 2020 07:45:52 +0000 (+0800) Subject: msg: throw a system error when center.init fails X-Git-Tag: v16.1.0~1409^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=633805060a1002c86570fe50d099e0c1e223e2d7;p=ceph.git msg: throw a system error when center.init fails In the libcephfs test case, it will run handreds of threads in parallel, it will possibly reach the open files limit, but there won't useful logs about what has happened. This will just throw a system error, just like: C++ exception with description "(24) Too many open files" thrown in the test body. Fixes: https://tracker.ceph.com/issues/43039 Signed-off-by: Xiubo Li --- diff --git a/src/msg/async/Stack.cc b/src/msg/async/Stack.cc index 74d07829be9..6885fd4f9db 100644 --- a/src/msg/async/Stack.cc +++ b/src/msg/async/Stack.cc @@ -118,7 +118,9 @@ NetworkStack::NetworkStack(CephContext *c, const std:: string &t): type(t), star for (unsigned worker_id = 0; worker_id < num_workers; ++worker_id) { Worker *w = create_worker(cct, type, worker_id); - w->center.init(InitEventNumber, worker_id, type); + int ret = w->center.init(InitEventNumber, worker_id, type); + if (ret) + throw std::system_error(-ret, std::generic_category()); workers.push_back(w); } }