dongnuo123 opened a new pull request, #22663:
URL: https://github.com/apache/kafka/pull/22663
The `deserialize*` methods in `ConsumerProtocol` only catch
`BufferUnderflowException` and re-wrap it as `SchemaException`. Malformed bytes
can also surface as other `RuntimeException`s (e.g. `IllegalArgumentException`
from negative array lengths in `ByteBufferAccessor`), which escape these
methods. Callers that only guard against `SchemaException` then propagate the
failure, which can destabilize the group coordinator.
### Changes
In `ConsumerProtocol`, broaden the `catch` clause from
`BufferUnderflowException` to `RuntimeException` in all four deserialization
entry points, re-wrapping as `SchemaException`:
- `deserializeSubscription`
- `deserializeConsumerProtocolSubscription`
- `deserializeAssignment`
- `deserializeConsumerProtocolAssignment`
Reviewers: Sean Quah <[email protected]>, David Jacot
<[email protected]>
Delete this text and replace it with a detailed description of your change.
The
PR title and body will become the squashed commit message.
If you would like to tag individuals, add some commentary, upload images, or
include other supplemental information that should not be part of the
eventual
commit message, please use a separate comment.
If applicable, please include a summary of the testing strategy (including
rationale) for the proposed change. Unit and/or integration tests are
expected
for any behavior change and system tests should be considered for larger
changes.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]