Fabian Hueske commented on FLINK-9056:

I assume that the following happens: 

The client job submission call blocks while the JobManager tries to start the 
job. However, the job will never start because there are not enough slots to 
achieve the requested parallelism. At some point the Akka request times out and 
throws the reported exception.

I think it is OK to throw an exception, however it would be better if the 
exception would indicate why the job could not be started. If the situation is 
as I assumed, this won't be trivial, because right now the client times out and 
for a proper error message, the JM would need to propagate an exception.

> Job submission fails with AskTimeoutException if not enough slots are 
> available
> -------------------------------------------------------------------------------
>                 Key: FLINK-9056
>                 URL: https://issues.apache.org/jira/browse/FLINK-9056
>             Project: Flink
>          Issue Type: Improvement
>          Components: Job-Submission
>    Affects Versions: 1.5.0
>         Environment: * FLIP-6 enabled
>  * Local Flink instance with fixed number of TMs
>  * Job parallelism exceeds available slots
>            Reporter: Fabian Hueske
>            Assignee: yuqi
>            Priority: Major
> The error message if a job submission fails due to lack of available slots is 
> not helpful:
> {code:java}
> Caused by: akka.pattern.AskTimeoutException: Ask timed out on 
> [Actor[akka://flink/user/8f0fabba-4021-45b6-a1f7-b8afd6627640#-574617182|#-574617182]]
>  after [300000 ms]. Sender[null] sent message of type 
> "org.apache.flink.runtime.rpc.messages.LocalRpcInvocation".
>      at 
> akka.pattern.PromiseActorRef$$anonfun$1.apply$mcV$sp(AskSupport.scala:604)
>      at akka.actor.Scheduler$$anon$4.run(Scheduler.scala:126)
>      at 
> scala.concurrent.Future$InternalCallbackExecutor$.unbatchedExecute(Future.scala:601)
>      at 
> scala.concurrent.BatchingExecutor$class.execute(BatchingExecutor.scala:109)
>      at 
> scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:599)
>      at 
> akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(LightArrayRevolverScheduler.scala:329)
>      at 
> akka.actor.LightArrayRevolverScheduler$$anon$4.executeBucket$1(LightArrayRevolverScheduler.scala:280)
>      at 
> akka.actor.LightArrayRevolverScheduler$$anon$4.nextTick(LightArrayRevolverScheduler.scala:284)
>      at 
> akka.actor.LightArrayRevolverScheduler$$anon$4.run(LightArrayRevolverScheduler.scala:236)
>      at java.lang.Thread.run(Thread.java:748)
> {code}

This message was sent by Atlassian JIRA

Reply via email to