From 9cd3da496e197f7ba2ea10ecc8db3b9c64eda1d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Dziepak?= Date: Mon, 4 Apr 2016 13:15:55 +0100 Subject: [PATCH] transport: retry do_accept() in case of bad_alloc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Paweł Dziepak --- transport/server.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/transport/server.cc b/transport/server.cc index 4d6ae4bd8c..fe120e365f 100644 --- a/transport/server.cc +++ b/transport/server.cc @@ -322,9 +322,12 @@ cql_server::do_accepts(int which, bool keepalive) { } }); do_accepts(which, keepalive); - }).then_wrapped([] (future<> f) { + }).then_wrapped([this, which, keepalive] (future<> f) { try { f.get(); + } catch (const std::bad_alloc&) { + logger.debug("accept failed: {}, retrying", std::current_exception()); + do_accepts(which, keepalive); } catch (...) { logger.debug("accept failed: {}", std::current_exception()); }