Rajini Sivaram created KAFKA-6131:
-------------------------------------

             Summary: 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: 1.0.0
            Reporter: Rajini Sivaram
            Assignee: Rajini Sivaram


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)

Reply via email to