[
https://issues.apache.org/jira/browse/KAFKA-10899?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
lizhao updated KAFKA-10899:
---------------------------
Priority: Major (was: Minor)
> Closing check Before Producer's BufferPool allocat memory
> ----------------------------------------------------------
>
> Key: KAFKA-10899
> URL: https://issues.apache.org/jira/browse/KAFKA-10899
> Project: Kafka
> Issue Type: Improvement
> Components: producer
> Affects Versions: 2.8.0
> Reporter: lizhao
> Priority: Major
>
> [#9817|https://github.com/apache/kafka/pull/9817] Closing check Before
> Producer's BufferPool allocat memory
> According to the idea of [#7967|https://github.com/apache/kafka/pull/7967],
> it made BufferPool support closing.
> Now, there are two places in the BufferPool#allocate() method to judge the
> 'closed' flag. One is when 'lock' is acquired, and the other is when
> 'condition' is awakened.
> However, if the memory is allocated outside the 'lock' code block after
> 'freeup',
> Therefore, it is possible for another thread to modify the 'closed' flag,
> causing this part of memory to be allocated in vain.
> So two modifications have been made,
> One is to add the 'volatile' modifier before 'closed',
> One is to determine whether to 'closed' before allocating memory.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)