Avoid SIGSEGV during destructing KafkaHandleBase (with set_log_callback()) (#68)

Configuration should exist for logging, since it contains the copy of
the callback.
This commit is contained in:
Azat Khuzhin
2018-05-19 23:24:57 +03:00
committed by Matias Fontanini
parent ae74814791
commit 2451c74c4f
2 changed files with 2 additions and 2 deletions

View File

@@ -217,11 +217,11 @@ private:
std::vector<GroupInformation> fetch_consumer_groups(const char* name); std::vector<GroupInformation> fetch_consumer_groups(const char* name);
void save_topic_config(const std::string& topic_name, TopicConfiguration config); void save_topic_config(const std::string& topic_name, TopicConfiguration config);
HandlePtr handle_;
std::chrono::milliseconds timeout_ms_; std::chrono::milliseconds timeout_ms_;
Configuration config_; Configuration config_;
TopicConfigurationMap topic_configurations_; TopicConfigurationMap topic_configurations_;
std::mutex topic_configurations_mutex_; std::mutex topic_configurations_mutex_;
HandlePtr handle_;
}; };
} // cppkafka } // cppkafka

View File

@@ -48,7 +48,7 @@ namespace cppkafka {
const milliseconds KafkaHandleBase::DEFAULT_TIMEOUT{1000}; const milliseconds KafkaHandleBase::DEFAULT_TIMEOUT{1000};
KafkaHandleBase::KafkaHandleBase(Configuration config) 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(); auto& maybe_config = config_.get_default_topic_configuration();
if (maybe_config) { if (maybe_config) {
maybe_config->set_as_opaque(); maybe_config->set_as_opaque();