Jenkins 中的 SVN 签出有时会失败

2024-03-03

我们在 Jenkins 中使用 SVN 签出时遇到问题已经有一段时间了。有时会失败并出现以下错误:

org.tmatesoft.svn.core.SVNException: svn: E175002: Connection reset
svn: E175002: REPORT request failed on '/Our-project/!svn/vcc/default'
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:96)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:765)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:352)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:340)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:910)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:363)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.runReport(DAVRepository.java:1349)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.update(DAVRepository.java:847)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.updateInternal(SvnNgAbstractUpdate.java:263)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.update(SvnNgAbstractUpdate.java:115)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:877)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1239)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
    at hudson.scm.subversion.CheckoutUpdater$SubversionUpdateTask.perform(CheckoutUpdater.java:132)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:168)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:176)
    at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:133)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:168)
    at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:1040)
    at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:1016)
    at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:989)
    at hudson.FilePath$FileCallableWrapper.call(FilePath.java:3052)
    at hudson.remoting.UserRequest.perform(UserRequest.java:212)
    at hudson.remoting.UserRequest.perform(UserRequest.java:54)
    at hudson.remoting.Request$2.run(Request.java:369)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:93)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset

最近,这种情况开始变得越来越多,当一个特定的 Jenkins 节点检查一个特定的存储库的组合时,就会发生这种情况。我们还有其他节点与这个节点几乎相同,但这种情况几乎从未发生过。我们还有其他存储库(无论大得多还是小得多),它们的检查次数都与此一样多,但几乎不会导致此问题。 repo和node的这种组合看起来是非常不利的。

值得注意的是,我们使用 Jenkins 插件并通过 Groovy 按以下方式进行结帐:

checkout(
    [$class: 'SubversionSCM',
    locations: 
    [
        [credentialsId: '6615cd79-bd58-42f8-1111-6fa9e5692f92',
         remote: <SVN URL>,
         local: 'our_dir']
    ],
    workspaceUpdater: [$class: 'UpdateWithCleanUpdater']])

当我们通过直接运行 SVN 命令进行结账时,我们永远不会遇到这个问题,这意味着不稳定一定存在于插件中。然而,由于其他原因,我们确实需要继续使用该插件。

当节点承受压力时,即当它在不同的执行器上同时运行多个结账时,这种情况似乎也会更频繁地发生。

任何有关如何解决此问题的意见将不胜感激。

我们尝试使用失败-Dhudson.spool-svn[此处] 讨论了标志。1 https://stackoverflow.com/questions/53341030/intermittent-svnexception-svn-e175002-connection-reset-when-updating-worksp


