Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-22094

Getting "java.io.IOException: frame_size_error/invalid_frame_length" with remote Solr behind an HTTP proxy

    XMLWordPrintable

Details

    • Unknown
    • N/A
    • N/A

    Description

      When using remote Solr setup with solr.myxwiki.org I end up with:

      Caused by: org.xwiki.component.manager.ComponentLookupException: Failed to lookup component [org.xwiki.search.solr.internal.RemoteSolr] identified by type [interface org.xwiki.search.solr.Solr] and hint [remote]
      	at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:332)
      	at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:320)
      	at org.xwiki.search.solr.internal.DefaultSolr.initialize(DefaultSolr.java:59)
      	... 36 common frames omitted
      Caused by: org.xwiki.component.phase.InitializationException: Failed to access the Solr server information
      	at org.xwiki.search.solr.internal.RemoteSolr.initialize(RemoteSolr.java:117)
      	at org.xwiki.component.embed.InitializableLifecycleHandler.handle(InitializableLifecycleHandler.java:39)
      	at org.xwiki.component.embed.EmbeddableComponentManager.createInstance(EmbeddableComponentManager.java:550)
      	at org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:636)
      	at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:329)
      	... 38 common frames omitted
      Caused by: org.apache.solr.client.solrj.SolrServerException: IOException occurred when talking to server at: http://solr.myxwiki.org/solr/admin/info/system
      	at org.apache.solr.client.solrj.impl.Http2SolrClient.request(Http2SolrClient.java:550)
      	at org.apache.solr.client.solrj.SolrClient.request(SolrClient.java:1192)
      	at org.xwiki.search.solr.internal.RemoteSolr.initialize(RemoteSolr.java:115)
      	... 42 common frames omitted
      Caused by: java.io.IOException: frame_size_error/invalid_frame_length
      	at org.eclipse.jetty.http2.HTTP2Session.toFailure(HTTP2Session.java:633)
      	at org.eclipse.jetty.http2.HTTP2Session$StreamsState.onSessionFailure(HTTP2Session.java:2006)
      	at org.eclipse.jetty.http2.HTTP2Session.onSessionFailure(HTTP2Session.java:578)
      	at org.eclipse.jetty.http2.HTTP2Session.onConnectionFailure(HTTP2Session.java:573)
      	at org.eclipse.jetty.http2.HTTP2Connection.onConnectionFailure(HTTP2Connection.java:303)
      	at org.eclipse.jetty.http2.parser.BodyParser.notifyConnectionFailure(BodyParser.java:218)
      	at org.eclipse.jetty.http2.parser.BodyParser.connectionFailure(BodyParser.java:210)
      	at org.eclipse.jetty.http2.parser.Parser.connectionFailure(Parser.java:251)
      	at org.eclipse.jetty.http2.parser.Parser.parseHeader(Parser.java:197)
      	at org.eclipse.jetty.http2.parser.Parser.parse(Parser.java:161)
      	at org.eclipse.jetty.http2.HTTP2Connection$HTTP2Producer.produce(HTTP2Connection.java:350)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produceTask(AdaptiveExecutionStrategy.java:455)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:248)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:193)
      	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:450)
      	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:438)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:380)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:193)
      	at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:294)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	... 1 common frames omitted
      

      It seems to suggest that the new Http2SolrClient (the only one which is not deprecated) really only support HTTP2 server (which, I assume, is not the case of a Apache HTTPd proxy in front of Solr on this server, at least not the way it's configured) and is not as dynamic as I hopped (especially since there is no alternative).

      Would probably be safer to move back to the deprecated HttpSolrClient one for now.

      Attachments

        Activity

          People

            tmortagne Thomas Mortagne
            tmortagne Thomas Mortagne
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: