]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg: throw a system error when center.init fails 41593/head
authorXiubo Li <xiubli@redhat.com>
Fri, 7 Aug 2020 07:45:52 +0000 (15:45 +0800)
committerXiubo Li <xiubli@redhat.com>
Mon, 31 May 2021 01:49:02 +0000 (09:49 +0800)
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 <xiubli@redhat.com>
(cherry picked from commit 6338050)

Conflicts:
      src/msg/async/Stack.cc
- nautilus uses plain "i" as the for loop counter variable, while
master has more fancy "worker_id"

src/msg/async/Stack.cc

index 8976c3cc43a85addd16eee72a8e0df3167a1ea16..db3247ed1a84c1f7803691f48e594916c7155962 100644 (file)
@@ -117,7 +117,9 @@ NetworkStack::NetworkStack(CephContext *c, const string &t): type(t), started(fa
 
   for (unsigned i = 0; i < num_workers; ++i) {
     Worker *w = create_worker(cct, type, i);
-    w->center.init(InitEventNumber, i, type);
+    int ret = w->center.init(InitEventNumber, i, type);
+    if (ret)
+      throw std::system_error(-ret, std::generic_category());
     workers.push_back(w);
   }
 }