kError.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package kafka
  2. type kError int16
  3. const (
  4. NO_ERROR kError = 0
  5. UNKNOWN = -1
  6. OFFSET_OUT_OF_RANGE = 1
  7. INVALID_MESSAGE = 2
  8. UNKNOWN_TOPIC_OR_PARTITION = 3
  9. INVALID_MESSAGE_SIZE = 4
  10. LEADER_NOT_AVAILABLE = 5
  11. NOT_LEADER_FOR_PARTITION = 6
  12. REQUEST_TIMED_OUT = 7
  13. BROKER_NOT_AVAILABLE = 8
  14. REPLICA_NOT_AVAILABLE = 9
  15. MESSAGE_SIZE_TOO_LARGE = 10
  16. STALE_CONTROLLER_EPOCH_CODE = 11
  17. OFFSET_METADATA_TOO_LARGE = 12
  18. )
  19. func (err kError) Error() string {
  20. // Error messages stolen/adapted from
  21. // https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol
  22. switch err {
  23. case NO_ERROR:
  24. return "kafka server: Not an error, why are you printing me?"
  25. case UNKNOWN:
  26. return "kafka server: Unexpected (unknown?) server error."
  27. case OFFSET_OUT_OF_RANGE:
  28. return "kafka server: The requested offset is outside the range of offsets maintained by the server for the given topic/partition."
  29. case INVALID_MESSAGE:
  30. return "kafka server: Message contents does not match its CRC."
  31. case UNKNOWN_TOPIC_OR_PARTITION:
  32. return "kafka server: Request was for a topic or partition that does not exist on this broker."
  33. case INVALID_MESSAGE_SIZE:
  34. return "kafka server: The message has a negative size."
  35. case LEADER_NOT_AVAILABLE:
  36. return "kafka server: In the middle of a leadership election, there is currently no leader for this partition and hence it is unavailable for writes."
  37. case NOT_LEADER_FOR_PARTITION:
  38. return "kafka server: Tried to send a message to a replica that is not the leader for some partition. Your metadata is out of date."
  39. case REQUEST_TIMED_OUT:
  40. return "kafka server: Request exceeded the user-specified time limit in the request."
  41. case BROKER_NOT_AVAILABLE:
  42. return "kafka server: Broker not available. Not a client facing error, we should never receive this!!!"
  43. case REPLICA_NOT_AVAILABLE:
  44. return "kafka server: Replica not available. What is the difference between this and LeaderNotAvailable?"
  45. case MESSAGE_SIZE_TOO_LARGE:
  46. return "kafka server: Message was too large, server rejected it to avoid allocation error."
  47. case STALE_CONTROLLER_EPOCH_CODE:
  48. return "kafka server: Stale controller epoch code. ???"
  49. case OFFSET_METADATA_TOO_LARGE:
  50. return "kafka server: Specified a string larger than the configured maximum for offset metadata."
  51. default:
  52. return "Unknown error, how did this happen?"
  53. }
  54. }