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)