lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yonik Seeley (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (SOLR-8453) Local exceptions in DistributedUpdateProcessor should not cut off an ongoing request.
Date Tue, 05 Jan 2016 17:26:39 GMT

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

Yonik Seeley updated SOLR-8453:
-------------------------------
    Attachment: SOLR-8453_test.patch

Here's a test with normal solrj clients that reproduces HTTP level exceptions.  It uses multiple
threads and large request sizes.

Example exception summary (from 10 clients):
{code}
3567 ERROR (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.c.s.TestSolrJErrorHandling
CHAIN: ->SolrServerException->SocketException(Connection reset)
3569 ERROR (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.c.s.TestSolrJErrorHandling
CHAIN: ->SolrServerException->ClientProtocolException->NonRepeatableRequestException->SocketException(Broken
pipe)
3569 ERROR (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.c.s.TestSolrJErrorHandling
CHAIN: ->SolrServerException->ClientProtocolException->NonRepeatableRequestException->SocketException(Broken
pipe)
3570 ERROR (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.c.s.TestSolrJErrorHandling
CHAIN: ->SolrServerException->ClientProtocolException->NonRepeatableRequestException->SocketException(Broken
pipe)
3571 ERROR (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.c.s.TestSolrJErrorHandling
CHAIN: ->SolrServerException->ClientProtocolException->NonRepeatableRequestException->SocketException(Broken
pipe)
3571 ERROR (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.c.s.TestSolrJErrorHandling
CHAIN: ->SolrServerException->ClientProtocolException->NonRepeatableRequestException->SocketException(Broken
pipe)
3571 ERROR (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.c.s.TestSolrJErrorHandling
CHAIN: ->SolrServerException->ClientProtocolException->NonRepeatableRequestException->SocketException(Broken
pipe)
3572 ERROR (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.c.s.TestSolrJErrorHandling
CHAIN: ->SolrServerException->ClientProtocolException->NonRepeatableRequestException->SocketException(Broken
pipe)
3572 ERROR (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.c.s.TestSolrJErrorHandling
CHAIN: ->SolrServerException->ClientProtocolException->NonRepeatableRequestException->SocketException(Broken
pipe)
3572 ERROR (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.c.s.TestSolrJErrorHandling
CHAIN: ->SolrServerException->ClientProtocolException->NonRepeatableRequestException->SocketException(Broken
pipe)
3573 INFO  (TEST-TestSolrJErrorHandling.testWithBinary-seed#[5C3578C3D02417A3]) [    ] o.a.s.SolrTestCaseJ4
###Ending testWithBinary
{code}

> Local exceptions in DistributedUpdateProcessor should not cut off an ongoing request.
> -------------------------------------------------------------------------------------
>
>                 Key: SOLR-8453
>                 URL: https://issues.apache.org/jira/browse/SOLR-8453
>             Project: Solr
>          Issue Type: Bug
>            Reporter: Mark Miller
>            Assignee: Mark Miller
>         Attachments: SOLR-8453.patch, SOLR-8453.patch, SOLR-8453.patch, SOLR-8453.patch,
SOLR-8453.patch, SOLR-8453.patch, SOLR-8453.patch, SOLR-8453_test.patch
>
>
> The basic problem is that when we are streaming in updates via a client, an update can
fail in a way that further updates in the request will not be processed, but not in a way
that causes the client to stop and finish up the request before the server does something
else with that connection.
> This seems to mean that even after the server stops processing the request, the concurrent
update client is still in the process of sending the request. It seems previously, Jetty would
not go after the connection very quickly after the server processing thread was stopped via
exception, and the client (usually?) had time to clean up properly. But after the Jetty upgrade
from 9.2 to 9.3, Jetty closes the connection on the server sooner than previous versions (?),
and the client does not end up getting notified of the original exception at all and instead
hits a connection reset exception. The result was random fails due to connection reset throughout
our tests and one particular test failing consistently. Even before this update, it does not
seem like we are acting in a safe or 'behaved' manner, but our version of Jetty was relaxed
enough (or a bug was fixed?) for our tests to work out.



--
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


Mime
View raw message