[
https://issues.apache.org/jira/browse/KAFKA-5351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16032081#comment-16032081
]
ASF GitHub Bot commented on KAFKA-5351:
---------------------------------------
GitHub user apurvam opened a pull request:
https://github.com/apache/kafka/pull/3184
KAFKA-5351: Reset pending state when returning an error in
appendTransactionToLog
Without this patch, future client retries would get the
`CONCURRENT_TRANSACTIONS` error code indefinitely, since the pending state
wouldn't be cleared when the append to the log failed.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apurvam/kafka
KAFKA-5351-clear-pending-state-on-retriable-error
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/kafka/pull/3184.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #3184
----
commit 518284b3a04b7df11c9689ac36a1fea8b50e852d
Author: Apurva Mehta <[email protected]>
Date: 2017-05-31T22:07:24Z
Reset pending state when returing an error in appendTransactionToLog
----
> Broker clean bounce test puts the broker into a 'CONCURRENT_TRANSACTIONS'
> state permanently
> -------------------------------------------------------------------------------------------
>
> Key: KAFKA-5351
> URL: https://issues.apache.org/jira/browse/KAFKA-5351
> Project: Kafka
> Issue Type: Sub-task
> Components: clients, core, producer
> Reporter: Apurva Mehta
> Assignee: Apurva Mehta
> Priority: Blocker
> Labels: exactly-once
> Fix For: 0.11.0.0
>
> Attachments: kafka-5351.logs.tar.gz
>
>
> In the broker clean bounce test, sometimes the consumer just hangs on a
> request to the transactional coordinator because it keeps getting a
> `CONCURRENT_TRANSACTIONS` error. This continues for 30 seconds, until the
> process is killed.
> {noformat}
> [2017-05-31 04:54:14,053] DEBUG TransactionalId my-second-transactional-id --
> Received FindCoordinator response with error NONE
> (org.apache.kafka.clients.producer.internals.TransactionManager)
> [2017-05-31 04:54:14,053] DEBUG TransactionalId: my-second-transactional-id
> -- Sending transactional request (transactionalId=my-second-transactional-id,
> producerId=2000, producerEpoch=0, result=COMMIT)
> (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,053] TRACE TransactionalId: my-second-transactional-id
> -- Waiting 100ms before resending a transactional request
> (transactionalId=my-second-transactional-id, producerId=2000,
> producerEpoch=0, result=COMMIT)
> (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,154] TRACE TransactionalId: my-second-transactional-id
> -- Sending transactional request (transactionalId=my-second-transactional-id,
> producerId=2000, producerEpoch=0, result=COMMIT) to node 1
> (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,191] TRACE Got transactional response for
> request:(transactionalId=my-second-transactional-id, producerId=2000,
> producerEpoch=0, result=COMMIT)
> (org.apache.kafka.clients.producer.internals.TransactionManager)
> [2017-05-31 04:54:14,191] DEBUG TransactionalId my-second-transactional-id --
> Received EndTxn response with error COORDINATOR_NOT_AVAILABLE
> (org.apache.kafka.clients.producer.internals.TransactionManager)
> [2017-05-31 04:54:14,192] DEBUG TransactionalId: my-second-transactional-id
> -- Sending transactional request (type=FindCoordinatorRequest,
> coordinatorKey=my-second-transactional-id, coordinatorType=TRANSACTION)
> (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,192] TRACE TransactionalId: my-second-transactional-id
> -- Sending transactional request (type=FindCoordinatorRequest,
> coordinatorKey=my-second-transactional-id, coordinatorType=TRANSACTION) to
> node 3 (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,193] TRACE Got transactional response for
> request:(type=FindCoordinatorRequest,
> coordinatorKey=my-second-transactional-id, coordinatorType=TRANSACTION)
> (org.apache.kafka.clients.producer.internals.TransactionManager)
> [2017-05-31 04:54:14,193] DEBUG TransactionalId my-second-transactional-id --
> Received FindCoordinator response with error NONE
> (org.apache.kafka.clients.producer.internals.TransactionManager)
> [2017-05-31 04:54:14,193] DEBUG TransactionalId: my-second-transactional-id
> -- Sending transactional request (transactionalId=my-second-transactional-id,
> producerId=2000, producerEpoch=0, result=COMMIT)
> (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,193] TRACE TransactionalId: my-second-transactional-id
> -- Waiting 100ms before resending a transactional request
> (transactionalId=my-second-transactional-id, producerId=2000,
> producerEpoch=0, result=COMMIT)
> (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,294] TRACE TransactionalId: my-second-transactional-id
> -- Sending transactional request (transactionalId=my-second-transactional-id,
> producerId=2000, producerEpoch=0, result=COMMIT) to node 1
> (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,294] TRACE Got transactional response for
> request:(transactionalId=my-second-transactional-id, producerId=2000,
> producerEpoch=0, result=COMMIT)
> (org.apache.kafka.clients.producer.internals.TransactionManager)
> [2017-05-31 04:54:14,295] DEBUG TransactionalId my-second-transactional-id --
> Received EndTxn response with error CONCURRENT_TRANSACTIONS
> (org.apache.kafka.clients.producer.internals.TransactionManager)
> [2017-05-31 04:54:14,295] DEBUG TransactionalId: my-second-transactional-id
> -- Sending transactional request (transactionalId=my-second-transactional-id,
> producerId=2000, producerEpoch=0, result=COMMIT)
> (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,295] TRACE TransactionalId: my-second-transactional-id
> -- Waiting 100ms before resending a transactional request
> (transactionalId=my-second-transactional-id, producerId=2000,
> producerEpoch=0, result=COMMIT)
> (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,395] TRACE TransactionalId: my-second-transactional-id
> -- Sending transactional request (transactionalId=my-second-transactional-id,
> producerId=2000, producerEpoch=0, result=COMMIT) to node 1
> (org.apache.kafka.clients.producer.internals.Sender)
> [2017-05-31 04:54:14,398] TRACE Got transactional response for
> request:(transactionalId=my-second-transactional-id, producerId=2000,
> producerEpoch=0, result=COMMIT)
> (org.apache.kafka.clients.producer.internals.TransactionManager)
> [2017-05-31 04:54:14,398] DEBUG TransactionalId my-second-transactional-id --
> Received EndTxn response with error CONCURRENT_TRANSACTIONS
> (org.apache.kafka.clients.producer.internals.TransactionManager)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)