Repository navigation
Description
I was taking a look at the details of the reliability reports to see if we could apply any extra mitigations fro some of the non-test related failures. The No rebase in progress message occurs after running git rebase --abort in there build which is there to cancel any rebase IF it is in progress and is generally not indicative of any problem. It occurs in most of the test build jobs - if there was no active rebase in progress at the time then the "fatal" error message occurs but does not cause the build to stop/fail. However when a build really fails for another reason the reliability reports pick up this message and considers it a failure condition. Looking at the three jobs which are associated by that message in the most recent report we have:
https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu2404_sharedlibs_openssl40_x64/60170/console
A failure without any specific error message from a compilation on nodejs/node#65794:
23:18:16 make[2]: *** [tools/v8_gypfiles/v8_compiler.target.mk:396: /home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/obj.target/v8_compiler/deps/v8/src/compiler/turboshaft/pipelines.o] Error 255
23:18:16 make[2]: *** Waiting for unfinished jobs....
23:18:36 rm 859fe60ab264eb7019e7afea49f80b24f25b66ae331f1fd29c7c4ea5d88cdb46.intermediate a50936564b94c8a1c04b713ccd861b094c973ce83a2131b86111777ecadc0a82.intermediate c5e23f95e9933fecc9c5c0d276857a4b0235c2cb602a48e734045dc6b96009b2.intermediate 8439afbcbdaeb93562586f0baca02b2ef4d86b20ae3bd3bb10b4d0677db32e35.intermediate
23:18:36 make[1]: *** [Makefile:145: node] Error 2
23:18:36 make: *** [Makefile:684: build-ci] Error 2
https://ci.nodejs.org/job/node-test-commit-linux/nodes=debian12-x64/74197/console
This was a real compilation error:
00:23:48 CXX(target) /home/iojs/build/workspace/node/out/Release/obj.target/v8_base_without_compiler/deps/v8/src/maglev/maglev-known-node-aspects.o
00:24:58 In file included from ../deps/v8/src/maglev/maglev-known-node-aspects.cc:5:
00:24:58 In file included from ../deps/v8/src/maglev/maglev-known-node-aspects.h:11:
00:24:58 In file included from ../deps/v8/src/base/logging.h:21:
00:24:58 In file included from ../deps/v8/src/base/template-utils.h:11:
00:24:58 In file included from /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/functional:61:
00:24:58 In file included from /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/unordered_map:49:
00:24:58 /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/erase_if.h:59:10: error: no matching function for call to object of type '(lambda at ../deps/v8/src/maglev/maglev-kna-map.h:96:32)'
00:24:58 59 | if (__pred(*__iter))
00:24:58 | ^~~~~~
https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu2404_sharedlibs_shared_x64/60140/console
Lots of multiple symbols errors:
00:54:27 /usr/bin/ld: /home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/obj.target/v8_compiler/deps/v8/src/compiler/zone-stats.o: in function `v8::internal::compiler::ZoneStats::ZoneStats(v8::internal::AccountingAllocator*)':
00:54:27 zone-stats.cc:(.text._ZN2v88internal8compiler9ZoneStatsC2EPNS0_19AccountingAllocatorE+0x0): multiple definition of `v8::internal::compiler::ZoneStats::ZoneStats(v8::internal::AccountingAllocator*)'; /home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/obj.target/v8_base_without_compiler/deps/v8/src/compiler/zone-stats.o:zone-stats.cc:(.text._ZN2v88internal8compiler9ZoneStatsC2EPNS0_19AccountingAllocatorE+0x0): first defined here
00:54:27 /usr/bin/ld: /home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/obj.target/v8_compiler/deps/v8/src/compiler/zone-stats.o: in function `v8::internal::compiler::ZoneStats::~ZoneStats()':
00:54:27 zone-stats.cc:(.text._ZN2v88internal8compiler9ZoneStatsD2Ev+0x0): multiple definition of `v8::internal::compiler::ZoneStats::~ZoneStats()'; /home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/obj.target/v8_base_without_compiler/deps/v8/src/compiler/zone-stats.o:zone-stats.cc:(.text._ZN2v88internal8compiler9ZoneStatsD2Ev+0x0): first defined here
00:54:34 clang++-19: error: linker command failed with exit code 1 (use -v to see invocation)
00:54:34 make[2]: *** [libnode.target.mk:317: /home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/obj.target/libnode.so.155] Error 1
00:54:34 rm 859fe60ab264eb7019e7afea49f80b24f25b66ae331f1fd29c7c4ea5d88cdb46.intermediate a50936564b94c8a1c04b713ccd861b094c973ce83a2131b86111777ecadc0a82.intermediate c5e23f95e9933fecc9c5c0d276857a4b0235c2cb602a48e734045dc6b96009b2.intermediate 8439afbcbdaeb93562586f0baca02b2ef4d86b20ae3bd3bb10b4d0677db32e35.intermediate 195851eef23d42bf3f2e1e4f43321f7fe2681801a42402eee3afc6992afaad86.intermediate
00:54:34 make[1]: *** [Makefile:145: node] Error 2
00:54:34 make: *** [Makefile:675: build-ci] Error 2
00:54:34 Build step 'Conditional steps (multiple)' marked build as failure
Options:
- Make the reliability reports actively ignore that specific error, as it's unlikely that this is ever a cause of the build failure despite the
fatal:prefix - Adjust the
gitcommand tosedout the error messagee.g. git rebase --abort 2>&1 | tee 's/fatal: //g' - Detect if we're in a rebase (possibly check for
.git/rebase-applyor.git/REBASE_HEAD) before runninggit rebase --abortto avoid the error
I'm leaning a bit towards (3) but that will require a little bit of testing. I'll leave this open until we have a solution one way or another in case there is interest in fixing the report generation as the current message in the reports is misleading.
Activity