Hi,

Unfortunately, the FLIP-6 efforts are taking longer than expected and we won't 
have those changes to the REST API in the 1.4 release (which should happen in 
about a month).  We are planning to very quickly release 1.5 after that, with 
the changes to the REST API.

The only work-around I can think of so far is to use one cluster, i.e. one 
JobManager per job that you submit. This is actually what we started 
recommending a while ago and is something that we will recommend more 
aggressively in the Future because having only one Job per JobManager makes 
managing and debugging easier.

Best,
Aljoscha

> On 19. Oct 2017, at 09:27, Francisco Gonzalez Barea 
> <francisco.gonza...@piksel.com> wrote:
> 
> Hello,
> 
> Going back on this thread, quick question: Will this be supported in next 
> Flink version? If not, when is it expected to be included?
> 
> Regards
> 
> 
>> On 8 Aug 2017, at 15:46, Aljoscha Krettek <aljos...@apache.org 
>> <mailto:aljos...@apache.org>> wrote:
>> 
>> I quickly talked to Till about this. The new JobManager, once FLIP-6 is 
>> implemented, will have a new REST endpoint that allows submitting a JobGraph 
>> directly. With this, we no longer have to execute the user main() method in 
>> the WebRuntimeMonitor (which is a component that the current JobManager 
>> process loads to serve the web frontend and the REST interface).
>> 
>> This should solve the problem, but unfortunately it doesn't solve your 
>> current problem.
>> 
>> Best,
>> Aljoscha
>>> On 8. Aug 2017, at 10:26, Francisco Gonzalez Barea 
>>> <francisco.gonza...@piksel.com <mailto:francisco.gonza...@piksel.com>> 
>>> wrote:
>>> 
>>> Aha ok… Thanks for your answer Eron.
>>> 
>>> Regards
>>> 
>>> 
>>>> On 7 Aug 2017, at 19:04, Eron Wright <eronwri...@gmail.com 
>>>> <mailto:eronwri...@gmail.com>> wrote:
>>>> 
>>>> When you submit a program via the REST API, the main method executes 
>>>> inside the JobManager process.    Unfortunately a static variable is used 
>>>> to establish the execution environment that the program obtains from 
>>>> `ExecutionEnvironment.getExecutionEnvironment()`.  From the stack trace it 
>>>> appears that two main methods are executing simultaneously and one is 
>>>> corrupting the other.
>>>> 
>>>> On Mon, Aug 7, 2017 at 8:21 AM, Francisco Gonzalez Barea 
>>>> <francisco.gonza...@piksel.com <mailto:francisco.gonza...@piksel.com>> 
>>>> wrote:
>>>> Hi there!
>>>> 
>>>> We are doing some POCs submitting jobs remotely to Flink. We tried with 
>>>> Flink CLI and now we´re testing the Rest API. 
>>>> 
>>>> So the point is that when we try to execute a set of requests in an async 
>>>> way (using CompletableFutures) only a couple of them run successfully. For 
>>>> the rest we get the exception copied at the end of the email.
>>>> 
>>>> Do you know the reason for this?
>>>> 
>>>> Thanks in advance!!
>>>> Regards,
>>>> 
>>>> org.apache.flink.client.program.ProgramInvocationException: The main 
>>>> method caused an error.
>>>>   at 
>>>> org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:545)
>>>>   at 
>>>> org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:419)
>>>>   at 
>>>> org.apache.flink.client.program.OptimizerPlanEnvironment.getOptimizedPlan(OptimizerPlanEnvironment.java:80)
>>>>  at 
>>>> org.apache.flink.client.program.ClusterClient.getOptimizedPlan(ClusterClient.java:318)
>>>>  at 
>>>> org.apache.flink.runtime.webmonitor.handlers.JarActionHandler.getJobGraphAndClassLoader(JarActionHandler.java:72)
>>>>  at 
>>>> org.apache.flink.runtime.webmonitor.handlers.JarRunHandler.handleJsonRequest(JarRunHandler.java:61)
>>>>  at 
>>>> org.apache.flink.runtime.webmonitor.handlers.AbstractJsonRequestHandler.handleRequest(AbstractJsonRequestHandler.java:41)
>>>>  at 
>>>> org.apache.flink.runtime.webmonitor.RuntimeMonitorHandler.respondAsLeader(RuntimeMonitorHandler.java:109)
>>>>  at 
>>>> org.apache.flink.runtime.webmonitor.RuntimeMonitorHandlerBase.channelRead0(RuntimeMonitorHandlerBase.java:97)
>>>>  at 
>>>> org.apache.flink.runtime.webmonitor.RuntimeMonitorHandlerBase.channelRead0(RuntimeMonitorHandlerBase.java:44)
>>>>  at 
>>>> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>>>>  at 
>>>> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>>>>  at 
>>>> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>>>>  at io.netty.handler.codec.http.router.Handler.routed(Handler.java:62)
>>>>  at 
>>>> io.netty.handler.codec.http.router.DualAbstractHandler.channelRead0(DualAbstractHandler.java:57)
>>>>  at 
>>>> io.netty.handler.codec.http.router.DualAbstractHandler.channelRead0(DualAbstractHandler.java:20)
>>>>  at 
>>>> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>>>>  at 
>>>> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>>>>  at 
>>>> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>>>>  at 
>>>> org.apache.flink.runtime.webmonitor.HttpRequestHandler.channelRead0(HttpRequestHandler.java:159)
>>>>  at 
>>>> org.apache.flink.runtime.webmonitor.HttpRequestHandler.channelRead0(HttpRequestHandler.java:65)
>>>>  at 
>>>> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>>>>  at 
>>>> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>>>>  at 
>>>> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>>>>  at 
>>>> io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
>>>>  at 
>>>> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>>>>  at 
>>>> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>>>>  at 
>>>> io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)
>>>>  at 
>>>> io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:147)
>>>>  at 
>>>> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>>>>  at 
>>>> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>>>>  at 
>>>> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:847)
>>>>  at 
>>>> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
>>>>  at 
>>>> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
>>>>  at 
>>>> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
>>>>  at 
>>>> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
>>>>  at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
>>>>  at 
>>>> io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
>>>>  at 
>>>> io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
>>>>  at java.lang.Thread.run(Thread.java:748)
>>>>  \nCaused by: java.util.ConcurrentModificationException
>>>>  at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
>>>>  at java.util.ArrayList$Itr.next(ArrayList.java:851)
>>>>  at 
>>>> org.apache.flink.api.java.operators.OperatorTranslation.translateToPlan(OperatorTranslation.java:49)
>>>>  at 
>>>> org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:1065)
>>>>  at 
>>>> org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:1032)
>>>>  at 
>>>> org.apache.flink.client.program.OptimizerPlanEnvironment.execute(OptimizerPlanEnvironment.java:47)
>>>>  at 
>>>> com.piksel.sequoia.media.common.launcher.Launcher.main(Launcher.java:56)
>>>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>  at 
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>  at 
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>  at java.lang.reflect.Method.invoke(Method.java:498)
>>>>  at 
>>>> org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:528)
>>>>  ... 39 more\n”}
>>>> 
>>>> 
>>>> This message is private and confidential. If you have received this 
>>>> message in error, please notify the sender or serviced...@piksel.com 
>>>> <mailto:serviced...@piksel.com> and remove it from your system.
>>>> 
>>>> Piksel Inc is a company registered in the United States, 2100 Powers Ferry 
>>>> Road SE, Suite 400, Atlanta, GA 30339
>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to