@m1haus 我想我明白了。发生这种情况是因为它从 svn 获取了太多文件并超时。我只是减少了文件数量并且有效

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins 中的 SVN 签出有时会失败 的相关文章

  • Xuggler 存储库链接已损坏

    在我的 JAVA 应用程序中 我使用 Xuggler 来实现 ScreenCapture 和其他功能 现在它是一个 Maven 项目 所以我将 Xuggler 作为 Pom xml 中的依赖项 如此处所示Link http www xugg
  • 如何使用 svnkit 列出本地修改/未版本化的文件?

    我正在编写一段代码 一旦在 SVN 工作副本中的任何位置执行 就会找到根目录 File workingDirectory new File getCanonicalFile File wcRoot SVNWCUtil getWorkingC
  • 如何跳过 Maven 存储库中的发布或特定模块

    Heyho 我有一个具有以下结构的 Maven 项目 parent 项目清单 API模块 module2 module5 test 分配 组装 所以首先我运行父模块 然后运行构建 api 的模块 然后运行依赖于 api 的模块 然后运行一个
  • 在 selenium 下运行 chromedriver 日志时,如何减少其详细程度?

    我的功能测试的詹金斯失败报告充满了这样的行 selenium webdriver remote remote connection DEBUG Finished Request selenium webdriver remote remot
  • Hudson/Jenkins Git 构建所有分支

    我们有很多开发人员创建了我想要构建的功能分支 每晚我们都会运行一个需要在每个分支上运行的代码质量工具 我也不喜欢静态配置 因为分支数量每隔几周就会发生变化 在 Git 配置中有一个字段 分支说明符 默认为空白 如果你放在那里 它将构建来自所
  • 在 Ubuntu 12.04 上的 Apache 上配置 SVN 服务器

    我正在尝试通过 HTTP 访问现有的 Subversion 服务器 我的dav svn conf文件看起来像
  • Jenkins:Github webhook 不会触发任何作业

    我尝试配置詹金斯 我想要一个简单的行为 触发新的拉取请求的构建 我无法理解我错过了什么 詹金斯版本 2 89 2 At https ci mysite fr configure https ci mysite fr configure 仍然
  • 有没有办法将 Jenkins 与 Github Pull 请求结合使用?

    我希望 Jenkins 自动查找并运行属于开放拉取请求一部分的每个分支的测试套件 我还没有找到一些 Jenkins 插件 这可能吗 最近发布了一个新插件Jenkins Github 拉取请求构建器 https wiki jenkins ci
  • 如何将文件参数传递给詹金斯管道中的另一个构建作业?

    如何将当前工作区中的文件作为参数传递给构建作业 例如 build job other project parameters class FileParameterValue 真是一场噩梦 没有文档 查看了詹金斯代码等 尝试了一切 最后发现这
  • 递归删除属性

    Tortoise SVN 可以选择递归地将属性应用于所有子文件夹 子文件 现在我需要删除这个属性 我怎样才能递归地做到这一点 我没有找到如何使用 GUI 递归删除属性 但您可以使用 svn 命令行工具删除属性 svn propdel PRO
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa
  • $id:文件名、创建日期/时间 Exp $

    我经常在 C C 源代码中遇到以下语句 Id lzio c v 1 24 2003 03 20 16 00 56 roberto Exp Id file name version timestamp creator Exp 您知道哪些软件会
  • 如何从管道作业访问 git 分支名称?

    我有一个 Jenkins Pipeline 作业 配置为签出 git 存储库和特定的本地分支 如何在 Jenkinsfile 中获取本地分支的名称 我尝试加载git詹金斯插件 https wiki jenkins ci org displa
  • SVN错误155009:无法运行WC DB工作\无法打开文件\系统找不到指定的文件

    I found 信息贫乏 https www google com webhp q 22Failed 20to 20run 20the 20WC 20DB 20work 20queue 20associated 20with 22 20 2
  • Lotus Notes/Domino 开发版本控制的最佳实践

    请分享您如何对 Lotus Notes Domino 开发进行版本控制 我想将所有脚本 视图 自定义表单 脚本库等放入我们的 SVN 存储库中 半自动方法也被接受 即 如果我找到一种方法来获取一个文件中表单的所有事件脚本 并能够将其作为整个
  • 如何使用 Jenkins 声明性语法登录 docker?

    我的目标是使用声明性语法从 DockerHub 上的私有存储库中拉取 推送图像 我已经用 id 配置了我的凭据xxxxxxxxxxx 我知道我可以使用编程语法来做到这一点如图所示 https jenkins io doc book pipe
  • Jenkins 无法访问 SVN (https://)

    我创建了 Jenkins 项目 该项目在 SVN 上有文件 https repo xxx xxx svn priv 项目名称 https repo xxx xxx svn priv projectname 证书是自签名的 我的问题是 Jen
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • Jenkins Slave 自我注册

    我正在创建一个 Jenkins 主 从集群 但我无法找到一种方法让新的从服务器自动向主服务器注册 我当前的设置是运行一些 Terraform 脚本来创建主服务器和 5 个从服务器 然后我必须登录主节点并管理 Jenkins gt 管理节点

随机推荐