Jenkins 抛出 java.lang.StackOverflowError ——不仅仅是在 unstash 上

2024-04-06

2019 年 7 月 31 日更新
该错误有时发生在 unstash 调用之前,但总是在同一服务器上。为了查看问题是否是由于 unstash 在需要覆盖文件的目录中工作引起的,我清理了该目录 - 但问题仍然发生。这次开始输出(转录,任何拼写错误都是我的错):

Running on my_agent in C:/Jenkins/workspace/script_name
. . .
Running in D:\mydir
[Pipeline] {
[Pipeline] bat
[mydir] Running batch script
D:\mydir> dir .
<output of dir command>
[Pipeline] End of Pipeline
java.lang.StackOverflowError
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:115)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:778)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
etc.

它没有到达 unstash 调用,但仍然遇到相同的错误。
= = = = =
在 Windows 10 上的 Jenkins 中取消存储时出现 java.lang.StackOverflowError;发生在一台服务器上,但不会发生在另一台服务器上。看起来 unstash 正在无限递归。

  • stash 和 unstash 的名称相同吗? - 是的;使用相同的函数在每个上取消存储。
  • 重新启动 Jenkins 主服务器和从服务器 - 是的。
  • 磁盘上有足够的空间来取消存储吗? - 是的。
  • 网上搜索这个错误——是的,但是这个问题没有得到解决。
  • 这在过去有效吗? -- 是的,unstash 可以在一台服务器上运行,但不能在另一台服务器上运行。
  • 目标目录是否干净? - 是的。
  • 在不同的时间尝试过? - 是的。
def stash_my_stuff() {
    stash includes: '**', name: 'my_stash'
}
def unstash_my_stuff() {
    unstash 'my_stash'
}

// on one agent
dir("d:\\tmsc") { unstash_my_stuff() }

// later on a different agent
dir("d:\\tmsc") { unstash_my_stuff() }
13:23:33 Running in D:\tmsc
[Pipeline] {
[Pipeline] unstash
[Pipeline] }
[Pipeline] // dir
[Pipeline] dir
13:24:01 Running in D:\tmsc
[Pipeline] {
[Pipeline] End of Pipeline
java.lang.StackOverflowError
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:111)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
    at org.jboss.marshalling.river.RiverMarshaller.doSerializableObject(RiverMarshaller.java:988)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:778)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
    at org.jboss.marshalling.river.RiverMarshaller.doSerializableObject(RiverMarshaller.java:988)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
etc., etc., etc.
sometimes it also includes
    at org.jboss.marshalling.river.RiverMarshaller.doSerializableObject(RiverMarshaller.java:967)

我遇到了类似的错误,并最终通过几件事解决了这个问题,其中之一是 MarekR 在他的回答中提到的。

  1. 更新 jenkins.xml 文件以使用 64 位 JRE
  2. 将 JRE 的最大堆大小增加到 1024m(在 jenkins.xml 文件中)
  3. 在 jenkins.xml 中将堆栈大小增加到 4m (-Xss4m)

最后一定要保存 xml 文件并重新启动 jenkins 服务以获取新的更改。

希望这可以帮助!

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

