You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Uwe Schindler (JIRA)" <ji...@apache.org> on 2016/04/07 23:32:25 UTC

[jira] [Comment Edited] (SOLR-8933) SolrDispatchFilter::consumeInput logs "Stream Closed" IOException

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

Uwe Schindler edited comment on SOLR-8933 at 4/7/16 9:32 PM:
-------------------------------------------------------------

bq. Which IOUtils? I didn't see this in o.a.lucene.util or o.a.solr.common.util.

Sorry I was thinking of commons-io instead of IOUtils. Was a typo!

bq. CloseShieldServletInputStream inspired by the Apache commons-io CloseShieldInputStream which was almost good enough to use. 

I would just use the CloseShieldInputStream. The additional APIs provided by ServletInputStream or ServletOutputStream are not used by Solr. Actually we put some of them to the forbidden-apis list (because of stupidity and ISO-8859-1 defaults from earlier days). See lucene/tools/forbiddenApis/servlet-api.txt

I looked at this. There is no penalty by the wrapping - so you can also do it by default (with CloseShieldInputStream, no specialization). This is just optimized away... A method that just delegates to another methods is *always* removed by the VM.


was (Author: thetaphi):
bq. Which IOUtils? I didn't see this in o.a.lucene.util or o.a.solr.common.util.

Sorry I meat commons-io instead of IOUtils. Was a typo!

bq. CloseShieldServletInputStream inspired by the Apache commons-io CloseShieldInputStream which was almost good enough to use. 

I would just use the CloseShieldInputStream. The additional APIs provided by ServletInputStream or ServletOutputStream are not used by Solr. Actually we put some of them to the forbidden-apis list (because of stupidity and ISO-8859-1 defaults from earlier days). See lucene/tools/forbiddenApis/servlet-api.txt

I looked at this. There is no penalty by the wrapping - so you can also do it by default (with CloseShieldInputStream, no specialization). This is just optimized away... A method that just delegates to another methods is *always* removed by the VM.

> SolrDispatchFilter::consumeInput logs "Stream Closed" IOException
> -----------------------------------------------------------------
>
>                 Key: SOLR-8933
>                 URL: https://issues.apache.org/jira/browse/SOLR-8933
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 4.10.3
>            Reporter: Mike Drob
>            Assignee: Mark Miller
>         Attachments: SOLR-8933.patch, SOLR-8933.patch, SOLR-8933.patch, SOLR-8933.patch
>
>
> After SOLR-8453 we started seeing some IOExceptions coming out of SolrDispatchFilter with "Stream Closed" messages.
> It looks like we are indeed closing the request stream in several places when we really need to be letting the web container handle their life cycle. I've got a preliminary patch ready and am working on testing it to make sure there are no regressions.
> A very strange piece of this is that I have been entirely unable to reproduce it on a unit test, but have seen it on cluster deployment quite consistently.



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

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