From eb1f9f9a42c2a593a2a5df371b246542e65b89bc Mon Sep 17 00:00:00 2001 From: Arne Welzel Date: Tue, 4 Mar 2025 15:36:04 +0100 Subject: [PATCH] cluster/zeromq: Catch log_push.send() exception --- src/cluster/backend/zeromq/ZeroMQ.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/cluster/backend/zeromq/ZeroMQ.cc b/src/cluster/backend/zeromq/ZeroMQ.cc index 0fd15d95a5..e34cdc3ab8 100644 --- a/src/cluster/backend/zeromq/ZeroMQ.cc +++ b/src/cluster/backend/zeromq/ZeroMQ.cc @@ -347,13 +347,19 @@ bool ZeroMQBackend::DoPublishLogWrites(const logging::detail::LogWriteHeader& he zmq::const_buffer{buf.data(), buf.size()}, }; - zmq::send_result_t result; for ( size_t i = 0; i < parts.size(); i++ ) { zmq::send_flags flags = zmq::send_flags::dontwait; if ( i < parts.size() - 1 ) flags = flags | zmq::send_flags::sndmore; - result = log_push.send(parts[i], flags); + zmq::send_result_t result; + try { + result = log_push.send(parts[i], flags); + } catch ( const zmq::error_t& err ) { + zeek::reporter->Error("Failed to send log write part %zu: %s", i, err.what()); + return false; + } + if ( ! result ) { // XXX: Not exactly clear what we should do if we reach HWM. // we could block and hope a logger comes along that empties