Jenkins 抛出 java.lang.StackOverflowError ——不仅仅是在 unstash 上 的相关文章

  • Jenkins 安排代理节点可用性

    我们有许多机器希望用作 Jenkins 的代理节点 但仅限于特定的时间间隔 即不在工作时间 是否可以配置一个代理节点作为特定时间范围内构建的代理 例如 周一至周五晚上 10 点至凌晨 5 点 周六和周日全天 In the 从机配置面板 选择
  • 构建成功后从远程计算机上的工作区执行 Shell 脚本 (Jenkins)

    场景是 我有一个工作 A 它运行我的 ant 脚本并为我打包工件 我还使用参数化触发器插件来触发我的 作业 B 它将在远程计算机上部署我的工件 工作 A 工作正常 工作 B 也工作正常 我必须使用作业 B 执行的任务是 GIT checko
  • PHP启动:无法使用Jenkins加载动态库'/usr/lib/php/20160303/pdo_sqlite.so'

    在 Jenkins 管道中运行 phpunit 测试套件时 我收到此警告 PHP Warning PHP Startup Unable to load dynamic library usr lib php 20160303 pdo sql
  • BitBucket+Jenkins:仅在特定分支更改时触发构建

    以下是该问题的据称解决方案 尽管它看起来确实是一种解决方法 而不是最终的解决方案 有没有一种方法 通过作业配置或 bitbucket 挂钩配置 我可以将作业设置为仅在推送到特定分支时运行构建 是否可以仅从一个特定分支触发 Jenkins h
  • 删除重载、递归溢出

    嘿伙计们 我写了一个快速测试 我想删除调用deleteMe 然后它会自行删除 这样做的目的是让我可以正常删除由lib分配的obj 我不希望因 crt 或 w e 导致任何崩溃 通过删除这个 我得到了一个堆栈溢出 没有它 msvc 说我泄漏了
  • 使用 jenkins.Creating .apk 文件生成 android 版本

    我正在使用 Jenkins 在 mac 上持续集成 android 应用程序 但是我无法使用 Jenkins 生成 apk 文件 就像我们在 iOS 应用程序中创建 ipa 一样 创建用于在 mac 上分发的 apk 文件的配置是什么 您可
  • 如何删除 TFS 工作区映射?

    我在一个团队项目中的 tfs 中有一个项目 然后我们将该项目移动到另一个团队项目中的不同位置 我已将 Jenkins 配置为连接到团队项目并构建我的解决方案 但是当我更改设置以连接到新的 tfs 团队项目时 出现以下错误 workspace
  • 访问先前 Jenkins 构建中失败的阶段

    我编写了一个 Jenkinsfile 脚本 它获取当前 Github 提交中的文档是否已更新或代码是否已更新 并相应地启动所有阶段 如果仅更新文档 我不会再次运行代码测试阶段 所以现在如果之前的构建失败并且现在在当前的 Git 提交中仅更新
  • 使用 Jenkins 运行 ios-sim

    我正在尝试使用以下命令从命令行启动我的应用程序ios sim https github com downloads pegli ios sim ios sim xcode4 3 tar gz但这就是我得到的 Started by user
  • 在 jelly 脚本中使用 JavaScript

    我正在尝试在 Jenkins 中使用用 JavaScript 编写的脚本 我认为最简单的方法是在 jelly 脚本中调用它们 例如 我有文件 myCustom js alert Hello World function myFunction
  • Jenkins 管道和 java.nio.file.* 方法的问题

    我正在尝试使用 java nio file 中的方法在 Jenkins 管道中执行一些基本文件操作 无论代码存在于哪个节点块中 代码都在主节点上执行 在管道中 我已经验证了各个节点块都是正确的 它们唯一地标识了特定的节点 但是 pathEx
  • Powershell Invoke-Command 远程手动工作,但不能通过 Jenkins

    我遇到了一个非常奇怪的情况 即从 Windows Server 2012 R2 手动运行相同的命令时可以工作 但从同一服务器上运行的 Jenkins 从属进程无法工作 首先 手动运行的输出 管理 PowerShell 窗口 PS C Use
  • 无法安装企业应用程序 - 此配置文件无法安装在此设备上

    我正在设置 Jenkins 来构建应用程序的企业版本 以便在我们的内部应用程序商店中分发 如果我将应用程序存档在 Xcode 中 然后在手机上下载内置的 ipa 则应用程序安装不会出现任何问题 但是当我使用 Jenkins 生成的具有相同私
  • 在 Jenkins 声明式管道中对后置条件进行分组

    有没有办法在 Jenkins 声明式管道中对后置条件进行分组 例如 我想对状态做同样的事情aborted failure and success 有没有比以下更短的方法 post aborted sendNotification curre
  • Jenkins + Gradle + Artifactory:无法读取生成的构建信息

    我正在尝试使用 Jenkins Pipeline 调用 Gradle 工具 将我的工件推送到 Artifactory 我正在关注 GitHub 上发布的示例 Example1 https github com JFrogDev projec
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 在docker容器中运行Jenkins有什么优势

    我发现了很多关于如何运行你的博客Jenkins in Docker但没有人真正解释这样做的好处 这是我发现的唯一原因 使用 Docker 的理由 https twasink net 2016 08 01 setting up a jenki
  • 如何从容器内运行 podman?

    我想跑podman https podman io作为运行 CI CD 管道的容器 但是 我不断从 podman 容器中收到此错误 podman info ERRO 0000 overlay is not supported over ov
  • Jenkins 共享库:“java.lang.NoSuchMethodError:没有这样的 DSL 方法”

    我正在尝试通过 Jenkinsfile 和共享库创建 Jenkins 管道 我通过 Web UI 创建了一个作业来获取 Jenkinsfile 它工作正常 但是 共享库内容似乎无法被 Jenkins 识别 下面是 Jenkinsfile 和
  • 有 JUnit Attachments Jenkins 插件工作的示例吗?

    在过去一个小时左右的时间里 我一直在努力让以下工作正常进行 我将附件存储在目标目录中 但它们在班级级别或测试级别的测试页面上都没有链接 我尝试了以下每种组合 放置附件文件夹target surefire reports class 与目标

