> On 3 Sep 2023, at 17:30, Shawn Heisey <apa...@elyograg.org> wrote:
> 
> On 9/3/23 04:28, Ing. Andrea Vettori wrote:
>> what can cause this issue ?
>> This times out
>>                 solrServer = new Http2SolrClient.Builder(solrUrl)
>>                         .withRequestTimeout(SOLR_TIMEOUT_MINUTES, 
>> TimeUnit.MINUTES)
>>                         .withConnectionTimeout(SOLR_TIMEOUT_MINUTES, 
>> TimeUnit.MINUTES)
>>                         .withIdleTimeout(SOLR_TIMEOUT_MINUTES, 
>> TimeUnit.MINUTES)
>>                         .build();
> 
> What is the value of SOLR_TIMEOUT_MINUTES?  This may not be super relevant, 
> but I am curious.

For this test code I tried a few values of minutes to see if it would work 
after some time (it never worked). Usually on production code we use different 
timeouts all in the few seconds ranges.

> 
> What is the Solr version on the server?  Older Solr versions do not work well 
> with http2.  The workaround for those issues is to use http1.1.

It’s version 9.3.0 upgraded from 8.11.2

> 
> If the server side is also 9.3.0, then http2 should work well, and I do not 
> know what might be wrong.  The exception with stacktrace might provide a clue.

Could it be related to the fact that url is http and not https ? Is http2 
client able to use h2c and switch to http2 ? Using CURL I can connect to the 
server without any issue (see below the log).

Here’s the exception

Exception in thread "main" org.apache.solr.client.solrj.SolrServerException: 
Timeout occurred while waiting response from server at: 
http://<localip>:8983/solr/up/admin/ping?wt=javabin&version=2
        at 
org.apache.solr.client.solrj.impl.Http2SolrClient.request(Http2SolrClient.java:522)
        at 
org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:234)
        at org.apache.solr.client.solrj.SolrClient.ping(SolrClient.java:911)
        at ecf3test.QuickTest.doWork(QuickTest.java:345)
        at ecf3test.QuickTest.main(QuickTest.java:20)
Caused by: java.util.concurrent.TimeoutException
        at 
org.eclipse.jetty.client.util.InputStreamResponseListener.get(InputStreamResponseListener.java:214)
        at 
org.apache.solr.client.solrj.impl.Http2SolrClient.request(Http2SolrClient.java:512)
        ... 4 more

Here’s the curl trace

curl -v --http2 http://<localip>:8983/solr/up/admin/ping

*   Trying <localip>:8983...
* Connected to <localip> (<localip>) port 8983 (#0)
> GET /solr/up/admin/ping HTTP/1.1
> Host: <localip>:8983
> User-Agent: curl/8.1.2
> Accept: */*
> Connection: Upgrade, HTTP2-Settings
> Upgrade: h2c
> HTTP2-Settings: AAMAAABkAAQAoAAAAAIAAAAA
> 
< HTTP/1.1 101 Switching Protocols
< Upgrade: h2c
< Connection: Upgrade
* Received 101, Switching to HTTP/2
< HTTP/2 200 
< content-security-policy: default-src 'none'; base-uri 'none'; connect-src 
'self'; form-action 'self'; font-src 'self'; frame-ancestors 'none'; img-src 
'self' data:; media-src 'self'; style-src 'self' 'unsafe-inline'; script-src 
'self'; worker-src 'self';
< x-content-type-options: nosniff
< x-frame-options: SAMEORIGIN
< x-xss-protection: 1; mode=block
< content-type: application/json;charset=utf-8
< vary: Accept-Encoding
< content-length: 255
< 
{
  "responseHeader":{
    "zkConnected":null,
    "status":0,
    "QTime":0,
    "params":{
      "q":"1",
      "df":"key",
      "distrib":"false",
      "rows":"10",
      "echoParams":"all",
      "rid":"<localip>-138948"
    }
  },
  "status":"OK"
* Connection #0 to host <localip> left intact

Thanks

Reply via email to