Sonarqube 在旧的Apache Axis 1.2.1生成的代码上执行AST扫描时,SONARQUE可能会抖动

Sonarqube 在旧的Apache Axis 1.2.1生成的代码上执行AST扫描时,SONARQUE可能会抖动,sonarqube,axis,Sonarqube,Axis,在由ApacheAxis1.2.1生成的某些代码中,扫描它时可能会出现问题。它卡在文件上,然后似乎消耗了内存并继续运行GC,直到它最终停止 它将记录如下错误 Java Main Files AST scan... 11 source files to be analyzed 9/11 files analyzed, current is /bamboo-path/TestProjectWAR/src/main/java/com/example/sonar/bug/Cont

在由ApacheAxis1.2.1生成的某些代码中,扫描它时可能会出现问题。它卡在文件上,然后似乎消耗了内存并继续运行GC,直到它最终停止

它将记录如下错误

    Java Main Files AST scan...
    11 source files to be analyzed
    9/11 files analyzed, current is /bamboo-path/TestProjectWAR/src/main/java/com/example/sonar/bug/Contact.java
    9/11 files analyzed, current is /bamboo-path/TestProjectWAR/src/main/java/com/example/sonar/bug/Contact.java    
    [JOURNAL_FLUSHER] WARNING Journal flush operation took 13,241ms last 8 cycles average is 2,192ms
...
Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar (default-cli) on project TestProject: GC overhead limit exceeded -> [Help 1]
我相信这是在我们升级到java插件3.3之后开始的,但我不是100%相信这一点

下面是代码的配对版本

public class Contact implements java.io.Serializable {
private java.lang.String cccCntctSeqNo;
private java.lang.Object __equalsCalc = null;

@Override
public synchronized boolean equals(java.lang.Object obj) {
    if (!(obj instanceof Contact)) {
        return false;
    }
    Contact other = (Contact) obj;
    if (obj == null) {
        return false;
    }
    if (this == obj) {
        return true;
    }
    if (__equalsCalc != null) {
        return (__equalsCalc == obj);
    }
    __equalsCalc = obj;
    boolean _equals;
    _equals = true
        && ((this.cccCntctSeqNo == null && other.getCccCntctSeqNo() == null) || (this.cccCntctSeqNo != null && this.cccCntctSeqNo
            .equals(other.getCccCntctSeqNo())))
    __equalsCalc = null;
    return _equals;
}

private boolean __hashCodeCalc = false;

@Override
public synchronized int hashCode() {
    if (__hashCodeCalc) {
        return 0;
    }
    __hashCodeCalc = true;
    int _hashCode = 1;
    if (getCccCntctSeqNo() != null) {
        _hashCode += getCccCntctSeqNo().hashCode();
    }
    __hashCodeCalc = false;
    return _hashCode;
}
}


是否有其他人遇到过此问题或找到了解决方法?

似乎您遇到了这个已知问题:


包含修复程序的版本即将发布。

您似乎遇到了这个已知问题:


包含修复程序的版本即将发布。

我遇到了同样的问题,它以前挂在日志刷新上,最终以我在sonarqube的Windbags Java default timeout中设置的值超时

我通过在运行sonar man命令时使用以下选项解决了此问题:- MAVEN_OPTS=“-Xms256m-Xmx4096m-XX:+UseSerialGC”


这为我解决了这个问题。

我也遇到了同样的问题,以前它挂在日志刷新上,最终以我在sonarqube的Windbags Java默认超时中设置的值超时

我通过在运行sonar man命令时使用以下选项解决了此问题:- MAVEN_OPTS=“-Xms256m-Xmx4096m-XX:+UseSerialGC”


这为我解决了这个问题。

您能否缩小范围,了解发生这种情况的规则?听起来像是检查在内存中做了一些糟糕的事情,但是没有办法从日志中准确指出这一点。您可以做的是删除质量配置文件中的一半规则,以缩小罪魁祸首规则的范围。我可以打开/关闭以使构建失败的规则之一是“条件不应无条件地计算为“TRUE”或“FALSE”'squid:S2583听起来像你遇到了这个问题:你能试试java插件的开发版本来确认这个问题在3.4中得到了修复吗?当然我可以试试。说明在哪里/内容是什么?您可以尝试使用此快照版本:您能否缩小发生此情况的规则范围?听起来像是检查在内存中做了一些糟糕的事情,但是没有办法从日志中准确指出这一点。您可以做的是删除质量配置文件中的一半规则,以缩小罪魁祸首规则的范围。我可以打开/关闭以使构建失败的规则之一是“条件不应无条件地计算为“TRUE”或“FALSE”'squid:S2583听起来像你遇到了这个问题:你能试试java插件的开发版本来确认这个问题在3.4中得到了修复吗?当然我可以试试。说明在哪里/内容是什么?您可以尝试使用此快照版本:您能否缩小发生此情况的规则范围?听起来像是检查在内存中做了一些糟糕的事情,但是没有办法从日志中准确指出这一点。您可以做的是删除质量配置文件中的一半规则,以缩小罪魁祸首规则的范围。我可以打开/关闭以使构建失败的规则之一是“条件不应无条件地计算为“TRUE”或“FALSE”'squid:S2583听起来像你遇到了这个问题:你能试试java插件的开发版本来确认这个问题在3.4中得到了修复吗?当然我可以试试。说明的位置/内容?您可以尝试使用此快照版本: