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

Srikanth Sundarrajan commented on FALCON-1063:
----------------------------------------------

As per FALCON-785, 0.5 entities are incompatible with 0.6. Migration steps are 
yet to be 
[documented|http://falcon.apache.org/FalconDocumentation.html#Backwards_Compatibility].
 Will try and revert back on the steps to migrate soon. As a minimal 
requirement, you will need to disable authroization in falcon instance.

> Falcon CLI list entities operation throws NullPointerException
> --------------------------------------------------------------
>
>                 Key: FALCON-1063
>                 URL: https://issues.apache.org/jira/browse/FALCON-1063
>             Project: Falcon
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.6, trunk
>            Reporter: Georgi Ivanov
>
> Using falcon v0.6 and doing list entities I receive NullPointerException. 
> This happens only on falcon installations that had existing entities and got 
> upgraded to 0.6. I run:
>         falcon entity -type cluster -list
>         falcon entity -type process -list
> and I get this on console:
> Stacktrace:
> org.apache.falcon.client.FalconCLIException: Bad Request;null
>       at 
> org.apache.falcon.client.FalconCLIException.fromReponse(FalconCLIException.java:44)
>       at 
> org.apache.falcon.client.FalconClient.checkIfSuccessful(FalconClient.java:1172)
>       at 
> org.apache.falcon.client.FalconClient.sendListRequest(FalconClient.java:791)
>       at 
> org.apache.falcon.client.FalconClient.getEntityList(FalconClient.java:374)
>       at org.apache.falcon.cli.FalconCLI.entityCommand(FalconCLI.java:412)
>       at org.apache.falcon.cli.FalconCLI.run(FalconCLI.java:183)
>       at org.apache.falcon.cli.FalconCLI.main(FalconCLI.java:133)
> The stacktrace on the server shows:
>         2015-03-03 04:14:06,462 ERROR - 
> [683216314@qtp-1027439921-0:68e05a5c-95cb-46fb-a9f0-a7280e491dc2 
> falcon:GET//entities/list/process] ~ Failed to get entity list 
> (AbstractEntityManager:532)
> java.lang.NullPointerException
>         at 
> org.apache.falcon.resource.AbstractEntityManager.tryProxy(AbstractEntityManager.java:353)
>         at 
> org.apache.falcon.resource.AbstractEntityManager.getEntities(AbstractEntityManager.java:583)
>         at 
> org.apache.falcon.resource.AbstractEntityManager.getEntityList(AbstractEntityManager.java:530)
>         at 
> org.apache.falcon.resource.proxy.SchedulableEntityManagerProxy.getEntityList(SchedulableEntityManagerProxy.java:405)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         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.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$CachedChain.doFilter(ServletHandler.java:1221)
>         at 
> org.apache.falcon.security.FalconAuthorizationFilter.doFilter(FalconAuthorizationFilter.java:102)
>         at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>         at 
> org.apache.falcon.security.FalconAuthenticationFilter$2.doFilter(FalconAuthenticationFilter.java:184)
>         at 
> org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:572)
>         at 
> org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:542)
>         at 
> org.apache.falcon.security.FalconAuthenticationFilter.doFilter(FalconAuthenticationFilter.java:193)
>         at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>         at 
> org.apache.falcon.security.FalconAuditFilter.doFilter(FalconAuditFilter.java:65)
>         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:767)
>         at 
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
>         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.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
>         at 
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
>         2015-03-03 04:14:06,463 ERROR - 
> [683216314@qtp-1027439921-0:68e05a5c-95cb-46fb-a9f0-a7280e491dc2 
> falcon:GET//entities/list/process] ~ Action failed: Bad Request
> Error: null (FalconWebException:68)
> This happened when upgrading falcon to 0.6. Cluster/process definitions do 
> not contain ACLs. Looking at AbstractEntityManager.java source the problem is 
> obvious:
>               
>               private void tryProxy(Entity entity) throws IOException, 
> FalconException {
>             final String aclOwner = entity.getACL().getOwner();
>             final String aclGroup = entity.getACL().getGroup();
> tryProxy method does not check if entity.getACL() returns null. There is a 
> method called decorateEntityWithACL which is used as a kludge before invoking 
> tryProxy method and it populates entities with some sample ACL and tryProxy 
> does not throw null pointer exception. This is done in submitInternal() and 
> update() methods in AbstractEntityManager.java, which are called when we call 
> submit or update. However the list CLI operation calls getEntities() method, 
> which calls tryProxy() but does not "decorate" the entity with 
> decorateEntityWithACL() and hence we get NullPointerException. 
> This bug affects falcon UI as well. I checked trunk and it is not fixed there 
> as well. This bug won't manifest on entities created on falcon 0.6 because 
> falcon "injects" ACLs into the entity definition before saving it to 
> Configuration Store if it does not have one already.



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

Reply via email to