There is some internal magic going on. Have a look at the interface the
handlers work against, you will see that the timeout parameter is
annotated with @RpcTimeout. The AkkaInvocationHandler extracts the
timeout based on this annotation and uses it internally.
On 24/08/2021 12:05, Juha Mynttinen wrote:
Hey,
I was looking at the web.timeout configuration option described as
"Timeout for asynchronous operations by the web monitor in
milliseconds". I'm interested in where and how it's used internally.
I've understood it's the timeout when the Web UI calls something using
Rpc (Akka). Correct? Unfortunately, I can't spot where the parameter
is actually used so that it would have any effect. Maybe I've missed
something?
The param is defined in WebOptions and used
in RestHandlerConfiguration. The param is stored
in LeaderRetrievalHandler [1]. That class merely acts as a holder for
the param and e.g. the REST handlers use it. If we look at one of the
handlers, e.g. ClusterOverviewHandler, in the end it
calls requestClusterOverview in Dispatcher [2]. That has two usages of
the timeOut, but if you follow them all the way, the param is unused.
I've checked multiple handlers and I couldn't spot any that would
really use the param for something.
Retrieving the leader (that is needed before it can be called) has its
own timeout [3], but AFAIK that's hard-coded and doesn't have anything
to do with web.timeout.
So, simple question - where's the param used? I hope I've just missed
something, and it's used somewhere....
[1]
https://github.com/apache/flink/blob/c6997c97c575d334679915c328792b8a3067cfb5/flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/LeaderRetrievalHandler.java#L57
<https://github.com/apache/flink/blob/c6997c97c575d334679915c328792b8a3067cfb5/flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/LeaderRetrievalHandler.java#L57>
[2]
https://github.com/apache/flink/blob/4a78097d0385749daceafd8326930c8cc5f26f1a/flink-runtime/src/main/java/org/apache/flink/runtime/dispatcher/Dispatcher.java#L537
<https://github.com/apache/flink/blob/4a78097d0385749daceafd8326930c8cc5f26f1a/flink-runtime/src/main/java/org/apache/flink/runtime/dispatcher/Dispatcher.java#L537>
[3]
https://github.com/apache/flink/blob/026142d7770afb285d8e73d0aea5939881d3d713/flink-runtime/src/main/java/org/apache/flink/runtime/entrypoint/component/DefaultDispatcherResourceManagerComponentFactory.java#L140
<https://github.com/apache/flink/blob/026142d7770afb285d8e73d0aea5939881d3d713/flink-runtime/src/main/java/org/apache/flink/runtime/entrypoint/component/DefaultDispatcherResourceManagerComponentFactory.java#L140>
Regards,
Juha
--
Regards,
Juha