[ 
https://issues.apache.org/jira/browse/KAFKA-14657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17681549#comment-17681549
 ] 

Edoardo Comar commented on KAFKA-14657:
---------------------------------------

Hi mostly yes the command appear to have filed, 
I have an idea of how to fix it, by accepting the concurrent transaction 
exception as a possible good response. 
I'm more at a loss at how to write an integration test for this.

Besides that, the behaviour of the fenced producer is slightly different in the 
two cases, as the exception it gets on producing is different.

However that looks to be a minor inconsistency that could be fixed with 
documentation.

 

> Admin.fenceProducers fails when Producer has ongoing transaction - but 
> Producer gets fenced
> -------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-14657
>                 URL: https://issues.apache.org/jira/browse/KAFKA-14657
>             Project: Kafka
>          Issue Type: Bug
>          Components: admin
>            Reporter: Edoardo Comar
>            Assignee: Edoardo Comar
>            Priority: Major
>         Attachments: FenceProducerDuringTx.java, FenceProducerOutsideTx.java
>
>
> 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



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to