[ https://issues.apache.org/jira/browse/KAFKA-16788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17847385#comment-17847385 ]
Ashok commented on KAFKA-16788: ------------------------------- [~gharris1727] Thanks. yes, I am working on the fix. I will raise a PR next week. > Resource leakage due to absence of close() call on connector start failure > -------------------------------------------------------------------------- > > Key: KAFKA-16788 > URL: https://issues.apache.org/jira/browse/KAFKA-16788 > Project: Kafka > Issue Type: Bug > Components: connect > Reporter: Ashok > Assignee: Ashok > Priority: Critical > > We have identified a potential issue in the WorkerConnector class of the > Connect framework. Specifically, the close() method is not being called on > the connector when the connector fails to start due to various reasons. This > omission prevents the connector from releasing any resources that were > created or started as part of the start() method. As a result, these > resources remain allocated even after the connector has failed to start, > leading to resource leakage. > To address this issue, we propose modifying the WorkerConnector class to > ensure that the close() method is called on the connector whenever the > connector fails to start. This change will allow the connector to properly > release its resources, preventing resource leakage. > *Steps to Reproduce:* > # Initiate a connector that creates or allocates resources (for instance, > threads) during the execution of the start() method. > # Generate a problem that, during the start() process, either triggers an > exception or invokes the raiseError(Exception e) method of the > WorkerConnectorContext. > # Notice that the close() method is not invoked on the connector, resulting > in resource leakage, as the stop() method is where the resources are > typically closed. > In our scenario, the issue was related to threads not being properly closed. > These threads were initiated as part of the start() method in the connector. > *Expected Result:* > When a connector fails to start, the close() method should be called to allow > the connector to release its resources. > *Actual Result:* > The close() method is not called when a connector fails to start, leading to > resource leakage. -- This message was sent by Atlassian Jira (v8.20.10#820010)