ASF GitHub Bot commented on KAFKA-6538:

jadireddi opened a new pull request #4846: KAFKA-6538: Fixed RocksDBStore to 
enhance processor state  exceptions with more context
URL: https://github.com/apache/kafka/pull/4846
   Fixed against `Base:1.1` version.
   Fixed Class:`RocksDBStore` to enhance Processor State Exception containing 
Key/Value values as Bytes/byte[] to Bytes/Bytes form in the error message for 
displaying more useful context .
   *More detailed description of your change,
   if necessary. The PR title and PR message become
   the squashed commit message, so use a separate
   comment to ping reviewers.*
   *Summary of testing strategy (including rationale)
   for the feature or bug fix. Unit and/or integration
   tests are expected for any behaviour change and
   system tests should be considered for larger changes.*
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)

This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:

> Enhance ByteStore exceptions with more context information
> ----------------------------------------------------------
>                 Key: KAFKA-6538
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6538
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>    Affects Versions: 1.1.0
>            Reporter: Matthias J. Sax
>            Assignee: Jagadesh Adireddi
>            Priority: Minor
>              Labels: newbie
> In KIP-182 we refactored all stores to by plain {{Bytes/byte[]}} stores and 
> only have concrete key/value types on outer layers/wrappers of the stores.
> For this reason, the most inner {{RocksDBStore}} cannot provide useful error 
> messages anymore if a put/get/delete operation fails as it only handles plain 
> bytes.
> In addition, the corresponding calls to record changelog records to record 
> collectors will also be sending byte arrays only, and hence when there is an 
> error happening, the record collector can only display the key but not the 
> value since it is all bytes:
> {code}
> [ERROR] org.apache.kafka.streams.processor.internals.RecordCollectorImpl   -
> task [2_2] Error sending record (key {"eventId":XXX,"version":123}
> value [<byte array>] timestamp YYY) to topic TTT
> due to ...
> {code} 
> Therefore, we should enhance exceptions thrown from {{RocksDBStore}} with 
> corresponding information for which key/value the operation failed in the 
> wrapping stores (KeyValueStore, WindowedStored, and SessionStore).
> Cf https://github.com/apache/kafka/pull/4518 that cleans up {{RocksDBStore}} 
> exceptions.

This message was sent by Atlassian JIRA

Reply via email to