Re: update document stuck on: java.net.SocketInputStream.socketRead0

2017-11-03 Thread Nawab Zada Asad Iqbal
Hi,

I added some very liberal connection timeout and socket timeout to the
request config. And I see a lot of SocketTimeoutException and some
ConnectTimeoutException

RequestConfig requestConfig = RequestConfig.custom()
.setConnectionRequestTimeout(10*60*1000)
.setConnectTimeout(60*1000)
.setSocketTimeout(3*60*1000)
.build();

I am totally lost on what needs to be fixed here, but it is blocking a lot
of connections for a very long time; and my expected throughput has reduced
to almost half (compared to Solr 4 and Jetty).
 Jetty 9 doesn't support bio.SocketConnector and following snippet from
Solr4 (probably Jetty 8) shows that Solr was performing better with
SocketConnector insted of nio.SelectChannelConnector. I am wondering if
this gives some clue to my problem. How should I keep my Jetty 9 config
(for non blocking i/o as SocketConnector is not supported), to at least
improve my performance.

PS: I have also posted this question here:
https://stackoverflow.com/questions/47098816/solr-jetty-9-webserver-sending-a-ton-of-socket-timeouts


Thanks
Nawab


On Thu, Oct 26, 2017 at 7:03 PM, Nawab Zada Asad Iqbal 
wrote:

> Hi,
>
> After Solr 7 upgrade, I am realizing that my '/update' request is
> sometimes getting stuck on this:-
>
>  - java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[],
> int, int, int) @bci=0 (Compiled frame; information may be imprecise)
>  - java.net.SocketInputStream.read(byte[], int, int, int) @bci=87,
> line=152 (Compiled frame)
>  - java.net.SocketInputStream.read(byte[], int, int) @bci=11, line=122
> (Compiled frame)
>  - org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer()
> @bci=71, line=166 (Compiled frame)
>  - org.apache.http.impl.io.SocketInputBuffer.fillBuffer() @bci=1, line=90
> (Compiled frame)
>  - org.apache.http.impl.io.AbstractSessionInputBuffer.
> readLine(org.apache.http.util.CharArrayBuffer) @bci=137, line=281
> (Compiled frame)
>  - org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(
> org.apache.http.io.SessionInputBuffer) @bci=16, line=92 (Compiled frame)
>  - org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(
> org.apache.http.io.SessionInputBuffer) @bci=2, line=62 (Compiled frame)
>  - org.apache.http.impl.io.AbstractMessageParser.parse() @bci=38,
> line=254 (Compiled frame)
>  - org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader()
> @bci=8, line=289 (Compiled frame)
>  - org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader()
> @bci=1, line=252 (Compiled frame)
>  - 
> org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader()
> @bci=6, line=191 (Compiled frame)
>  - org.apache.http.protocol.HttpRequestExecutor.
> doReceiveResponse(org.apache.http.HttpRequest, 
> org.apache.http.HttpClientConnection,
> org.apache.http.protocol.HttpContext) @bci=62, line=300 (Compiled frame)
>  - 
> org.apache.http.protocol.HttpRequestExecutor.execute(org.apache.http.HttpRequest,
> org.apache.http.HttpClientConnection, org.apache.http.protocol.HttpContext)
> @bci=60, line=127 (Compiled frame)
>  - org.apache.http.impl.client.DefaultRequestDirector.
> tryExecute(org.apache.http.impl.client.RoutedRequest,
> org.apache.http.protocol.HttpContext) @bci=198, line=715 (Compiled frame)
>  - org.apache.http.impl.client.DefaultRequestDirector.
> execute(org.apache.http.HttpHost, org.apache.http.HttpRequest,
> org.apache.http.protocol.HttpContext) @bci=574, line=520 (Compiled frame)
>  - 
> org.apache.http.impl.client.AbstractHttpClient.execute(org.apache.http.HttpHost,
> org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext)
> @bci=344, line=906 (Compiled frame)
>  - org.apache.http.impl.client.AbstractHttpClient.execute(
> org.apache.http.client.methods.HttpUriRequest, 
> org.apache.http.protocol.HttpContext)
> @bci=21, line=805 (Compiled frame)
>  - org.apache.http.impl.client.AbstractHttpClient.execute(
> org.apache.http.client.methods.HttpUriRequest) @bci=6, line=784 (Compiled
> frame)
>
>
> It seems that I am hitting this issue: https://stackoverflow.com/
> questions/28785085/how-to-prevent-hangs-on-socketinputstream-socketread0-
> in-java
> Although, I will fix my timeout settings in client, I am curious what has
> changed in Solr7 (i am upgrading from solr 4), which would cause this?
>
>
> Thanks
> Nawab
>


