Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
In the new clients package we introduces a new set of exceptions, but its hierarchy is not very clear as of today:
RuntimeException -> KafkaException -> BufferExhastedException -> ConfigException -> SerializationException -> QuotaViolationException -> SchemaException -> ApiException ApiException -> InvalidTopicException -> OffsetMetadataTooLarge (probabaly need to be renamed) -> RecordBatchTooLargeException -> RecordTooLargeException -> UnknownServerException -> RetriableException RetriableException -> CorruptRecordException -> InvalidMetadataException -> NotEnoughtReplicasAfterAppendException -> NotEnoughReplicasException -> OffsetOutOfRangeException -> TimeoutException -> UnknownTopicOrPartitionException
KafkaProducer.send() may throw KafkaExceptions that are not ApiExceptions; other exceptions will be set in the returned future metadata.
We need better to
1. Re-examine the hierarchy. For example, for producers only exceptions that are thrown directly from the caller thread before it is appended to the batch buffer should be ApiExceptions; some exceptions could be renamed / merged.
2. Clearly document the exception category / hierarchy as part of the release.
criccomini may have some more feedbacks for this issue from Samza's usage experience. jkreps
Attachments
Attachments
Issue Links
- is related to
-
KAFKA-1865 Add a flush() call to the new producer API
- Resolved
- relates to
-
SAMZA-227 Upgrade KafkaSystemProducer to new API
- Resolved