You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Ismael Juma (JIRA)" <ji...@apache.org> on 2017/10/27 02:15:01 UTC

[jira] [Resolved] (KAFKA-6131) Transaction markers are sometimes discarded if txns complete concurrently

     [ https://issues.apache.org/jira/browse/KAFKA-6131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ismael Juma resolved KAFKA-6131.
--------------------------------
       Resolution: Fixed
    Fix Version/s: 1.1.0
                   0.11.0.2
                   1.0.0

> Transaction markers are sometimes discarded if txns complete concurrently
> -------------------------------------------------------------------------
>
>                 Key: KAFKA-6131
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6131
>             Project: Kafka
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 0.11.0.1, 1.0.0
>            Reporter: Rajini Sivaram
>            Assignee: Rajini Sivaram
>             Fix For: 1.0.0, 0.11.0.2, 1.1.0
>
>
> Concurrent tests being added under KAFKA-6096 for transaction coordinator fail to complete some transactions when multiple transactions are completed concurrently.
> The problem is with the following code snippet - there are two very similar uses of concurrent map in {{TransactionMarkerChannelManager}} and the test fails because some transaction markers are discarded. {{getOrElseUpdate}} in scala maps are not atomic. The test passes consistently with one thread.
> {quote}
> val markersQueuePerBroker: concurrent.Map[Int, TxnMarkerQueue] = new ConcurrentHashMap[Int, TxnMarkerQueue]().asScala
> val brokerRequestQueue = markersQueuePerBroker.getOrElseUpdate(brokerId, new TxnMarkerQueue(broker))
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)