Closed ericpai closed 8 years ago
I can't pass the unit test because the program is hanging when mockOutputRunner calls UpdateCursor(), but it works well under production environment. Is there any issue of the gomock libraries?
This is a duplicate of
@trixpan Thanks for your reply. Your solution is to use SyncProducer instead which may impact the performance. Is there any solution with AsyncProducer?
Fixed in #1887.
Heka code branch: versions/0.10 OS: CentOS7 GO version: 1.5.3
When I use KafkaOuput with the following configuration
I can read all the messages from Kafka, but the old log files in
output_queue/lain_kafka_output
are not removed. Here are the content ofoutput_queue/lain_kafka_output
I found that the content of checkpoint.txt is always
0 0
. In the updateCursor() of queue_buffer.go, the writeCheckpoint() is updated according to the queueCursor. However, in the Run() of kafka_output.go,the updateCursor() is not called if the message is processed successfully. I think this might be the reason.I also did another test. I used LogOutput instead of KafkaOutput and the checkpoint.txt was updated as expected.
I forked this branch, added
updateCursor()
, recompiled and tested it under the same environment, the checkpoint.txt was updated as well.