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

Keith Wall updated QPID-8108:
-----------------------------
    Description: 
If {{HttpPort#absoluteSessionTimeout}} has a non-zero value, if a request 
arrives whilst the Broker is still starting the following stack trace may 
result.   The stack trace is harmless. Once the Broker becomes ready the 
problem no longer occurs.



{noformat}
2018-02-22 18:39:42,929 ERROR [qtp1248732436-35] 
(o.a.q.s.m.p.f.ExceptionHandlingFilter) - Unexpected exception in servlet 
'/service/sasl':
java.lang.NullPointerException: null
                at 
org.apache.qpid.server.model.AbstractContainer.scheduleTask(AbstractContainer.java:490)
                at 
org.apache.qpid.server.management.plugin.HttpManagementUtil.scheduleAbsoluteSessionTimeout(HttpManagementUtil.java:179)
                at 
org.apache.qpid.server.management.plugin.HttpManagementUtil.saveAuthorisedSubject(HttpManagementUtil.java:171)
                at 
org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet.evaluateSaslResponse(SaslServlet.java:255)
                at 
org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet.doPost(SaslServlet.java:179)
                at 
org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.doPost(AbstractServlet.java:140)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
                at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
                at 
org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter$1.run(AuthenticationCheckFilter.java:157)
                at 
org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter$1.run(AuthenticationCheckFilter.java:153)
                at java.security.AccessController.doPrivileged(Native Method)
                at javax.security.auth.Subject.doAs(Subject.java:422)
                at 
org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter.doFilterChainAs(AuthenticationCheckFilter.java:152)
                at 
org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter.doFilter(AuthenticationCheckFilter.java:122)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
                at 
org.apache.qpid.server.management.plugin.filter.LoggingFilter.doFilter(LoggingFilter.java:63)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
                at 
org.apache.qpid.server.management.plugin.filter.ForbiddingTraceFilter.doFilter(ForbiddingTraceFilter.java:65)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
                at 
org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:308)
                at 
org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:262)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
                at 
org.apache.qpid.server.management.plugin.filter.ExceptionHandlingFilter.doFilter(ExceptionHandlingFilter.java:59)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
                at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:541)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
                at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1593)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
                at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
                at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481)
                at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
                at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
                at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
                at org.eclipse.jetty.server.Server.handle(Server.java:564)
                at 
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
                at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
                at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
                at 
org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
                at 
org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
                at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
                at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
                at 
org.apache.qpid.server.bytebuffer.QpidByteBufferFactory.lambda$null$0(QpidByteBufferFactory.java:464)
                at java.lang.Thread.run(Thread.java:748)
2018-02-22 18:39:42,931 WARN  [qtp1248732436-35] (o.e.j.s.HttpChannel) - 
/service/sasl
{noformat}

The problem is that the Broker doesn't start the housekeeper until after the 
Broker is activated.  This means there is the possibility for HTTP requests to 
arrive between the HTTP becoming active and the Broker have completed start-up. 
 If this happens, the NPE results and the Browser gets a 500.  QPID-8106 
brought this problem to light,



  was:
If {{HttpPort#absoluteSessionTimeout}} has a non-zero value, if a request 
arrives whilst the Broker is still starting the following stack trace may 
result.   The stack trace is harmless. Once the Broker becomes ready the 
problem no longer occurs.



{noformat}
2018-02-22 18:39:42,929 ERROR [qtp1248732436-35] 
(o.a.q.s.m.p.f.ExceptionHandlingFilter) - Unexpected exception in servlet 
'/service/sasl':
java.lang.NullPointerException: null
                at 
org.apache.qpid.server.model.AbstractContainer.scheduleTask(AbstractContainer.java:490)
                at 
org.apache.qpid.server.management.plugin.HttpManagementUtil.scheduleAbsoluteSessionTimeout(HttpManagementUtil.java:179)
                at 
org.apache.qpid.server.management.plugin.HttpManagementUtil.saveAuthorisedSubject(HttpManagementUtil.java:171)
                at 
org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet.evaluateSaslResponse(SaslServlet.java:255)
                at 
org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet.doPost(SaslServlet.java:179)
                at 
org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.doPost(AbstractServlet.java:140)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
                at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
                at 
org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter$1.run(AuthenticationCheckFilter.java:157)
                at 
org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter$1.run(AuthenticationCheckFilter.java:153)
                at java.security.AccessController.doPrivileged(Native Method)
                at javax.security.auth.Subject.doAs(Subject.java:422)
                at 
org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter.doFilterChainAs(AuthenticationCheckFilter.java:152)
                at 
org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter.doFilter(AuthenticationCheckFilter.java:122)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
                at 
org.apache.qpid.server.management.plugin.filter.LoggingFilter.doFilter(LoggingFilter.java:63)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
                at 
org.apache.qpid.server.management.plugin.filter.ForbiddingTraceFilter.doFilter(ForbiddingTraceFilter.java:65)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
                at 
org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:308)
                at 
org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:262)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
                at 
