lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Smiley (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-11692) SolrDispatchFilter.closeShield passes the shielded response object back to jetty making the stream unclose able
Date Fri, 01 Dec 2017 21:34:00 GMT

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

David Smiley commented on SOLR-11692:
-------------------------------------

+1 I like it Jeff.

The only change I suggest making is a little bit of maintenance here regarding the annoying
casting of ServletRequest to HttpServletRequest in several places in this method.  You've
added another spot.  Notice the first line of this method ensures we have the HTTP version.
 Perhaps we can rename the parameter slightly and then cast to the current name in a local
variable... then change various methods here to expect/return HttpServletRequest.  What do
you think?  

> SolrDispatchFilter.closeShield passes the shielded response object back to jetty making
the stream unclose able
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-11692
>                 URL: https://issues.apache.org/jira/browse/SOLR-11692
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: Response Writers
>    Affects Versions: 7.1
>         Environment: Linux/Mac tested
>            Reporter: Jeff Miller
>            Priority: Minor
>              Labels: dispatchlayer, jetty, newbie, streams
>         Attachments: SOLR-11692.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In test mode we trigger closeShield code in SolrDispatchFilter, however there are code
paths where we passthrough the objects to the DefaultHandler which can no longer close the
response.
> Example stack trace:
> java.lang.AssertionError: Attempted close of response output stream.
>     at org.apache.solr.servlet.SolrDispatchFilter$2$1.close(SolrDispatchFilter.java:528)
>     at org.eclipse.jetty.server.Dispatcher.commitResponse(Dispatcher.java:315)
>     at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:279)
>     at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103)
>     at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:566)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
>     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
>     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
>     at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:385)
>     at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:326)
>     at searchserver.filter.SfdcDispatchFilter.doFilter(SfdcDispatchFilter.java:204)
>     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
>     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
>     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
>     at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
>     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
>     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
>     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
>     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
>     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>     at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
>     at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
>     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>     at org.eclipse.jetty.server.Server.handle(Server.java:370)
>     at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
>     at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
>     at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
>     at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
>     at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
>     at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
>     at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
>     at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
>     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>     at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>     at java.lang.Thread.run(Thread.java:745)
> Related JIRA: SOLR-8933



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message