【问题标题】:Jenkins build randomly fails with a StackOverflowError during AspectJ weaving在 AspectJ 编织期间,Jenkins 构建随机失败并出现 StackOverflowError
【发布时间】:2013-04-10 03:47:09
【问题描述】:

我们的 Jenkins (maven) 构建随机失败,并出现以下错误堆栈:

 -- (StackOverflowError) null
null
java.lang.StackOverflowError
    at org.aspectj.weaver.World.resolve(World.java:273)
    at org.aspectj.weaver.World.resolve(World.java:209)
    at org.aspectj.weaver.UnresolvedType.resolve(UnresolvedType.java:645)
    at org.aspectj.weaver.ResolvedType.getRawType(ResolvedType.java:2331)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:427)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:393)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:427)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:393)

此故障绝对不是由实际代码更改引起的,因为通常在此类故障之后,手动触发的后续构建(即未提交代码)成功。

版本如下:

詹金斯:1.501

行家:2.2.2

方面:1.6.10

有人知道如何解决这个问题吗?

【问题讨论】:

  • 虽然这个构建失败是随机发生的,但它总是发生在编织同一个类的末尾。不过我不知道那门课有什么问题

标签: build maven-2 jenkins aspectj


【解决方案1】:

只是猜测,但由于 1.6.8 中修复的错误而发生了类似的错误。是什么阻止您升级到当前的 AspectJ 版本?你的真的很老了。

【讨论】:

  • 这是我在其他一些论坛上看到的,我认为 1.6.8 之后的任何版本都可以。我们正处于项目的一个阶段,我们宁愿不冒险升级这种依赖关系。也就是说,我会尝试最新版本,看看是否能解决问题
  • 升级到最新版本的 aspectjrt (1.7.2) 没有帮助
【解决方案2】:

我认为升级到最新版本的 aspectj 没有解决问题的原因是因为在 pom.xml 中定义了 aspectj maven 插件版本 1.3。此版本的插件依赖于 aspectj 版本 1.6.7(1.6.8 之前的版本,其中引入了修复)。将插件升级到 1.4 版(取决于 aspectj 1.6.11 版)似乎已经解决了这个问题,因为从那以后我们没有收到 StackOverflowError 异常。

一般来说,应该检查依赖树(包括插件),以防有过时的隐藏依赖。

查找依赖树(包括插件)的命令是:

mvn dependency:tree

mvn dependency:resolve-plugins

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 2016-03-22
    • 2021-12-22
    相关资源
    最近更新 更多