[ 
https://issues.apache.org/jira/browse/KAFKA-5322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16034177#comment-16034177
 ] 

ASF GitHub Bot commented on KAFKA-5322:
---------------------------------------

GitHub user apurvam opened a pull request:

    https://github.com/apache/kafka/pull/3204

    KAFKA-5322:  Add an `OPERATION_NOT_ATTEMPTED` error code

    In the `AddPartitionsToTxn` request handling, if even one partition fails 
authorization checks, the entire request is essentially failed. However, the 
`AddPartitionsToTxnResponse` today will only contain the error codes for the 
topics which failed authorization. It will have no error code for the topics 
which succeeded, making it inconsistent with other APIs.
    
    This patch adds a new error code `OPERATION_NOT_ATTEMPTED` which is 
returned for the successful partitions to indicate that they were not added to 
the transaction.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/apurvam/kafka 
KAFKA-5322-add-operation-not-attempted-for-add-partitions

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/kafka/pull/3204.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 #3204
    
----
commit f454d495df20764105a42fe5e66351683e1a23ac
Author: Apurva Mehta <apu...@confluent.io>
Date:   2017-06-02T04:27:30Z

    WIP

commit 764d8dc713ffde5703d58eb2a485567c6552f557
Author: Apurva Mehta <apu...@confluent.io>
Date:   2017-06-02T04:58:02Z

    Update comments and client code

commit 7651210a7156a54376ff8a827b9220f60ff0ff20
Author: Apurva Mehta <apu...@confluent.io>
Date:   2017-06-02T05:38:49Z

    Add test, fix checkstyle

----


> Resolve AddPartitions response error code inconsistency
> -------------------------------------------------------
>
>                 Key: KAFKA-5322
>                 URL: https://issues.apache.org/jira/browse/KAFKA-5322
>             Project: Kafka
>          Issue Type: Sub-task
>          Components: clients, core, producer 
>            Reporter: Jason Gustafson
>            Assignee: Apurva Mehta
>            Priority: Blocker
>              Labels: exactly-once
>             Fix For: 0.11.0.0
>
>
> The AddPartitions request does not support partial failures. Either all 
> partitions are successfully added to the transaction or none of them are. 
> Currently we return a separate error code for each partition that was added 
> to the transaction, which begs the question of what error code to return if 
> we have not actually encountered a fatal partition-level error for some 
> partition. For example, suppose we send AddPartitions with partitions A and 
> B. If A is not authorized, we will not even attempt to add B to the 
> transaction, but what error code should we use. The current solution is to 
> only include partition A and its error code in the response, but this is a 
> little inconsistent with most other request types. Alternatives that have 
> been proposed:
> 1. Instead of a partition-level error, use one global error. We can add a 
> global error message to return friendlier details to the user about which 
> partition had a fault. The downside is that we would have to parse the 
> message contents if we wanted to do any partition-specific handling. We could 
> not easily fill the set of topics in {{TopicAuthorizationException}} for 
> example.
> 2. We can add a new error code to indicate that the broker did not even 
> attempt to add the partition to the transaction. For example: 
> OPERATION_NOT_ATTEMPTED or something like that. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to