franz-go: error="unknown attributes on uncompressed message 8"
We are piloting this project out and are running in to this error when trying to consume from one of our brokers:
unknown attributes on uncompressed message 8
The error is being returned from fetches.Errors()
This particular broker cluster has the following settings:
version=2.2.1
inter.broker.protocol.version: "2.2"
log.message.format.version: "0.10.1"
We do not see the same issue on another broker cluster with the following settings:
version: 2.7.1
inter.broker.protocol.version: 2.7.1
log.message.format.version: "2.7"
I’ve tried passing different versions to the client via kgo.MaxVersions to no avail
Is there some other option that I should be setting here or is there any way to get more debug information about what is happening here?
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 17 (10 by maintainers)
Awesome, thank you! I’ve gone ahead and tagged this in v1.1.2. I’m going to close this for now but if anything else crops up please let me know!
Looking back at https://kafka.apache.org/documentation/#messageset,it appears I misunderstood their bits. I’m fairly sure I know the problem, and I can patch this in 20. I read bits 0 to 2 as the first two bits, not the first three, and that continued to make sense to me because Kafka never used more than the first two bits for compression. Thanks for bringing this up, I can patch this after lunch.
On Tue, Sep 28, 2021 at 13:16 Kevin Conaway @.***> wrote:
That teaches me for thinking this was easy enough to not need to stash my other work, very sorry about that. I’ll run the integration tests for the next commit just to be sure…
The other cluster settings you posted show
log.message.format.version: "2.7", which uses the “new” RecordBatch format, rather than the old MessageSet. The client isn’t as sensitive on attributes for the newer format. Point is, if the new format has LogAppendTime, that’ll be fine because the client doesn’t choke as hard there.I think this is a tiny bug in this client. The broker is returning LogAppendTime (bit 3) for a message, and the client is not expecting that. This is almost certainly an error introduced in a previous large refactoring, and was uncaught because the integration tests are on new Kafkas (message sets were removed in Kafka 0.11).
I can patch this quickly and tag a patch release.