haskell-works / hw-kafka-client

Kafka client for Haskell, including auto-rebalancing consumers
MIT License
139 stars 50 forks source link

What can cause RdKafkaRespErrFatal? #178

Closed Gau-thier closed 2 years ago

Gau-thier commented 2 years ago

Hello,

Once again, thanks for this amazing library. We are using it in production and it works like a charm!

Since yesterday, we see a lot of KafkaResponseError RdKafkaRespErrFatal while synchronously publishing in our Kafka topic, we are on lts-17.12, with hw-kafka-client-4.0.3. I looked for documentation about the root cause of this error, but did not find anything (we did not deploy a new application version, and last update on our Kafka was made weeks before today)... Do you have some documentation somewhere, explaining what can cause such an error? I guess this error is bad since there is fatal 😆

Thanks for your answer!

Cheers!

AlexeyRaga commented 2 years ago

Hi @gsebil08 librdkafka is doing that, and, to my understanding, mostly in cases when it has problem communicating with the broker. See more here: https://github.com/edenhill/librdkafka/blob/master/src/rdkafka.h#L7406

I guess that you can use the error callback to see what rdkafka is reporting....

Gau-thier commented 2 years ago

Hello @AlexeyRaga! Thank you so much for your answer!!! I would have never find this masterpiece without you!

  • The transactional producer on the other hand introduces a set of additional
  • fatal errors which the application needs to handle by shutting down the
  • producer and terminate. There is no way for a producer instance to recover
  • from fatal errors.

Indeed, once we restarted our application, the error disappeared!

From now, we were only making a polysemyError.throw in our code base, which was just returning the error to the client of our HTTP API. We will work on that to correctly handle such a fatal error!

Once again, thank you very much for your time, your knowledge and your help!