[
https://issues.apache.org/jira/browse/SOLR-17871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18015352#comment-18015352
]
Thomas Wöckinger commented on SOLR-17871:
-----------------------------------------
I found the main reason, if the used idle timeout is higher than session
default, which is 30s, the current mechanism does not work any more as the
lowest value compared between session and request always wins.
I am not sure, at the moment, what is the best way to fix this, as the session
idle timeout must be always higher than the request idle timeout.
One way would be to disable the session idle timeout entirely.
> Http2SolrClient does not use specified idle timeout
> ---------------------------------------------------
>
> Key: SOLR-17871
> URL: https://issues.apache.org/jira/browse/SOLR-17871
> Project: Solr
> Issue Type: Bug
> Components: clients - java, SolrJ
> Affects Versions: 9.9, 9.9.0
> Reporter: Thomas Wöckinger
> Priority: Major
> Labels: easyfix, pull-requests-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> SOLR-17776 removed httpClient.setIdleTimeout(idleTimeoutMillis); at line
> 259, which is needed for {{org.eclipse.jetty.http2.HTTP2Session}} to have the
> correct idle timeout, otherwise the default value of 30s is used.
> The coresponding commit is
> [https://github.com/apache/solr/commit/1a7647136a6e014bc003018c8e627e358cdf2d7c]
> If a request takes longer than 30s following exception is thrown even when
> the idle timeout is set to 60s:
> Caused by: org.apache.solr.client.solrj.SolrServerException: Idle timeout
> expired: 30000 ms
> at
> org.apache.solr.client.solrj.impl.Http2SolrClient.request(Http2SolrClient.java:627)
> at
> org.apache.solr.client.solrj.impl.LBSolrClient.lambda$doRequest$2(LBSolrClient.java:571)
> at
> org.apache.solr.client.solrj.impl.Http2SolrClient.requestWithBaseUrl(Http2SolrClient.java:669)
> at
> org.apache.solr.client.solrj.impl.LBSolrClient.doRequest(LBSolrClient.java:571)
> at
> org.apache.solr.client.solrj.impl.LBSolrClient.doRequest(LBSolrClient.java:513)
> at
> org.apache.solr.client.solrj.impl.LBSolrClient.request(LBSolrClient.java:477)
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:1212)
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:910)
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:838)
> at
> com.silbergrau.km.solr.DelegatingSolrClient.request(DelegatingSolrClient.java:136)
> at
> com.silbergrau.km.solr.DelegatingSolrClient.request(DelegatingSolrClient.java:56)
> at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:279)
> at org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:956)
> at
> com.silbergrau.km.solr.transformers.SolrDocumentToEntityRefTransformer.getEntityReferences(SolrDocumentToEntityRefTransformer.java:7)
> ... 36 more
> Caused by: java.util.concurrent.TimeoutException: Idle timeout expired: 30000
> ms
> at
> org.eclipse.jetty.http2.client.http.HTTPSessionListenerPromise.onIdleTimeout(HTTPSessionListenerPromise.java:113)
> at
> org.eclipse.jetty.http2.HTTP2Session.notifyIdleTimeout(HTTP2Session.java:1209)
> at
> org.eclipse.jetty.http2.HTTP2Session$StreamsState.onIdleTimeout(HTTP2Session.java:1974)
> at
> org.eclipse.jetty.http2.HTTP2Session.onIdleTimeout(HTTP2Session.java:1050)
> at
> org.eclipse.jetty.http2.HTTP2Connection.onIdleExpired(HTTP2Connection.java:180)
> at
> org.eclipse.jetty.io.ssl.SslConnection.onIdleExpired(SslConnection.java:360)
> at
> org.eclipse.jetty.io.AbstractEndPoint.onIdleExpired(AbstractEndPoint.java:407)
> at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:170)
> at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:112)
> at
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
> ... 3 more
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]