[ https://issues.apache.org/jira/browse/SOLR-11692?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Smiley updated SOLR-11692: -------------------------------- Attachment: SOLR-11692.patch Aha; I see the problem. Took a bit of debugging to find this nasty bug. Notice on line ~353 that the request var is replaced with wrappedRequest.get() if there's something there. In your patch you retained both "request" and "httpServletRequest" as valid variables... which is conducive to causing this bug. In this new version of the patch, I renamed the formal parameter names to have a leading underscore and then first thing I immediately assign them to the Http variant with the same name without the leading underscore. Tests are running now; if it checks out I'll commit shortly. Thanks for the contribution Jeff! > 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 > Assignee: David Smiley > Priority: Minor > Labels: dispatchlayer, jetty, newbie, streams > Fix For: 7.3 > > Attachments: SOLR-11692.patch, 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-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org