[ https://issues.apache.org/jira/browse/SLIDER-1227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16005387#comment-16005387 ]
Manoj Samel commented on SLIDER-1227: ------------------------------------- I think I found out what causes the NPE above in .92 and why it works in version 0.80 The component name (a.k.a. role name) is "solo___super" i.e. it has 3 "_" In 0.92, it seems a new concept of "Role Group" is introduced, which was not present in 0.80. In 0.92 - AgentProviderService.java private static final String LABEL_MAKER = "___"; ... private String getRoleName(String label) { int index1 = label.indexOf(LABEL_MAKER); int index2 = label.lastIndexOf(LABEL_MAKER); if (index1 == index2) { return label.substring(index1 + LABEL_MAKER.length()); } else { return label.substring(index1 + LABEL_MAKER.length(), index2); } } private String getRoleGroup(String label) { return label.substring(label.lastIndexOf(LABEL_MAKER) + LABEL_MAKER.length()); } So when the real role name contains 3 "_" e.g. for "solo___super", the getRoleName on container name will return just "solo" and not "solo___super" and that bad role name can cause NPE Same role name works in 0.80 because in 0.80, there is no concept of roleGroup In 0.80 - AgentProviderService.java private String getRoleName(String label) { return label.substring(label.indexOf(LABEL_MAKER) + LABEL_MAKER.length()); } so in 0.80, the role name "solo__super" will return correct role name from container label > Component name with 3 "_" gives NPE in 0.92, is working in 0.80 > --------------------------------------------------------------- > > Key: SLIDER-1227 > URL: https://issues.apache.org/jira/browse/SLIDER-1227 > Project: Slider > Issue Type: Bug > Components: core > Affects Versions: Slider 0.92 > Reporter: Manoj Samel > > Running slider 0.92 on CDH 5.5.1 (which is Hadoop 2.6), with Kerberos > I am deploying a application with multiple components. The components start > but fail to heart beat to slider AM. The slider AM log shows NPE at container > heartbeat URLs as below. > 2017-04-12 00:44:05,741 [2011871076@qtp-814377348-5] INFO > agent.AgentProviderService - Handling registration: responseId=-1 > timestamp=1491957845550 > label=container_e95_1476898378926_91401_01_000003___solo___super > hostname=node1078 > expectedState=INIT > actualState=INIT > appVersion=null > 2017-04-12 00:44:05,741 [2011871076@qtp-814377348-5] INFO > agent.AgentProviderService - label: > container_e95_1476898378926_91401_01_000003___solo___super pkg: null > 2017-04-12 00:44:05,741 [2011871076@qtp-814377348-5] INFO > agent.AgentProviderService - Registration response: > RegistrationResponse{response=OK, responseId=0, statusCommands=null} > 2017-04-12 00:44:05,871 [Socket Reader #1 for port 32120] INFO ipc.Server - > Auth successful for slideradmin@BIGDATA (auth:SIMPLE) > 2017-04-12 00:44:05,873 [Socket Reader #1 for port 32120] INFO > authorize.ServiceAuthorizationManager - Authorization successful for > slideradmin@BIGDATA (auth:TOKEN) for protocol=interface > org.apache.slider.server.appmaster.rpc.SliderClusterProtocolPB > 2017-04-12 00:44:15,749 [1005856666@qtp-814377348-7] ERROR mortbay.log - > /ws/v1/slider/agents/container_e95_1476898378926_91401_01_000002___pdx__svt___ten85/heartbeat > java.lang.NullPointerException > at > org.apache.slider.providers.agent.AgentProviderService.handleHeartBeat(AgentProviderService.java:1090) > at > org.apache.slider.server.appmaster.web.rest.agent.AgentResource.heartbeat(AgentResource.java:98) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > 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.SubLocatorRule.accept(SubLocatorRule.java:134) > 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.service(ServletContainer.java:699) > 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.handle(ServletHandler.java:401) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) > 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.content(HttpConnection.java:945) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) > 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) > 2017-04-12 00:44:15,750 [2011871076@qtp-814377348-5] ERROR mortbay.log - > /ws/v1/slider/agents/container_e95_1476898378926_91401_01_000004___pdx__svt___ten83/heartbeat > java.lang.NullPointerException .... -- This message was sent by Atlassian JIRA (v6.3.15#6346)