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

Admin.fenceProducers fails when Producer has ongoing transaction - but Producer gets fenced

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • admin
    • None

    Description

      Admin.fenceProducers()
      fails with a ConcurrentTransactionsException if invoked when a Producer has a transaction ongoing.
      However, further attempts by that producer to produce fail with InvalidProducerEpochException and the producer is not re-usable,
      cannot abort/commit as it is fenced.

      An InvalidProducerEpochException is also logged as error on the broker

      [2023-01-27 17:16:32,220] ERROR [ReplicaManager broker=1] Error processing append operation on partition topic-0 (kafka.server.ReplicaManager)
      org.apache.kafka.common.errors.InvalidProducerEpochException: Epoch of producer 1062 at offset 84 in topic-0 is 0, which is smaller than the last seen epoch

       

      Conversely, if Admin.fenceProducers()
      is invoked while there is no open transaction, the call succeeds and further attempts by that producer to produce fail with ProducerFenced.

      see attached snippets

      As the caller of Admin.fenceProducers() is likely unaware of the producers state, the call should succeed regardless

      Attachments

        1. FenceProducerDuringTx.java
          3 kB
          Edoardo Comar
        2. FenceProducerOutsideTx.java
          2 kB
          Edoardo Comar

        Activity

          People

            ecomar Edoardo Comar
            ecomar Edoardo Comar
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: