diff --git a/exporters/fluentd/src/log/fluentd_exporter.cc b/exporters/fluentd/src/log/fluentd_exporter.cc index ea6e05f7f..92490c622 100644 --- a/exporters/fluentd/src/log/fluentd_exporter.cc +++ b/exporters/fluentd/src/log/fluentd_exporter.cc @@ -169,6 +169,10 @@ bool FluentdExporter::Connect() { connected_ = socket_.connect(*addr_); if (!connected_) { LOG_ERROR("Unable to connect to %s", options_.endpoint.c_str()); + // Close the socket to avoid leaking file descriptors on failure. + if (!socket_.invalid()) { + socket_.close(); + } return false; } }