gpt4 book ai didi

maven - 作业终止后的 JaCoCo 内存分配

转载 作者:行者123 更新时间:2023-12-01 13:39:30 25 4
gpt4 key购买 nike

上周,我在使用 Jenkins 时发现了一个奇怪的时刻。在我的多模块项目中,我在 Jenkins 中使用了 Jacoco 测试覆盖率Jacoco-plugin

我在我的 Jenkins 中开始了一些工作,当涉及到测试阶段时,将创建 Jacoco 进程并在工作执行后关闭该进程。但是当作业卡在测试阶段时,唯一的办法就是终止作业。但在这种情况下,Jacoco 进程不会关闭,即使在 Jenkins 重启后也是如此。唯一的办法就是杀死进程。

我有一个 Jenkins 在我的物理机器上运行,另一个在 docker 中运行。这两种情况都会出现问题。

这是父 pom.xml 中我的 Jacoco 配置,但我确定这不是重点。

<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<configuration>
<excludes>
<exclude>**/*Builder.class</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-prepare-agent-integration</id>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>default-report-integration</id>
<goals>
<goal>report-integration</goal>
</goals>
</execution>
</executions>
</plugin>

有没有人遇到过同样的问题或者可能有一些提示或猜测?

最佳答案

我还没有找到这个问题的具体解决方案,但我已经构建了一个小的解决方法。也许它对某些人有用。

重点是创建一个每小时运行一个脚本的作业。该脚本正在检查是否有一些 jacoco 进程运行时间超过 3600 秒并杀死它们。

脚本:

#!/bin/bash

PROCESS_NAME=jacoco
MAX_TIME=3600

echo "Searching for $PROCESS_NAME processes running for more than $MAX_TIME seconds"

pgrep -f $PROCESS_NAME | while read pid
do
running_time=$(ps -feo "etimes=" $pid | sed -e 's/ //g')
if [ $running_time -gt $MAX_TIME ]
then
echo "killing the process with $pid"
kill $pid
fi
done

关于maven - 作业终止后的 JaCoCo 内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42786787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com