使用Tooltwist控制器进行部署时出现EofException

时间:2016-04-22 03:06:45

标签: tooltwist

我正在使用FIP将ToolTwist应用程序部署到生产服务器,并且我在传输阶段遇到此错误。

    java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:152)

并在fipserver控制台中

    org.eclipse.jetty.io.EofException
    at      org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:892)
    at org.eclipse.jetty.http.AbstractGenerator.blockForOutput(AbstractGenerator.java:486)
    at org.eclipse.jetty.http.AbstractGenerator.flush(AbstractGenerator.java:424)
    at org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:78)
    at org.eclipse.jetty.server.HttpConnection$Output.flush(HttpConnection.java:1094)
    at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:159)
    at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:98)
    at tooltwist.fip.jetty.GetFileListServlet.doGet(GetFileListServlet.java:82)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

Caused by: java.io.IOException: Broken pipe
    at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94)

这应该是什么解决方案?

1 个答案:

答案 0 :(得分:1)

在FIP文件传输的第一阶段发生此错误,其中fipserver创建目标服务器上现有文件的索引。这在GetFileListServlet.doGet()中完成,可以在堆栈跟踪中看到。它也在客户端通过消息...

表示
  Indexing source...  
  Indexing destination...  
  ERROR: java.net.SocketTimeoutException Read timed out  
  Exception: tooltwist.fip.FipException: java.net.SocketTimeoutException: Read timed out  

此索引过程涉及为目标服务器上的每个文件创建一个哈希值,然后fip客户端将其与源计算机上的文件哈希值进行比较。这样做是为了确定哪些文件不同,因此需要安装。

当客户端等待FIP服务器索引目标计算机上的文件太长时,会发生读取超时。索引通常是一个相当快速的过程,但确实涉及读取目标目录下的所有文件(例如在〜/ server中)。如果该目标目录中存在巨大的巨大文件,则扫描将花费相当长的时间来完成。如果该时间太长,则客户端超时并断开连接,服务器也会看到连接被删除并停止索引。

此错误的最常见原因是〜/ server / tomcat / logs中的日志文件过大。如果你清理它们,问题就会消失。