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

Jonathan Eagles commented on YARN-6649:
---------------------------------------

In this case while investigating YARN-6654, a otherInfo was generated with 
version 2.24 of the fst lib that could not be parsed with version 2.50 of fst. 
After this fix, the tez ui was able to make the same queries and was able to 
retrieve partial query with only otherInfo removed. This allowed the Tez UI to 
continue to work with only partial data. 500 server error was preventing enough 
data from coming over the wire to navigate correctly.

> RollingLevelDBTimelineServer throws RuntimeException if object decoding ever 
> fails runtime exception
> ----------------------------------------------------------------------------------------------------
>
>                 Key: YARN-6649
>                 URL: https://issues.apache.org/jira/browse/YARN-6649
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Jonathan Eagles
>            Assignee: Jonathan Eagles
>            Priority: Critical
>         Attachments: YARN-6649.1.patch, YARN-6649.2.patch
>
>
> When Using tez ui (makes REST api calls to timeline service REST api), some 
> calls were coming back as 500 internal server error. The root cause was 
> YARN-6654. This jira is to handle object decoding to prevent sending back 
> internal server errors to the client and instead respond with a partial 
> message instead.
> {code}
> 2017-05-30 12:47:10,670 WARN 
> org.apache.hadoop.yarn.webapp.GenericExceptionHandler: INTERNAL_SERVER_ERROR
> javax.ws.rs.WebApplicationException: java.lang.RuntimeException: 
> java.io.IOException: java.lang.RuntimeException: unable to encodeValue class 
> from code 1000
>       at 
> org.apache.hadoop.yarn.server.timeline.webapp.TimelineWebServices.getEntity(TimelineWebServices.java:164)
>       at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:498)
>       at 
> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
>       at 
> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
>       at 
> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
>       at 
> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
>       at 
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
>       at 
> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
>       at 
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
>       at 
> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
>       at 
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
>       at 
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
>       at 
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
>       at 
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
>       at 
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
>       at 
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
>       at 
> com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:886)
>       at 
> com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:834)
>       at 
> com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:795)
>       at 
> com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
>       at 
> com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
>       at 
> com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
>       at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
>       at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>       at 
> org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:636)
>       at 
> org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticationFilter.doFilter(DelegationTokenAuthenticationFilter.java:294)
>       at 
> org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:588)
>       at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>       at 
> org.apache.hadoop.security.http.CrossOriginFilter.doFilter(CrossOriginFilter.java:95)
>       at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>       at 
> org.apache.hadoop.http.HttpServer2$QuotingInputFilter.doFilter(HttpServer2.java:1352)
>       at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>       at org.apache.hadoop.http.NoCacheFilter.doFilter(NoCacheFilter.java:45)
>       at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>       at org.apache.hadoop.http.NoCacheFilter.doFilter(NoCacheFilter.java:45)
>       at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>       at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
>       at 
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>       at 
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>       at 
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
>       at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
>       at 
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>       at 
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>       at org.mortbay.jetty.Server.handle(Server.java:326)
>       at 
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>       at 
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
>       at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
>       at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>       at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>       at 
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
>       at 
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> Caused by: java.lang.RuntimeException: java.io.IOException: 
> java.lang.RuntimeException: unable to encodeValue class from code 1000
>       at org.nustaq.serialization.util.FSTUtil.rethrow(FSTUtil.java:122)
>       at 
> org.nustaq.serialization.FSTConfiguration.asObject(FSTConfiguration.java:879)
>       at 
> org.apache.hadoop.yarn.server.timeline.RollingLevelDBTimelineStore.getEntity(RollingLevelDBTimelineStore.java:478)
>       at 
> org.apache.hadoop.yarn.server.timeline.RollingLevelDBTimelineStore.getEntity(RollingLevelDBTimelineStore.java:414)
>       at 
> org.apache.hadoop.yarn.server.timeline.EntityFileTimelineStore.getEntity(EntityFileTimelineStore.java:911)
>       at 
> org.apache.hadoop.yarn.server.timeline.TimelineDataManager.doGetEntity(TimelineDataManager.java:215)
>       at 
> org.apache.hadoop.yarn.server.timeline.TimelineDataManager.getEntity(TimelineDataManager.java:202)
>       at 
> org.apache.hadoop.yarn.server.timeline.webapp.TimelineWebServices.getEntity(TimelineWebServices.java:155)
>       ... 52 more
> Caused by: java.io.IOException: java.lang.RuntimeException: unable to 
> encodeValue class from code 1000
>       at 
> org.nustaq.serialization.FSTObjectInput.readObject(FSTObjectInput.java:240)
>       at 
> org.nustaq.serialization.FSTConfiguration.asObject(FSTConfiguration.java:877)
>       ... 58 more
> Caused by: java.lang.RuntimeException: unable to encodeValue class from code 
> 1000
>       at 
> org.nustaq.serialization.FSTClazzNameRegistry.decodeClass(FSTClazzNameRegistry.java:173)
>       at 
> org.nustaq.serialization.coders.FSTStreamDecoder.readClass(FSTStreamDecoder.java:431)
>       at 
> org.nustaq.serialization.FSTObjectInput.readClass(FSTObjectInput.java:853)
>       at 
> org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:338)
>       at 
> org.nustaq.serialization.FSTObjectInput.readObjectInternal(FSTObjectInput.java:323)
>       at 
> org.nustaq.serialization.serializers.FSTArrayListSerializer.instantiate(FSTArrayListSerializer.java:63)
>       at 
> org.nustaq.serialization.FSTObjectInput.instantiateAndReadWithSer(FSTObjectInput.java:459)
>       at 
> org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:354)
>       at 
> org.nustaq.serialization.FSTObjectInput.readObjectInternal(FSTObjectInput.java:323)
>       at 
> org.nustaq.serialization.serializers.FSTMapSerializer.instantiate(FSTMapSerializer.java:78)
>       at 
> org.nustaq.serialization.FSTObjectInput.instantiateAndReadWithSer(FSTObjectInput.java:459)
>       at 
> org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:354)
>       at 
> org.nustaq.serialization.FSTObjectInput.readObjectInternal(FSTObjectInput.java:323)
>       at 
> org.nustaq.serialization.FSTObjectInput.readObject(FSTObjectInput.java:304)
>       at 
> org.nustaq.serialization.FSTObjectInput.readObject(FSTObjectInput.java:238)
>       ... 59 more
> {code}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to