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)

Reply via email to