[ 
https://issues.apache.org/jira/browse/TWILL-220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Terence Yim reassigned TWILL-220:
---------------------------------

    Assignee: Terence Yim

> ResourceReportClient should not error log
> -----------------------------------------
>
>                 Key: TWILL-220
>                 URL: https://issues.apache.org/jira/browse/TWILL-220
>             Project: Apache Twill
>          Issue Type: Bug
>            Reporter: Albert Shau
>            Assignee: Terence Yim
>             Fix For: 0.11.0
>
>
> If the ResourceReportClient is unable to fetch the resource report, it logs 
> an error with a big stack trace. I have seen cluster setups where the 
> hostname are not set up correctly, so the call always fails. In those cases, 
> you end up with logs like:
> {noformat}
> 2017-02-24 06:45:09,542 - ERROR 
> [reporter-scheduler:o.a.t.y.ResourceReportClient@59] - Exception getting 
> resource report from http://xxxxxx:43931/resources.
> java.net.ConnectException: Connection refused
>         at java.net.PlainSocketImpl.socketConnect(Native Method) 
> ~[na:1.7.0_75]
>         at 
> java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
> ~[na:1.7.0_75]
>         at 
> java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
>  ~[na:1.7.0_75]
>         at 
> java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
> ~[na:1.7.0_75]
>         at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
> ~[na:1.7.0_75]
>         at java.net.Socket.connect(Socket.java:579) ~[na:1.7.0_75]
>         at java.net.Socket.connect(Socket.java:528) ~[na:1.7.0_75]
>         at sun.net.NetworkClient.doConnect(NetworkClient.java:180) 
> ~[na:1.7.0_75]
>         at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 
> ~[na:1.7.0_75]
>         at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
> ~[na:1.7.0_75]
>         at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) 
> ~[na:1.7.0_75]
>         at sun.net.www.http.HttpClient.New(HttpClient.java:308) ~[na:1.7.0_75]
>         at sun.net.www.http.HttpClient.New(HttpClient.java:326) ~[na:1.7.0_75]
>         at 
> sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:997)
>  ~[na:1.7.0_75]
>         at 
> sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:933)
>  ~[na:1.7.0_75]
>         at 
> sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:851)
>  ~[na:1.7.0_75]
>         at 
> sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1301)
>  ~[na:1.7.0_75]
>         at java.net.URL.openStream(URL.java:1037) ~[na:1.7.0_75]
>         at 
> org.apache.twill.yarn.ResourceReportClient.get(ResourceReportClient.java:52) 
> ~[org.apache.twill.twill-yarn-0.9.0.jar:na]
>         at 
> org.apache.twill.yarn.YarnTwillController.getResourceReport(YarnTwillController.java:330)
>  [co.cask.cdap.cdap-app-fabric-4.0.1.jar:na]
>         at 
> co.cask.cdap.app.guice.ImpersonatedTwillController$1.call(ImpersonatedTwillController.java:86)
>  [na:na]
>         at 
> co.cask.cdap.app.guice.ImpersonatedTwillController$1.call(ImpersonatedTwillController.java:82)
>  [na:na]
>         at 
> co.cask.cdap.common.security.ImpersonationUtils$1.run(ImpersonationUtils.java:46)
>  [na:na]
>         at java.security.AccessController.doPrivileged(Native Method) 
> [na:1.7.0_75]
>         at javax.security.auth.Subject.doAs(Subject.java:415) [na:1.7.0_75]
>         at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1709)
>  [hadoop-common-2.7.1.2.4.2.0-258.jar:na]
>         at 
> co.cask.cdap.common.security.ImpersonationUtils.doAs(ImpersonationUtils.java:43)
>  [na:na]
>         at 
> co.cask.cdap.common.security.DefaultImpersonator.doAs(DefaultImpersonator.java:60)
>  [na:na]
>         at 
> co.cask.cdap.app.guice.ImpersonatedTwillController.getResourceReport(ImpersonatedTwillController.java:82)
>  [na:na]
>         at 
> co.cask.cdap.internal.app.runtime.distributed.DistributedProgramRuntimeService$ClusterResourceReporter.reportResources(DistributedProgramRuntimeService.java:385)
>  [na:na]
>         at 
> co.cask.cdap.internal.app.runtime.AbstractResourceReporter.runOneIteration(AbstractResourceReporter.java:72)
>  [na:na]
>         at 
> com.google.common.util.concurrent.AbstractScheduledService$1$1.run(AbstractScheduledService.java:170)
>  [com.google.guava.guava-13.0.1.jar:na]
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
> [na:1.7.0_75]
>         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) 
> [na:1.7.0_75]
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
>  [na:1.7.0_75]
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>  [na:1.7.0_75]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  [na:1.7.0_75]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  [na:1.7.0_75]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_75]
> {noformat}
>  Instead of returning null and logging an error, the class should throw the 
> right type of exception and let the caller decide what to do with it.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to