[ 
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)

Reply via email to