org.apache.qpid.server.management.plugin.filter.ExceptionHandlingFilter.doFilter(ExceptionHandlingFilter.java:59)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
                at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:541)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
                at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1593)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
                at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
                at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481)
                at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
                at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
                at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
                at org.eclipse.jetty.server.Server.handle(Server.java:564)
                at 
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
                at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
                at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
                at 
org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
                at 
org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
                at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
                at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
                at 
org.apache.qpid.server.bytebuffer.QpidByteBufferFactory.lambda$null$0(QpidByteBufferFactory.java:464)
                at java.lang.Thread.run(Thread.java:748)
2018-02-22 18:39:42,931 WARN  [qtp1248732436-35] (o.e.j.s.HttpChannel) - 
/service/sasl
{noformat}

The problem is that the Broker doesn't start the housekeeper until after the 
Broker is activated.  This means there is the possibility for HTTP requests to 
arrive between the HTTP becoming active and the Broker have completed start-up. 
 If this happens, the NPE results and the Browser gets a 500.




> [Broker-J] [HTTP] NPE from SaslServlet if request arrives before Broker has 
> activated
> -------------------------------------------------------------------------------------
>
>                 Key: QPID-8108
>                 URL: https://issues.apache.org/jira/browse/QPID-8108
>             Project: Qpid
>          Issue Type: Bug
>          Components: Broker-J
>    Affects Versions: qpid-java-broker-7.0.0, qpid-java-broker-7.0.1
>            Reporter: Keith Wall
>            Priority: Minor
>
> If {{HttpPort#absoluteSessionTimeout}} has a non-zero value, if a request 
> arrives whilst the Broker is still starting the following stack trace may 
> result.   The stack trace is harmless. Once the Broker becomes ready the 
> problem no longer occurs.
> {noformat}
> 2018-02-22 18:39:42,929 ERROR [qtp1248732436-35] 
> (o.a.q.s.m.p.f.ExceptionHandlingFilter) - Unexpected exception in servlet 
> '/service/sasl':
> java.lang.NullPointerException: null
>                 at 
> org.apache.qpid.server.model.AbstractContainer.scheduleTask(AbstractContainer.java:490)
>                 at 
> org.apache.qpid.server.management.plugin.HttpManagementUtil.scheduleAbsoluteSessionTimeout(HttpManagementUtil.java:179)
>                 at 
> org.apache.qpid.server.management.plugin.HttpManagementUtil.saveAuthorisedSubject(HttpManagementUtil.java:171)
>                 at 
> org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet.evaluateSaslResponse(SaslServlet.java:255)
>                 at 
> org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet.doPost(SaslServlet.java:179)
>                 at 
> org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.doPost(AbstractServlet.java:140)
>                 at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
>                 at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>                 at 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
>                 at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
>                 at 
> org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter$1.run(AuthenticationCheckFilter.java:157)
>                 at 
> org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter$1.run(AuthenticationCheckFilter.java:153)
>                 at java.security.AccessController.doPrivileged(Native Method)
>                 at javax.security.auth.Subject.doAs(Subject.java:422)
>                 at 
> org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter.doFilterChainAs(AuthenticationCheckFilter.java:152)
>                 at 
> org.apache.qpid.server.management.plugin.filter.AuthenticationCheckFilter.doFilter(AuthenticationCheckFilter.java:122)
>                 at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
>                 at 
> org.apache.qpid.server.management.plugin.filter.LoggingFilter.doFilter(LoggingFilter.java:63)
>                 at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
>                 at 
> org.apache.qpid.server.management.plugin.filter.ForbiddingTraceFilter.doFilter(ForbiddingTraceFilter.java:65)
>                 at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
>                 at 
> org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:308)
>                 at 
> org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:262)
>                 at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
>                 at 
> org.apache.qpid.server.management.plugin.filter.ExceptionHandlingFilter.doFilter(ExceptionHandlingFilter.java:59)
>                 at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
>                 at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:541)
>                 at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
>                 at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1593)
>                 at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
>                 at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239)
>                 at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
>                 at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481)
>                 at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
>                 at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
>                 at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141)
>                 at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>                 at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>                 at org.eclipse.jetty.server.Server.handle(Server.java:564)
>                 at 
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
>                 at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
>                 at 
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
>                 at 
> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
>                 at 
> org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
>                 at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
>                 at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
>                 at 
> org.apache.qpid.server.bytebuffer.QpidByteBufferFactory.lambda$null$0(QpidByteBufferFactory.java:464)
>                 at java.lang.Thread.run(Thread.java:748)
> 2018-02-22 18:39:42,931 WARN  [qtp1248732436-35] (o.e.j.s.HttpChannel) - 
> /service/sasl
> {noformat}
> The problem is that the Broker doesn't start the housekeeper until after the 
> Broker is activated.  This means there is the possibility for HTTP requests 
> to arrive between the HTTP becoming active and the Broker have completed 
> start-up.  If this happens, the NPE results and the Browser gets a 500.  
> QPID-8106 brought this problem to light,



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to