Efrat Levitan created FLINK-40093:
-------------------------------------

             Summary: Race condition between watermark alignment and idleness 
detection locks split in idle
                 Key: FLINK-40093
                 URL: https://issues.apache.org/jira/browse/FLINK-40093
             Project: Flink
          Issue Type: Bug
          Components: Runtime / Task
            Reporter: Efrat Levitan


Usually pauseOrResumeSplits pauses idleness timer for the split so it isn't 
marked idle while paused. However with low idleness timeout (observed with 1s) 
+ low allowed WM drift, a race condition could cause paused splits to never 
resume though they have records:
 # A split becomes paused due to too advanced records.
 # pauseOrResumeSplits pauses the split.
 # pauseOrResumeSplits reaches to pause the split idleness clock but is 
\{idlenessTimeout} too late, and the split becomes idle.
 # The watermark advances but the split is excluded from the watermark 
alignment check due to its idleness.
 # More records arrive but the split is paused at the connector level so they 
aren't processed, nor seen by watermarkGenerator so it still considers the 
split idle

A possible fix could be preserving the part where idle splits are excluded from 
alignment pause (to not override their idle status) while allowing alignment 
check to resume splits even if they are currently idle. They are considered 
idle until they emit the next record.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to