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

Raju Bairishetti updated LENS-1199:
-----------------------------------
    Attachment: LENS-1199.patch

Seems this is happening because of multiple closeSession calls to a single 
session.  With [LENS-904|https://issues.apache.org/jira/browse/LENS-904] 
changes, session is not getting closed immediately if active queries are 
present.

Earlier to LENS-904, opened session count was decremented only once even if 
user invokes multiple times close on the same session(i.e. multiple 
closeSession() invocations throws an exception saying Session does not exist). 
Right now, we are decrementing the opened session count every closeSession 
invocation. 

Able to reproduce NPE through with the added test code.

Patch: It checks whether session count needs to be decremented or not based on 
the markedForClose flag.

> NPE while closing session
> -------------------------
>
>                 Key: LENS-1199
>                 URL: https://issues.apache.org/jira/browse/LENS-1199
>             Project: Apache Lens
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 2.6
>            Reporter: Amareshwari Sriramadasu
>            Assignee: Raju Bairishetti
>             Fix For: 2.6
>
>         Attachments: LENS-1199.patch
>
>
> Close session fails with 500.
> Seeing the following in server logs :
> {noformat}
> 23 Jun 2016 05:55:01 [9217270f-8cf1-43dd-add4-64d604bebb65] 
> [e319efea-fd05-401a-91c9-c94ee8409dcf grizzly-http-server-1] INFO  
> org.apache.lens.server.BaseLensService - Closed session <?xml version="1.0" 
> encoding="UTF-8" 
> standalone="yes"?><lensSessionHandle><publicId>e319efea-fd05-401a-91c9-c94ee8409dcf</publicId><secretId>76942b08-b549-430f-834b-ae39514c6a91</secretId></lensSessionHandle>
>  for anonymous user
> 23 Jun 2016 05:55:01 [9217270f-8cf1-43dd-add4-64d604bebb65] 
> [e319efea-fd05-401a-91c9-c94ee8409dcf grizzly-http-server-1] ERROR 
> org.apache.lens.server.LensRequestListener - Encountered HTTP exception
> org.glassfish.jersey.server.internal.process.MappableException: 
> java.lang.NullPointerException
>         at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.mapTargetToRuntimeEx(AbstractJavaResourceMethodDispatcher.java:179)
>  ~[jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.access$200(AbstractJavaResourceMethodDispatcher.java:72)
>  ~[jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:149)
>  ~[jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
>  ~[jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)
>  ~[jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
>  ~[jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
>  ~[jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
>  ~[jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
>  ~[jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) 
> ~[jersey-server-2.22.1.jar:na]
>         at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) 
> [jersey-common-2.22.1.jar:na]
>         at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) 
> [jersey-common-2.22.1.jar:na]
>         at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
> [jersey-common-2.22.1.jar:na]
>         at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
> [jersey-common-2.22.1.jar:na]
>         at org.glassfish.jersey.internal.Errors.process(Errors.java:267) 
> [jersey-common-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
>  [jersey-common-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) 
> [jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
>  [jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:384)
>  [jersey-container-grizzly2-http-2.22.1.jar:na]
>         at 
> org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:224) 
> [grizzly-http-server-2.3.23.jar:2.3.23]
>         at 
> org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
>  [grizzly-framework-2.3.23.jar:2.3.23]
>         at 
> org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
>  [grizzly-framework-2.3.23.jar:2.3.23]
>         at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
> Caused by: java.lang.NullPointerException: null
>         at 
> org.apache.lens.server.BaseLensService.decrementSessionCountForUser(BaseLensService.java:329)
>  ~[classes/:na]
>         at 
> org.apache.lens.server.BaseLensService.closeSession(BaseLensService.java:307) 
> ~[classes/:na]
>         at 
> org.apache.lens.server.session.HiveSessionService.closeInternal(HiveSessionService.java:481)
>  ~[classes/:na]
>         at 
> org.apache.lens.server.session.HiveSessionService.closeSession(HiveSessionService.java:471)
>  ~[classes/:na]
>         at 
> org.apache.lens.server.session.SessionResource.closeSession(SessionResource.java:109)
>  ~[classes/:na]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[na:1.8.0_66]
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> ~[na:1.8.0_66]
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[na:1.8.0_66]
>         at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_66]
>         at 
> org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
>  ~[jersey-server-2.22.1.jar:na]
>         at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
>  ~[jersey-server-2.22.1.jar:na]
>         ... 20 common frames omitted
> {noformat} 



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

Reply via email to