hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Nauroth (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MAPREDUCE-5616) MR Client-AppMaster RPC max retries on socket timeout is too high.
Date Fri, 08 Nov 2013 18:50:17 GMT

    [ https://issues.apache.org/jira/browse/MAPREDUCE-5616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13817567#comment-13817567

Chris Nauroth commented on MAPREDUCE-5616:

The existing config override is sufficient for "connection refused" errors.  It doesn't cover
"connection timeout" errors, which is configured separately in the base RPC client code.

After the AM exits, we would expect connection attempts to cause an immediate connection refused
error, not a longer connection timeout error.  After all, the packets can get to their destination.
 There's just no server listening anymore.  The reason I saw connection timeouts was a side
effect of a feature of Windows Firewall called Stealth Mode.  This feature is on by default,
and it intentionally drops outbound TCP RST packets for connections initiated against a port
with no server listening.


Without getting the RST, the client doesn't know that a connection has been refused, and so
it just has to wait for the longer timeout condition.  It's possible to disable stealth mode
by setting a registry key and restarting the firewall:


That article might be out of date though, because I found that this registry key was really
at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile
in my environments.

My only known repro right now is on Windows.  I'm leaving this information here for anyone
who might notice similar problems on other RPC interactions.  I'd still like to get a configuration
patch into the client for this.

> MR Client-AppMaster RPC max retries on socket timeout is too high.
> ------------------------------------------------------------------
>                 Key: MAPREDUCE-5616
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5616
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 3.0.0, 2.2.0
>            Reporter: Chris Nauroth
>            Assignee: Chris Nauroth
> MAPREDUCE-3811 introduced a separate config key for overriding the max retries applied
to RPC connections from the MapReduce Client to the MapReduce Application Master.  This was
done to make failover from the AM to the MapReduce History Server faster in the event that
the AM completes while the client thinks it's still running.  However, the RPC client uses
a separate setting for socket timeouts, and this one is not overridden.  The default for this
is 45 retries with a 20-second timeout on each retry.  This means that in environments subject
to connection timeout instead of connection refused, the client waits 15 minutes for failover.

This message was sent by Atlassian JIRA

View raw message