Ilya Soin created FLINK-37589:
---------------------------------

             Summary: Job submission via REST API is not thread safe
                 Key: FLINK-37589
                 URL: https://issues.apache.org/jira/browse/FLINK-37589
             Project: Flink
          Issue Type: Bug
          Components: Client / Job Submission
    Affects Versions: 1.20.1, 1.20.0
            Reporter: Ilya Soin


Sometimes when Flink K8S Operator deploys more than one job in parallel, some 
jobs are deployed twice, thrice, etc. For example, if 5 jobs are being deployed 
at the same time, instead of jobs 1,2,3,4,5 on the cluster there can be jobs 
1,1,3,4,5 or 1,2,2,3,5 or even 1,2,2,2,5, and so on. It happens all the time 
with python jobs and rarely with other types of jobs. The easiest way to 
reproduce is to deploy 2-3 python jobs on a standalone Flink cluster in 
parallel.

The issue is definitely not in the Operator, has has been discussed here and 
here. I was able to fix it by introducing a synchronized lock in the 
[JarRunHandler|https://github.com/apache/flink/blob/release-1.20/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/JarRunHandler.java#L108]
 like this:
{code:java}
 () -> {
               synchronized (runLock) {
                     return applicationRunner.run(gateway, program, 
effectiveConfiguration);
               }
           },
{code}
I'm not sure if it's the best solution to this problem and could use some 
pointers / discussion. I suspect that we see it mostly on python jobs because 
they take longer to deploy and leave more time to "overlap".



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

Reply via email to