logkafka icon indicating copy to clipboard operation
logkafka copied to clipboard

Memory leak with rd_kafka_conf_set_dr_msg_cb()

Open chrislee87 opened this issue 7 years ago • 3 comments

在producer中如果使用rd_kafka_conf_set_dr_msg_cb设置回调函数msgDelivered2会导致内存泄露,在测试中遇到过这种情况吗?

chrislee87 avatar Nov 10 '16 08:11 chrislee87

没遇到过

zheolong avatar Nov 11 '16 12:11 zheolong

调用rd_kafka_produce_batch(rkt, partition, RD_KAFKA_MSG_F_FREE, rkmessages, msgcnt),写kafka失败时不需要释放内存吗?callback里没做处理,我测试时内存泄漏了。

chrislee87 avatar Nov 16 '16 09:11 chrislee87

看这个文件./src/logkafka/producer.cc ,有释放空间的语句

     /* Note: librdkafka will duplicate the key once more,
      * so we can free the original one after producing*/
     for (i = 0 ; i < msgcnt ; ++i) {
         free(rkmessages[i].key);
     }

     free(rkmessages);

zheolong avatar Nov 16 '16 11:11 zheolong