You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Tomas Eduardo Fernandez Lobbe (Jira)" <ji...@apache.org> on 2023/03/14 21:59:00 UTC

[jira] [Created] (SOLR-16702) JMH benchmarks can fail with http2 when using many threads

Tomas Eduardo Fernandez Lobbe created SOLR-16702:
----------------------------------------------------

             Summary: JMH benchmarks can fail with http2 when using many threads
                 Key: SOLR-16702
                 URL: https://issues.apache.org/jira/browse/SOLR-16702
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
            Reporter: Tomas Eduardo Fernandez Lobbe


This can be reproduced, for example, running {{./jmh.sh search.FilterCache}} but increasing the number of threads, in my case, to 16. The same test passes OK when the client is set to use http1.
See discussion [here|https://github.com/apache/solr/pull/1445]

{noformat}
org.apache.solr.client.solrj.SolrServerException: IOException occurred when talking to server at: null
        at org.apache.solr.client.solrj.impl.Http2SolrClient.request(Http2SolrClient.java:530)
        at org.apache.solr.bench.search.SimpleSearch.query(SimpleSearch.java:75)
        at org.apache.solr.bench.search.jmh_generated.SimpleSearch_query_jmhTest.query_thrpt_jmhStub(SimpleSearch_query_jmhTest.java:274)
        at org.apache.solr.bench.search.jmh_generated.SimpleSearch_query_jmhTest.query_Throughput(SimpleSearch_query_jmhTest.java:127)
        at jdk.internal.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:475)
        at org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:458)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.io.IOException: cancel_stream_error
        at org.eclipse.jetty.http2.client.http.HttpReceiverOverHTTP2.onReset(HttpReceiverOverHTTP2.java:202)
        at org.eclipse.jetty.http2.client.http.HttpChannelOverHTTP2$Listener.onReset(HttpChannelOverHTTP2.java:206)
        at org.eclipse.jetty.http2.api.Stream$Listener.onReset(Stream.java:271)
        at org.eclipse.jetty.http2.HTTP2Stream.notifyReset(HTTP2Stream.java:853)
        at org.eclipse.jetty.http2.HTTP2Stream.onReset(HTTP2Stream.java:563)
        at org.eclipse.jetty.http2.HTTP2Stream.process(HTTP2Stream.java:392)
        at org.eclipse.jetty.http2.HTTP2Session.onReset(HTTP2Session.java:320)
        at org.eclipse.jetty.http2.parser.Parser$Listener$Wrapper.onReset(Parser.java:367)
        at org.eclipse.jetty.http2.parser.BodyParser.notifyReset(BodyParser.java:139)
        at org.eclipse.jetty.http2.parser.ResetBodyParser.onReset(ResetBodyParser.java:92)
        at org.eclipse.jetty.http2.parser.ResetBodyParser.parse(ResetBodyParser.java:61)
        at org.eclipse.jetty.http2.parser.Parser.parseBody(Parser.java:193)
        at org.eclipse.jetty.http2.parser.Parser.parse(Parser.java:122)
        at org.eclipse.jetty.http2.HTTP2Connection$HTTP2Producer.produce(HTTP2Connection.java:278)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produceTask(AdaptiveExecutionStrategy.java:450)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:243)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:194)
        at org.eclipse.jetty.http2.HTTP2Connection.produce(HTTP2Connection.java:208)
        at org.eclipse.jetty.http2.HTTP2Connection.onFillable(HTTP2Connection.java:155)
        at org.eclipse.jetty.http2.HTTP2Connection$FillableCallback.succeeded(HTTP2Connection.java:378)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
        at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
        at org.eclipse.jetty.util.thread.Invocable.invokeNonBlocking(Invocable.java:151)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.invokeAsNonBlocking(AdaptiveExecutionStrategy.java:433)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:375)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:194)
        at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:289)
        ... 3 more
{noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org