You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Chris Egerton (JIRA)" <ji...@apache.org> on 2019/03/06 23:59:00 UTC
[jira] [Created] (KAFKA-8058) ConnectRestExtensionContext does not
return list of connectors from its ConnectClusterState
Chris Egerton created KAFKA-8058:
------------------------------------
Summary: ConnectRestExtensionContext does not return list of connectors from its ConnectClusterState
Key: KAFKA-8058
URL: https://issues.apache.org/jira/browse/KAFKA-8058
Project: Kafka
Issue Type: Bug
Components: KafkaConnect
Affects Versions: 2.1.1, 2.1.0, 2.0.1, 2.0.0
Reporter: Chris Egerton
Assignee: Chris Egerton
Title is not entirely accurate, but describes the most common way this bug presents itself.
The [ConnectClusterStateImpl|https://github.com/apache/kafka/blob/ab00c51b6362b41071ae32611ebf698ba9c221ee/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/health/ConnectClusterStateImpl.java] used by Kafka Connect to provide cluster information to REST extensions makes an asynchronous call to [Herder.connectors(...)|https://github.com/apache/kafka/blob/ab00c51b6362b41071ae32611ebf698ba9c221ee/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/Herder.java#L70] in its [connectors()|https://github.com/apache/kafka/blob/ab00c51b6362b41071ae32611ebf698ba9c221ee/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/health/ConnectClusterStateImpl.java#L46] method that populates a list of connector names, then immediately returns that list of connector names. If the list is read soon after it is returned, it's possible it will be empty or at least not completely populated.
Since the method is implicitly synchronous (no callback logic is involved in its parameters or return values, and there is no documentation indicating asynchronous behavior for the [ConnectClusterState.connectors()|https://github.com/apache/kafka/blob/ab00c51b6362b41071ae32611ebf698ba9c221ee/connect/api/src/main/java/org/apache/kafka/connect/health/ConnectClusterState.java#L28-L34] method), this should be remedied by adding a wait for the Herder.connectors(...) method to complete in the ConnectClusterStateImpl.connectors() method.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)