4

solr 3.6.1 では、solr サーバーに対して同時要求 (同時負荷テスト) を実行すると、ある時点で次のエラーが発生します。

org.apache.solr.common.SolrException log
SEVERE: org.mortbay.jetty.EofException
Caused by: java.net.SocketException: Broken pipe

500 より前にコミット null||org.mortbay.jetty.EofException|?at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:791)|?at org.mortbay.jetty.AbstractGenerator$Output.flush(AbstractGenerator.java :569)|?at org.mortbay.jetty.HttpConnection$Output.flush(HttpConnection.java:1012)|?at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:278)|?at sun.nio. cs.StreamEncoder.flush(StreamEncoder.java:122)|?at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)|?at org.apache.solr.common.util.FastWriter.flush(FastWriter.java: 115)|?at org.apache.solr.servlet.SolrDispatchFilter.writeResponse(SolrDispatchFilter.java:353)|?at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:273)|?at org.mortbay .jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)|?at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)|?at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)|?at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: 182)|?at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)|?at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)|?at org.mortbay .jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)|?at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)|?at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152)|?at org.mortbay.jetty.Server.handle(Server.java:326)|?at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)|?at org. mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)|?at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)|?at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)|?at org.mortbay.jetty.HttpConnection .handle(HttpConnection.java:404)|?at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)|?at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java :582)|原因: java.net.SocketException: 壊れたパイプ|?at java.net.SocketOutputStream.socketWrite0(Native Method)|?at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)|?at java .net.SocketOutputStream.write(SocketOutputStream.java:136)|?at org.mortbay.io.ByteArrayBuffer.writeTo(ByteArrayBuffer.java:368)|?at org.mortbay.io.bio.StreamEndPoint.flush(StreamEndPoint.java :129)|?at org.mortbay.io.bio.StreamEndPoint.flush(StreamEndPoint.java:161)|?at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:714)|?... 25 もっと見る

solr からこのエラーを解決するためのアイデアを教えてください。

4

1 に答える 1

7

私はそれがあなたのsolrではないと思います.クライアントのタイムアウトの問題のために、壊れたパイプが発生します(少なくとも私には起こりました)。

curl タイムアウト値を確認し、キープアライブ Tomcat を明示的に設定して、この状況を再度回避できるようにしてください。

クイックアップデート(ヒントを与えるためだけに、構成は異なる場合があります)

jetty フォルダーで、jetty-web.xml (または web-jetty.xml) という名前のファイルを含む WEB-INF という名前のフォルダーを探す必要があります。

次の行を追加します。

<session-config>
    <session-timeout>720</session-timeout>
</session-config>

あなたを助けるはずです(あなたがもっと好きなものに720を変更してください)

オプションもあります

<Set name="maxIdleTime">300000</Set>

それはあなたのトリックを行うかもしれません。あなたのケースでこれを理解するには、jettyのドキュメントを詳しく調べる必要があります

これについての詳細:ここここ

于 2012-12-05T09:25:32.630 に答える