随机推荐

  • 将字符串转义为 sed 替换模式

    在我的 bash 脚本中 我有一个外部 从用户接收的 字符串 我应该在 sed 模式中使用它 REPLACE
  • 如何使用脚本任务声明工作表?

    我试图声明一个工作表来处理 xlsx 文件的单元格 但当我声明工作表对象时 我的 C 脚本失败 Microsoft Office Interop Excel Application xlApp new Microsoft Office In
  • 为什么 java.security.NoSuchProviderException 没有这样的提供者:BC?

    jar bcprov jdk16 145 jar 已添加到项目中 Security addProvider new org bouncycastle jce provider BouncyCastleProvider 已添加到类中 并且Bo
  • Spark清理shuffle溢出到磁盘

    我有一个循环操作 它生成一些 RDD 进行重新分区 然后进行聚合键操作 循环运行一次后 它会计算出最终的 RDD 该 RDD 会被缓存和检查点 并用作下一次循环的初始 RDD 这些 RDD 非常大 并且在每次迭代到达最终 RDD 之前都会生
  • 如何在android studio中添加轮廓材质图标?

    我正在使用 android 材质图标插件 但没有 轮廓图标 选项 任何选项或任何其他插件 目前我正在使用 https github com konifar android material design icon generator plu
  • Pandas 替换非零值

    我知道我可以用以下内容替换所有 nan 值df fillna 0 并将单个值替换为df replace 1 但是如何用单个值替换所有非零值 使用布尔索引 df df 0 value
  • 在 R 中使用 readHTMLTable 删除行

    我正在尝试使用 readHTMLTable 从 NOAA 提取模型数据 据我从 HTML 中可以看出 我试图获取的表格有多个字幕 其中每个字幕都由跨越所有列的单个单元格组成 由于某种原因 这导致 readHTMLTable 忽略紧随副标题的
  • 如何安装Android SDK Platform-Tools 24.0.0?

    我正在按照设置 Android N 预览版的指南进行操作https developer android com preview setup sdk html https developer android com preview setup
  • MVC Get 与 Post

    在研究 MVC 概念时 我了解到在 GET 操作中包含代码来更改服务器对象的状态 数据库更新等 并不是一个好习惯 缓存返回数据 已被给出作为其原因 有人可以解释一下吗 提前致谢 这是 HTTP 标准规定的 GET 动词应该是幂等且安全的 9
  • Python ConfigParser 问题

    ConfigParser 的配置文件是否必须命名为 Config ini 才能工作 我希望名称为 1Config ini 以便它显示在文件夹目录的顶部 这就是我目前拥有的 config ConfigParser ConfigParser c
  • 如何在 3.4+ 中禁用 JooQ 的自我广告消息?

    我是 JooQ 的忠实粉丝 但不幸的是 自从从 3 3 升级以来 每次在我的代码退出之前 它都会向控制台打印一条非常烦人的消息 Feb 02 2015 7 28 06 AM org jooq tools JooqLogger info IN
  • 如何将对象传递到 Xamarin Forms 自定义渲染器?

    如何将某个对象的实例传递给 Xamarin Formscustom render 这是自定义渲染器 public class LoginPageRenderer PageRenderer public override void ViewD
  • 程序集具有强名称,但我收到错误消息,指出需要强名称

    我正在尝试将第三方 COM dll 加载到我的应用程序中 一切都构建得很好 但是当我运行应用程序时 我不断从应用程序中收到此消息 无法加载文件或程序集 程序集 版本 1 0 0 0 文化 中性 PublicKeyToken null 或其依
  • 具有以编程方式确定的常量 DEFAULT 值的 ALTER TABLE

    我正在尝试向表 Employee 添加一列 MSSQL 2005 并使用另一个表 Department 的主键的默认约束 然后我将使该列成为该表的 FK 本质上 如果未提供 DepartmentID 这将根据部门名称将新员工分配到基础部门
  • 使用 df1 中的值从 df2 检索值,其中 df2 列和索引包含一系列值

    我有一个数据框 其中包含员工信息 例如 Name performance factor 1 和 Performance factor 2 我有另一个数据框 我根据 Performance factor 1 和 Performance act
  • 在 Android 中处理来电

    我想在 Android 中处理来电 实际上我想设置一个持续时间 如果我的手机接到任何电话 就会自动向他们每个人发送一条消息 有任何想法吗 只需将您的课程扩展到PhoneStateListener并覆盖onCallStateChanged方法
  • Drupal 在视图中返回结果数

    我在 Drupal 中有一个视图可以过滤我的内容 它带回 7 行 我想要返回的只是返回的数字或结果 7 这可能吗 我尝试使用查看结果计数器 但它为每个结果返回一个数字 1 2 3 4 5 6 7 我只需要第七部分 所以在 SQL 中我会执行
  • 将范围转换为图像

    我正在寻找将气体范围保存为图片 jpg 的方法 类似于 Excel VBA 的东西 Range MainMatrixName CopyPicture Appearance xlScreen Format xlPicture copy Exc
  • 如何使用重塑包重塑此数据框[重复]

    这个问题在这里已经有答案了 我有一个相当大的数据框 结构如下 id x1 x2 x3 y1 y2 y3 z1 z2 z3 v 1 2 4 5 10 20 15 200 150 170 2 5 2 3 7 6 25 35 40 300 350
  • Jenkins 抛出 java.lang.StackOverflowError ——不仅仅是在 unstash 上

    2019 年 7 月 31 日更新该错误有时发生在 unstash 调用之前 但总是在同一服务器上 为了查看问题是否是由于 unstash 在需要覆盖文件的目录中工作引起的 我清理了该目录 但问题仍然发生 这次开始输出 转录 任何拼写错误都