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)