apache / apache/hudi

Investigate empty or corrupt Jacoco execution data file from Azure CI Job 1 FT

Open
#17,397 1 comment 0 reactions 0 assignees View on GitHub
from-jira priority:high type:devtask
Dominant language
Java
Stars
6.2k
Forks
2.5k
Avg merge
2d 8h
Merged PRs (30d)
111

Description

The merging of Jacoco execution data files fail because the file is corrupt from Azure CI Job 1 FT.  The merge can succeed when the file is empty, which is also abnormal.
{code:java}
-rw-r--r-- 1 vsts docker 1126236 Mar 8 20:32 /home/vsts/work/1/s/hudi-client/hudi-spark-client/target/jacoco-agent/jacoco1.exec
-rw-r--r-- 1 vsts docker 1880 Mar 8 20:50 /home/vsts/work/1/s/hudi-client/hudi-spark-client/target/jacoco-agent/jacoco2.exec
[INFO] Loading execution data file /home/vsts/work/1/s/hudi-client/hudi-spark-client/target/jacoco-agent/jacoco1.exec.
[INFO] Loading execution data file /home/vsts/work/1/s/hudi-client/hudi-spark-client/target/jacoco-agent/jacoco2.exec.
Exception in thread "main" java.io.EOFException
at java.base/java.io.DataInputStream.readByte(DataInputStream.java:272)
at org.jacoco.cli.internal.core.internal.data.CompactDataInput.readBooleanArray(CompactDataInput.java:64)
at org.jacoco.cli.internal.core.data.ExecutionDataReader.readExecutionData(ExecutionDataReader.java:150)
at org.jacoco.cli.internal.core.data.ExecutionDataReader.readBlock(ExecutionDataReader.java:116)
at org.jacoco.cli.internal.core.data.ExecutionDataReader.read(ExecutionDataReader.java:93)
at org.jacoco.cli.internal.core.tools.ExecFileLoader.load(ExecFileLoader.java:60)
at org.jacoco.cli.internal.core.tools.ExecFileLoader.load(ExecFileLoader.java:74)
at org.jacoco.cli.internal.commands.Merge.loadExecutionData(Merge.java:61)
at org.jacoco.cli.internal.commands.Merge.execute(Merge.java:45)
at org.jacoco.cli.internal.Main.execute(Main.java:90)
at org.jacoco.cli.internal.Main.main(Main.java:105)
{code}
{code:java}
Hudi source directory: /home/vsts/work/1/s
-rw-r--r-- 1 vsts docker 1126064 Mar 6 04:42 /home/vsts/work/1/s/hudi-client/hudi-spark-client/target/jacoco-agent/jacoco1.exec
-rw-r--r-- 1 vsts docker 0 Mar 6 04:42 /home/vsts/work/1/s/hudi-client/hudi-spark-client/target/jacoco-agent/jacoco2.exec
[INFO] Loading execution data file /home/vsts/work/1/s/hudi-client/hudi-spark-client/target/jacoco-agent/jacoco1.exec.
[INFO] Loading execution data file /home/vsts/work/1/s/hudi-client/hudi-spark-client/target/jacoco-agent/jacoco2.exec.
[INFO] Writing execution data to /home/vsts/work/1/s/merged-jacoco.exec.
Jacoco merge succeeded on attempt 1
{code}

## JIRA info

- Link: https://issues.apache.org/jira/browse/HUDI-9143
- Type: Sub-task
- Parent: https://issues.apache.org/jira/browse/HUDI-9015

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by examining the Azure CI Job 1 FT artifacts under hudi-client/hudi-spark-client/target/jacoco-agent/, especially jacoco1.exec and jacoco2.exec, and review the Jacoco merge output shown in the issue. Done means identifying and reproducing why the execution data is empty or corrupt and recording a confirmed explanation for the merge failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, java
Domain
ci-cd, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.