Hi,

I’m seeing reproducible failures with SolrJ 10.0.0’s HttpJdkSolrClient against 
Solr 10.0.0 using Java 25 and HTTP cleartext (h2c).

Using a single client, the first client.add(...) succeeds. After waiting 35 
seconds, a second update fails with:

java.io.IOException: RST_STREAM received Protocol error

The same sequence succeeds when forcing HTTP/1.1 or reducing the idle interval 
to 3 seconds.

I’ve created a small standalone Docker reproducer: 
https://github.com/micopiira/solrj-h2c-idle-reproducer. Running ./reproduce.sh 
reproduces the failure and captures client and server diagnostics.

My suspicion is that maybeTryHeadRequest() caches the successful initial HEAD 
by base URI, but that cached result survives the underlying connection 
expiring. The replacement connection then attempts an h2c upgrade with a 
chunked POST. Diagnostics show Jetty returning RST_STREAM and GOAWAY with 
invalid_preface.

Is this a known issue, or should I open a Jira ticket with the reproducer and 
findings?

Thanks,
Mico

Reply via email to