You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Anubhav Dhoot (JIRA)" <ji...@apache.org> on 2015/03/16 15:43:38 UTC

[jira] [Commented] (YARN-3351) AppMaster tracking URL is broken in HA

    [ https://issues.apache.org/jira/browse/YARN-3351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14363284#comment-14363284 ] 

Anubhav Dhoot commented on YARN-3351:
-------------------------------------

The issue is the AM tracking link code is sharing the same common codeĀ as the NM web app. After YARN-2713 this code returns the first RM in HA case and letting is redirect to the active HA. This works in the case of NM as its just getting a remote url.
But in the case of AM tracking URL this is used by the caller to bind to the address. Hence if in HA if anything other than the first RM is active, we end up trying to bind to the other RM address and fail with the error desribed.

> AppMaster tracking URL is broken in HA
> --------------------------------------
>
>                 Key: YARN-3351
>                 URL: https://issues.apache.org/jira/browse/YARN-3351
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: webapp
>            Reporter: Anubhav Dhoot
>            Assignee: Anubhav Dhoot
>
> After YARN-2713, the AppMaster link is broken in HA.  To repro 
> a) setup RM HA and ensure the first RM is not active,
> b) run a long sleep job and view the tracking url on the RM applications page
> The log and full stack trace is shown below
> {noformat}
> 2015-02-05 20:47:43,478 WARN org.mortbay.log: /proxy/application_1423182188062_0002/: java.net.BindException: Cannot assign requested address
> {noformat}
> {noformat}
> java.net.BindException: Cannot assign requested address
> 	at java.net.PlainSocketImpl.socketBind(Native Method)
> 	at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
> 	at java.net.Socket.bind(Socket.java:631)
> 	at java.net.Socket.<init>(Socket.java:423)
> 	at java.net.Socket.<init>(Socket.java:280)
> 	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
> 	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
> 	at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
> 	at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
> 	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
> 	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
> 	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
> 	at org.apache.hadoop.yarn.server.webproxy.WebAppProxyServlet.proxyLink(WebAppProxyServlet.java:188)
> 	at org.apache.hadoop.yarn.server.webproxy.WebAppProxyServlet.doGet(WebAppProxyServlet.java:345)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)