-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle overflow in rd_buf_write_remains #4689
Conversation
a1622dd
to
66fa00b
Compare
Hi @emasab, Could you please review and approve this PR? It's critical for us as it addresses a blocking issue with the confluent-kafka-dotnet library update. Your approval is eagerly awaited. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Anchit, the source of the problem comes from a bug that happens previously, check the comment.
There also a problem in My proposed solution is to add a |
Makes sense. I'll create a separate PR to handle that. |
@anchitj better to do it here, as it's basically the same thing that is missing |
e5886a9
to
4071f8b
Compare
5bb225f
to
daab8b9
Compare
daab8b9
to
396f7cc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Anchit, some changes are needed
4c0d964
to
125846c
Compare
125846c
to
4842503
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Anchit! Let's wait for the CI and then we can merge this.
Could this affect the |
After the implementation of KIP-320, TopicCnt was sent as a varint in the metadata request. This change caused an overflow issue due to the use of
rd_buf_erase
to erase the remaining bytes. The overflow occurred in the calculationrbuf->rbuf_size - (rbuf->rbuf_len + rbuf->rbuf_erased)
becauserbuf->rbuf_erased
was non-zero when the buffer was almost full, leading to an overflow condition.As a result, for certain configurations that caused the buffer to be nearly full, the client was unable to send metadata requests, and it also caused crashes in the .NET client.