[
https://issues.apache.org/jira/browse/KAFKA-19874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18040064#comment-18040064
]
Uladzislau Blok commented on KAFKA-19874:
-----------------------------------------
[~lightzhao] If this change is not planed (as I understand from PR), may be it
makes sense to close ticket?
> Fix resource leak in TopicBasedRemoteLogMetadataManager initialization
> ----------------------------------------------------------------------
>
> Key: KAFKA-19874
> URL: https://issues.apache.org/jira/browse/KAFKA-19874
> Project: Kafka
> Issue Type: Bug
> Components: core
> Affects Versions: 4.1.0
> Reporter: lightzhao
> Priority: Major
>
> ## Problem
> There is a resource leak in the TopicBasedRemoteLogMetadataManager
> initialization
> process. If ProducerManager is created successfully but ConsumerManager
> creation
> fails, the ProducerManager instance is not properly closed, leading to
> resource
> leaks (e.g., unclosed Kafka producer, threads, network connections).
> ## Current Code (Problematic)
> lock.writeLock().lock();
> try {
> producerManager = new ProducerManager(rlmmConfig, partitioner);
> consumerManager = new ConsumerManager(rlmmConfig,
> remotePartitionMetadataStore, partitioner, time);
> consumerManager.startConsumerThread();
> // If exception occurs here, producerManager is not closed
> } catch (Exception e) {
> log.error("Encountered error while initializing producer/consumer", e);
> initializationFailed = true;
> } finally {
> lock.writeLock().unlock();
> }## Solution
> Use temporary variables to hold manager instances and only assign to instance
> variables after successful initialization. Clean up temporary resources in
> the
> catch block if any exception occurs.
> ## Impact
> - Prevents resource leaks during initialization failures
> - Ensures proper cleanup of Kafka clients
> - Improves system stability and resource management
--
This message was sent by Atlassian Jira
(v8.20.10#820010)