Jenkins Subversion Checkout失败 - " E175002:在块结束时预期的CRLF:-1 / -1"

时间:2018-05-04 12:07:05

标签: jenkins svn visualsvn-server

我有一个Jenkins v2.107.2实例(作为Windows服务运行),它从Visual SVN服务器(在单独的Windows PC上)通过Subversion检出几个项目。

其中一个项目(最大的 - 约2.7GB)偶尔会出现,但在尝试结帐时会出现以下错误:

ERROR: Failed to check out https://example.com/myrepo
org.tmatesoft.svn.core.SVNException: svn: E175002: CRLF expected at end of chunk: -1/-1
svn: E175002: REPORT request failed on '/svn/REPO/!svn/vcc/default'
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)

此外,在检查Visual SVN服务器的日志时,我可以看到以下内容:

Error writing base64 data: The timeout specified has expired  [500, #70007]
A failure occurred while driving the update report editor  [500, #70007]
Provider encountered an error while streaming a REPORT response.  [500, #0]

此前,降级Jenkins& amp;一个版本的Subversion插件解决了这个错误,但是尽管自那以后没有更改版本,但这不再有效。

从在线查看,Subversion中似乎存在某种超时,如果超过一定时间,请求将被终止。但是,所有指令都引用了Subversion配置,该配置应该在%APPDATA%\ Roaming中,我似乎没有。

Jenkins Subversion documentation建议C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming,但我再也没有。 我已经安装了TortoiseSVN,它确实创建了Subversion配置文件夹。我修改了http-timeout,然后将此配置放在文档建议的所有位置,但这没有任何区别(但是它是否因为它没有修复问题,或者它没有被接收 - 我不确定。)

2 个答案:

答案 0 :(得分:1)

对于使用SVNKit支持Subversion的产品-Jenkins,Fisheye,Crucible等,可能发生此错误E175002: CRLF expected at end of chunk: -1/-1。对于svn.exe,TortoiseSVN或本机JavaHL库,不应发生该错误。

根据我的经验,以下解决方案可以解决问题-在SVNKit中启用假脱机。查看这些票:

该错误是由SVNKit产生的,它在Jenkins中用于启用SVN客户端功能。 SVNKit是Subversion的单独重新实现,并且SVNKit可能具有其自身的详细信息,这可能导致实际Apache Subversion客户端不会发生的问题或错误。我不是SVNKit的专家,但是在我看来,您已经遇到了此类SVNKit特定的问题,或者至少是错误的措辞。

答案 1 :(得分:0)

对于Windows上的Jenkins,您需要编辑Jenkins安装目录中的jenkins.xml文件(例如C:\ Program Files \ Jenkins \ jenkins.xml)。

为哈德森添加一个使用SVN假脱机的选项

<service>
  ...
  <arguments>
     ...
     -Dhudson.spool-svn=true
     ...
   </arguments>
   ...
</service>