gaoyunhaii opened a new pull request #11858:
URL: https://github.com/apache/flink/pull/11858


   ## What is the purpose of the change
   
   This PR tries to fix the issue caused by not stopping waiting on the buffer 
provider when the required buffers are fulfilled when recycling the exclusive 
buffers. If we do not stop waiting, we could not reuse the floating buffers 
returned when recycling the exclusive buffers. 
   
   Special care needs to taken that there might be case that the listener has 
been picked out from the buffer pool for notifying of new buffer when the input 
channel is adding exclusive buffer. In this case, the listener would not 
actually removed from the provider and we could not reset the waiting flag, 
otherwise the listener might be added twice in the buffer provider.
   
   ## Brief change log
   
   - fa6a9de78920441c0b562e936b8a438776ab4bbe removes the listener when the 
when exclusive buffer fulfills the required buffers.
   
   ## Verifying this change
   
   This change added tests and can be verified as follows:
   
   - Add UT to verify the waiting is stopped as expected.
   - The failure in 
[FLINK-17182](https://issues.apache.org/jira/browse/FLINK-17182) does not 
occurs when running that UT repeatedly. 
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): **no**
     - The public API, i.e., is any changed class annotated with 
`@Public(Evolving)`: **no**
     - The serializers: **no**
     - The runtime per-record code paths (performance sensitive): **no**
     - Anything that affects deployment or recovery: JobManager (and its 
components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: **no**
     - The S3 file system connector: **no**
   
   ## Documentation
   
     - Does this pull request introduce a new feature? **no**
     - If yes, how is the feature documented? **not applicable**


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to