From 2451c74c4fe0ef0370812a155fa00c39d3b349a3 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 19 May 2018 23:24:57 +0300 Subject: [PATCH] Avoid SIGSEGV during destructing KafkaHandleBase (with set_log_callback()) (#68) Configuration should exist for logging, since it contains the copy of the callback. --- include/cppkafka/kafka_handle_base.h | 2 +- src/kafka_handle_base.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cppkafka/kafka_handle_base.h b/include/cppkafka/kafka_handle_base.h index cf981e2..148071f 100644 --- a/include/cppkafka/kafka_handle_base.h +++ b/include/cppkafka/kafka_handle_base.h @@ -217,11 +217,11 @@ private: std::vector fetch_consumer_groups(const char* name); void save_topic_config(const std::string& topic_name, TopicConfiguration config); - HandlePtr handle_; std::chrono::milliseconds timeout_ms_; Configuration config_; TopicConfigurationMap topic_configurations_; std::mutex topic_configurations_mutex_; + HandlePtr handle_; }; } // cppkafka diff --git a/src/kafka_handle_base.cpp b/src/kafka_handle_base.cpp index 1744e6d..aab810b 100644 --- a/src/kafka_handle_base.cpp +++ b/src/kafka_handle_base.cpp @@ -48,7 +48,7 @@ namespace cppkafka { const milliseconds KafkaHandleBase::DEFAULT_TIMEOUT{1000}; KafkaHandleBase::KafkaHandleBase(Configuration config) -: handle_(nullptr, nullptr), timeout_ms_(DEFAULT_TIMEOUT), config_(move(config)) { +: timeout_ms_(DEFAULT_TIMEOUT), config_(move(config)), handle_(nullptr, nullptr) { auto& maybe_config = config_.get_default_topic_configuration(); if (maybe_config) { maybe_config->set_as_opaque();