update document stuck on: java.net.SocketInputStream.socketRead0

2017-10-26 Thread Nawab Zada Asad Iqbal
Hi,

After Solr 7 upgrade, I am realizing that my '/update' request is sometimes
getting stuck on this:-

 - java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[],
int, int, int) @bci=0 (Compiled frame; information may be imprecise)
 - java.net.SocketInputStream.read(byte[], int, int, int) @bci=87, line=152
(Compiled frame)
 - java.net.SocketInputStream.read(byte[], int, int) @bci=11, line=122
(Compiled frame)
 - org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer() @bci=71,
line=166 (Compiled frame)
 - org.apache.http.impl.io.SocketInputBuffer.fillBuffer() @bci=1, line=90
(Compiled frame)
 -
org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(org.apache.http.util.CharArrayBuffer)
@bci=137, line=281 (Compiled frame)
 -
org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(org.apache.http.io.SessionInputBuffer)
@bci=16, line=92 (Compiled frame)
 -
org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(org.apache.http.io.SessionInputBuffer)
@bci=2, line=62 (Compiled frame)
 - org.apache.http.impl.io.AbstractMessageParser.parse() @bci=38, line=254
(Compiled frame)
 -
org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader()
@bci=8, line=289 (Compiled frame)
 -
org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader()
@bci=1, line=252 (Compiled frame)
 -
org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader()
@bci=6, line=191 (Compiled frame)
 -
org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(org.apache.http.HttpRequest,
org.apache.http.HttpClientConnection, org.apache.http.protocol.HttpContext)
@bci=62, line=300 (Compiled frame)
 -
org.apache.http.protocol.HttpRequestExecutor.execute(org.apache.http.HttpRequest,
org.apache.http.HttpClientConnection, org.apache.http.protocol.HttpContext)
@bci=60, line=127 (Compiled frame)
 -
org.apache.http.impl.client.DefaultRequestDirector.tryExecute(org.apache.http.impl.client.RoutedRequest,
org.apache.http.protocol.HttpContext) @bci=198, line=715 (Compiled frame)
 -
org.apache.http.impl.client.DefaultRequestDirector.execute(org.apache.http.HttpHost,
org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext)
@bci=574, line=520 (Compiled frame)
 -
org.apache.http.impl.client.AbstractHttpClient.execute(org.apache.http.HttpHost,
org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext)
@bci=344, line=906 (Compiled frame)
 -
org.apache.http.impl.client.AbstractHttpClient.execute(org.apache.http.client.methods.HttpUriRequest,
org.apache.http.protocol.HttpContext) @bci=21, line=805 (Compiled frame)
 -
org.apache.http.impl.client.AbstractHttpClient.execute(org.apache.http.client.methods.HttpUriRequest)
@bci=6, line=784 (Compiled frame)


It seems that I am hitting this issue:
https://stackoverflow.com/questions/28785085/how-to-prevent-hangs-on-socketinputstream-socketread0-in-java
Although, I will fix my timeout settings in client, I am curious what has
changed in Solr7 (i am upgrading from solr 4), which would cause this?


Thanks
Nawab