This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch master-catalog-spi-review-21 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 7b56d048ea8633c99467495e2e60c7926b16130a Author: morningman <[email protected]> AuthorDate: Tue Jul 28 20:05:59 2026 +0800 [doc](test) record the command the FE UT pipeline actually runs The note compared against a hand-written maven invocation. The official pipeline does not use that: TeamCity Doris_Doris_FeUt runs a container that invokes the repo's own run-fe-ut.sh --coverage, which expands to a -Pcoverage test jacoco:report run over FE_MODULES. Also records, without drawing conclusions, three differences that matter when reading CI results: the pipeline additionally produces coverage, it passes -Dmaven.test.failure.ignore=true and decides pass/fail in the surrounding shell, and that shell forces the exit code back to 0 when a run has more than 6000 tests with at most 10 failures and 10 errors -- so a green FeUt build is not the same as zero failures. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> --- plan-doc/fe-core-ut-runtime-problem.md | 56 ++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/plan-doc/fe-core-ut-runtime-problem.md b/plan-doc/fe-core-ut-runtime-problem.md index 296cbe4602a..2a96a128859 100644 --- a/plan-doc/fe-core-ut-runtime-problem.md +++ b/plan-doc/fe-core-ut-runtime-problem.md @@ -21,6 +21,62 @@ mvn -f <repo>/fe/pom.xml -pl fe-core -am test \ 结果:**跑了 3 小时 20 分还没结束**,而真正相关的改动只有 135 行纯删除。 +### 1.1 对照:官方流水线用的命令 + +上面是本地手敲的 maven 命令。**官方 CI 走的不是它**,而是仓库自带的 `run-fe-ut.sh`。 +(查自 TeamCity build configuration `Doris_Doris_FeUt`「FE UT」,build 1007861。) + +**调用链**:TeamCity Step 1(inline shell)→ docker 容器 → `run-fe-ut.sh` + +```bash +# TeamCity Step 1 内,起容器跑 UT +docker run -i --rm --network=host \ + --name doris-fe-ut-%build.vcs.number% \ + -e TZ=Asia/Shanghai \ + -v /etc/localtime:/etc/localtime:ro \ + -v /home/work/.m2:/root/.m2 \ + -v /home/work/.npm:/root/.npm \ + ${maven_mount} \ + -v "${git_storage_path}":/root/git \ + -v %teamcity.build.checkoutDir%:/root/doris \ + "${docker_version}" \ + /bin/bash -c " + ...(环境变量若干,此处从略)... \ + && cd /root/doris \ + && bash run-fe-ut.sh --coverage | tee '${fe_ut_log}'" +``` + +`run-fe-ut.sh`(`--coverage` 分支,`run-fe-ut.sh:197-201`)最终执行: + +```bash +"${MVN_CMD}" -Pcoverage test jacoco:report -pl "${MVN_MODULES}" -am \ + -DfailIfNoTests=false -Dmaven.test.failure.ignore=true +``` + +其中 `MVN_MODULES` 由 `run-fe-ut.sh:154` 从 `FE_MODULES` 数组拼成。 + +**与本地命令的差异(据实记录,未评估影响)**: +- CI 走 `-Pcoverage` + `jacoco:report`,**多做了覆盖率统计**;本地未做 +- CI 用 `-Dmaven.test.failure.ignore=true`,**让 maven 永远不因用例失败而中断**, + 改由外层 shell `grep 'BUILD SUCCESS'` 判定 +- 外层 shell 另有一段兜底:汇总所有 `Tests run/Failures/Errors/Skipped`, + 若 `Tests_run>6000 && Failures<=10 && Errors<=10` 则**把 exit_flag 改回 0** + (脚本注释说明用途是快速 mute 不稳定用例) + ⇒ **FeUt 流水线显示绿,不等价于零失败**,读 CI 结果时需注意 +- CI 跑在固定的 docker 镜像里,`~/.m2` 从宿主机挂载并有预热缓存;本地无 + +**耗时对照**(TeamCity 最近 8 次 finished 构建): + +``` +1007850 SUCCESS 67分51秒 1007806 SUCCESS 71分22秒 +1007847 FAILURE 59分51秒 1007797 FAILURE 80分41秒 +1007881 UNKNOWN 33分41秒 1007792 FAILURE 81分22秒 +1007807 UNKNOWN 43分21秒 1007791 FAILURE 83分12秒 +``` + +⇒ CI 侧成功构建约 **67–71 分钟**(且含覆盖率统计)。本地那次 3 小时 20 分仍未结束。 +**两者环境与参数均有差异,本文不就差异原因下结论。** + --- ## 2. 实测数据 --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
