[
https://issues.apache.org/jira/browse/FLINK-1352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14288569#comment-14288569
]
ASF GitHub Bot commented on FLINK-1352:
---------------------------------------
Github user StephanEwen commented on the pull request:
https://github.com/apache/flink/pull/328#issuecomment-71133987
I am not sure that the infinite number of tries is actually bad. This sort
of depends on the situation, I guess:
- On YARN, it may make sense, because the node will then go back into the
pool of available resource
- On standalone, it will anyways be there for Flink, so the TaskManager
might as well keep trying to offer itself for work. Think of a network
partitioning event - after the partitions re-joined, the cluster should work as
a whole again.
How about the following: We have a config parameter how long nodes should
attempt to register. YARN could set a timeout (say 2-5 minutes), while by
default, the timeout is infinite.
Concerning the attempt pause: Having attempts with exponential backoff (and
a cap) is the common thing (and I think it was the default before). Start with
a 50ms pause and double it each attempt and cap it at 1 or 2 minutes or so. If
you miss early attempts, the pause will not be long. If you missed an all
attempts within the first second, you are guaranteed to not wait more than
twice as long as you already waited anyways.
For the sake of transparency and making sure that the states are actually
in sync: How about we have three response messages for the registration attempt:
1. Refused (for whatever reason, the message should have a string that
the TM can log)
2. Accepted (with the assigned ID)
3. Already registered (with the assigned ID) - The current logic handles
this correctly as well, but this will allow us to log better at the TaskManager
and debug problems there much better. Since this is a mechanism which may have
weird cornercase behavior, it would be good to know as much about what was
happening as possible.
> Buggy registration from TaskManager to JobManager
> -------------------------------------------------
>
> Key: FLINK-1352
> URL: https://issues.apache.org/jira/browse/FLINK-1352
> Project: Flink
> Issue Type: Bug
> Components: JobManager, TaskManager
> Affects Versions: 0.9
> Reporter: Stephan Ewen
> Assignee: Till Rohrmann
> Fix For: 0.9
>
>
> The JobManager's InstanceManager may refuse the registration attempt from a
> TaskManager, because it has this taskmanager already connected, or,in the
> future, because the TaskManager has been blacklisted as unreliable.
> Unpon refused registration, the instance ID is null, to signal that refused
> registration. TaskManager reacts incorrectly to such methods, assuming
> successful registration
> Possible solution: JobManager sends back a dedicated "RegistrationRefused"
> message, if the instance manager returns null as the registration result. If
> the TastManager receives that before being registered, it knows that the
> registration response was lost (which should not happen on TCP and it would
> indicate a corrupt connection)
> Followup question: Does it make sense to have the TaskManager trying
> indefinitely to connect to the JobManager. With increasing interval (from
> seconds to minutes)?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)