Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-7501

double deallocation of producer batch upon expiration of inflight requests and error response

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.1.0
    • Component/s: clients
    • Labels:
      None

      Description

      The following event sequence will lead to double deallocation of a producer batch.

      1) a producer batch is sent and the response is not received. 

      2) the inflight producer batch is expired when deliveryTimeoutMs has reached.  The  sender fail the producer batch via "failBatch" and the producer batch is deallocated via "accumulator.deallocate(batch)". 

      3) the response for the batch finally arrived after batch expiration, and the response contains the error "Errors.MESSAGE_TOO_LARGE" .

      4) the producer batch is split and the original batch is deallocated a second time. As a result, the "IllegalStateException" will be raised. 

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                xiongqiwu xiongqi wu
                Reporter:
                xiongqiwu xiongqi wu
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: