为什么我看到错误:
Async exception during distributed update: java.io.IOException: Broken pipe when trying to post a document to solr
- Solr版本:8.4.1
- Zookeeper:3.4.14
- OpenJDK第11版;
- 2个solr节点+ 1个zookeeper(其中一个solr节点托管zookeeper)
对solr和TLS1.2
使用基本身份验证。
我没有看到任何错误时,试图张贴到solr节点,这是一个领导者,它的工作一致;只有当我发布到抛出以下错误的非领导者节点时才是问题。
java.io.IOException: java.io.IOException: Broken pipe
at org.eclipse.jetty.client.util.DeferredContentProvider.flush(DeferredContentProvider.java:193)
at org.eclipse.jetty.client.util.OutputStreamContentProvider$DeferredOutputStream.flush(OutputStreamContentProvider.java:152)
at org.eclipse.jetty.client.util.OutputStreamContentProvider$DeferredOutputStream.write(OutputStreamContentProvider.java:146)
at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:216)
at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:209)
at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:172)
at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:103)
at org.apache.solr.client.solrj.impl.BinaryRequestWriter.write(BinaryRequestWriter.java:83)
at org.apache.solr.client.solrj.impl.Http2SolrClient.send(Http2SolrClient.java:339)
at org.apache.solr.client.solrj.impl.ConcurrentUpdateHttp2SolrClient$Runner.sendUpdateStream(ConcurrentUpdateHttp2SolrClient.java:236)
at org.apache.solr.client.solrj.impl.ConcurrentUpdateHttp2SolrClient$Runner.run(ConcurrentUpdateHttp2SolrClient.java:181)
at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:181)
at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:210)
at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$$Lambda$142/0000000000000000.run(Unknown Source)
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:834)
Suppressed: java.io.IOException: java.io.IOException: Broken pipe
at org.eclipse.jetty.client.util.DeferredContentProvider.flush(DeferredContentProvider.java:193)
at org.eclipse.jetty.client.util.OutputStreamContentProvider$DeferredOutputStream.flush(OutputStreamContentProvider.java:152)
at org.eclipse.jetty.client.util.OutputStreamContentProvider$DeferredOutputStream.write(OutputStreamContentProvider.java:146)
at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:216)
at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:209)
at org.apache.solr.common.util.JavaBinCodec.close(JavaBinCodec.java:1269)
at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:104)
... 10 more
Caused by: java.io.IOException: Broken pipe
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.flush(SslConnection.java:927)
at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:393)
at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:380)
at org.eclipse.jetty.http2.HTTP2Flusher.process(HTTP2Flusher.java:247)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
at org.eclipse.jetty.http2.HTTP2Session.frame(HTTP2Session.java:755)
at org.eclipse.jetty.http2.HTTP2Session.frames(HTTP2Session.java:734)
at org.eclipse.jetty.http2.client.HTTP2ClientConnectionFactory$HTTP2ClientConnection.onOpen(HTTP2ClientConnectionFactory.java:130)
at org.eclipse.jetty.io.AbstractEndPoint.upgrade(AbstractEndPoint.java:441)
at org.eclipse.jetty.io.NegotiatingClientConnection.replaceConnection(NegotiatingClientConnection.java:115)
at org.eclipse.jetty.io.NegotiatingClientConnection.onFillable(NegotiatingClientConnection.java:85)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:427)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:321)
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:159)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
2条答案
按热度按时间f87krz0w1#
当我们遇到这个问题的时候,是因为我们运行了错误的JDK。我们已经安装了OpenJDK 16,Solr和Zookeeper仍然在使用它。当领导者与追随者通信时,有一些不兼容的地方导致了管道中断错误。
为了解决这个问题,我们必须安装Open JDK Java 1.8,并强制Solr和Zookeeper使用它。
r7s23pms2#