Skip to content

Incorrect detecton of failure: fatal: No rebase in progress? #1711

Open
nodejs/build
#4551

Description

@sxa

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:

  1. 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
  2. Adjust the git command to sed out the error message e.g. git rebase --abort 2>&1 | tee 's/fatal: //g'
  3. Detect if we're in a rebase (possibly check for .git/rebase-apply or .git/REBASE_HEAD) before running git rebase --abort to 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions