2012-03-30 1 views
7

Это исключение часто возникает, когда система вставляет новую запись db и обновляет индекс solr, есть ли у кого-то такая же проблема? как этого избежать?Исключение Solr, поднятое на сервере часто org.mortbay.jetty.EofException java.net.SocketException: Broken pipe

Mar 29, 2012 6:26:59 PM org.apache.solr.core.SolrCore execute 
INFO: [] webapp=/solr path=/update params={wt=ruby} status=0 QTime=110977 

Mar 29, 2012 6:26:59 PM org.apache.solr.common.SolrException log 
SEVERE: 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.StreamE`enter code here`ncoder.implFlush(Unknown Source) 
    at sun.nio.cs.StreamEncoder.flush(Unknown Source) 
    at java.io.OutputStreamWriter.flush(Unknown Source) 
    at org.apache.solr.common.util.FastWriter.flush(FastWriter.java:115) 
    at org.apache.solr.servlet.SolrDispatchFilter.writeResponse(SolrDispatchFilter.java:344) 
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:265) 
    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.content(HttpConnection.java:945) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 
    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) 
Caused by: java.net.SocketException: Broken pipe 
    at java.net.SocketOutputStream.socketWrite0(Native Method) 
    at java.net.SocketOutputStream.socketWrite(Unknown Source) 
    at java.net.SocketOutputStream.write(Unknown Source) 
    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 more 

делает исключение, связанное с последним QTIME?

ответ

1

Я видел эту ошибку и пробовал пару вещей, которые помогли решить эту проблему, но ничто из того, что я мог сказать, было «исправлением 100% совершенным». Мне бы хотелось услышать, что вы испытываете!

Вот некоторые вещи, которые я пробовал, что, кажется, чтобы помочь:

1) своп в jetty.xml из БИО соединения NIO.
2) Увеличьте время ожидания на переднем конце.
3) Играйте с количеством подключений, которое можно открыть в Jetty.

+0

У нас были прерывистые исключения труб, когда тайм-аут одноранговой сети отключил соединение tcp в то же самое время, когда постоянное http-соединение было повторно использовано для другого запроса. (См. RFC-2616, раздел 8.1.4.) – Joe23

+0

@ Joe23 вы можете объяснить, что вы имеете в виду? – kamaci