Current state: Accepted
Discussion thread: here
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
The DescribeLogDirs API is used to get information about the log directories of Kafka brokers. If an Authorizer is used, the user needs to have Describe on the Cluster resource. At the moment, if the user does not have this necessary authorization, an empty response is returned, and clients interpret an empty response as a CLUSTER_AUTHORIZATION_FAILED error [0.
To make this API consistent with all others, and to effectively identify potential UNKNOWN_SERVER_ERRORs, this KIP proposes adding a top-level error code field.
Bump DescribeLogDirsRequest and DescribeLogDirsResponse to v3 and add a new field ErrorCode to DescribeLogDirsResponse.
The necessary components, KafkaApis, DescribeLogDirsRequest and KafkaAdminClient, will be updated to use this new field if available.
Compatibility, Deprecation, and Migration Plan
N/A, only new clients will use the new version, this does not change the behaviour of existing clients.
If there are alternative ways of accomplishing the same thing, what were they? The purpose of this section is to motivate why the design is the way it is and not some other way.