Suggestions on debugging pre-merge test failure that looks irrelevant.

Hi,
I’m looking for some suggestions on debugging pre-merge test failures that look irrelevant.

Two examples with links (while ninja check-all passed for the patch, although the DLLVM_ENABLE_PROJECTS doesn’t necessarily cover the subprojects that fail)

  1. This is caused by stale cmake configurations, as indicated by the error.
    Link of build artifact.
    Sync up to pick up new cmake configurations resolved the error.

  2. Link of build artifact

Test failed with error


1. Failed Tests (1):
1. LLVM :: Bindings/Go/go.test

I didn’t find other information in the log that might help.

There is a playbook yet I’m wondering if there are more lightweight procedures besides restarting build (e.g., looking at a continuous build dashboard for tests that might already fail or might be flaky before the patch) to debug tests that look irrelevant.

The first error you linked is for Bazel, which is not officially supported, but you have opted in to the pre-merge checks by joining the Bazel phab project. That particular message comes from the tests that detect when config files have changed. As you noted, this is due to an old baseline for your patch (that was fixed 11 days ago in https://github.com/llvm/llvm-project/commit/c6cfd385b1). I’d generally recommend rebasing to more recent commits before sending something for review/testing anyway.

For the second failure, you can see more details about the error in the error logs. The raw logs have everything (whereas the buildkite UI only shows the last 1MB, as noted at the top). There you can see the output for that particular test failure (it takes a minute to load). The relevant bit is:

no required module provides package llvm.org/llvm/bindings/go/llvm: go.mod file not found in current directory or any parent directory; see ‘go help modules’

So it’s something about a missing go dependency. I think I’ve encountered that failure before. It seems flaky. Maybe people working on go bindings can help root cause?

Sorry that doesn’t answer your meta-question. Perhaps +Mikhail Goncharov has some ideas for better workflows here

I also encountered this error, and got it to go away by passing -DLLVM_INCLUDE_GO_TESTS=OFF to cmake.

Thanks Geoffrey and James! Very helpful!

I also encountered this error, and got it to go away by passing -DLLVM_INCLUDE_GO_TESTS=OFF to cmake.

Got it.

Just to make sure I’m getting it right, I’ll have a one-line change in https://github.com/llvm/llvm-project/blob/main/llvm/CMakeLists.txt#L595 in the patch and revert this line later (which is probably fine in the review if it’s obvious go tests are not very relevant)

– James

The first error you linked is for Bazel, which is not officially supported, but you have opted in to the pre-merge checks by joining the Bazel phab project. That particular message comes from the tests that detect when config files have changed. As you noted, this is due to an old baseline for your patch (that was fixed 11 days ago in https://github.com/llvm/llvm-project/commit/c6cfd385b1). I’d generally recommend rebasing to more recent commits before sending something for review/testing anyway.

For the second failure, you can see more details about the error in the error logs. The raw logs have everything (whereas the buildkite UI only shows the last 1MB, as noted at the top). There you can see the output for that particular test failure (it takes a minute to load). The relevant bit is:

no required module provides package llvm.org/llvm/bindings/go/llvm: go.mod file not found in current directory or any parent directory; see ‘go help modules’

So it’s something about a missing go dependency.

I was able to navigate to raw logs and see the same error of missing Go dependency now .

I think I’ve encountered that failure before. It seems flaky. Maybe people working on go bindings can help root cause?

Sorry that doesn’t answer your meta-question.

It’s already very helpful to me :slight_smile:

Perhaps +Mikhail Goncharov has some ideas for better workflows here

Mikhail, it’d be great if you have some ideas!

Also, the option LLVM_INCLUDE_GO_TESTS was turned on years ago (i.e., not a recent change of enabling Go tests). Retry gives the same error; not sure if there are changes on the testing machines (and dunno how to check that)

Thanks Geoffrey and James! Very helpful!

I also encountered this error, and got it to go away by passing -DLLVM_INCLUDE_GO_TESTS=OFF to cmake.

Got it.

Just to make sure I'm getting it right, I'll have a one-line change in https://github.com/llvm/llvm-project/blob/main/llvm/CMakeLists.txt#L595 in the patch and revert this line later (which is probably fine in the review if it's obvious go tests are not very relevant)

-- James

The first error you linked is for Bazel, which is not officially supported, but you have opted in to the pre-merge checks by joining the Bazel phab project. That particular message comes from the tests that detect when config files have changed. As you noted, this is due to an old baseline for your patch (that was fixed 11 days ago in https://github.com/llvm/llvm-project/commit/c6cfd385b1). I'd generally recommend rebasing to more recent commits before sending something for review/testing anyway.

For the second failure, you can see more details about the error in the error logs. The raw logs have everything (whereas the buildkite UI only shows the last 1MB, as noted at the top). There you can see the output for that particular test failure (it takes a minute to load). The relevant bit is:

no required module provides package llvm.org/llvm/bindings/go/llvm: go.mod file not found in current directory or any parent directory; see 'go help modules'

So it's something about a missing go dependency.

I was able to navigate to raw logs and see the same error of missing Go dependency now .

I think I've encountered that failure before. It seems flaky. Maybe people working on go bindings can help root cause?

Sorry that doesn't answer your meta-question.

It's already very helpful to me :slight_smile:

Perhaps +Mikhail Goncharov has some ideas for better workflows here

Mikhail, it'd be great if you have some ideas!

Also, the option LLVM_INCLUDE_GO_TESTS was turned on years ago (i.e., not a recent change of enabling Go tests). Retry gives the same error; not sure if there are changes on the testing machines (and dunno how to check that)

Hi,
   I'm looking for some suggestions on debugging pre-merge test failures that look irrelevant.

   Two examples with links (while `ninja check-all` passed for the patch, although the DLLVM_ENABLE_PROJECTS doesn't necessarily cover the subprojects that fail)
   1) This is caused by stale cmake configurations, as indicated by the error.
        Link of build artifact.
        Sync up to pick up new cmake configurations resolved the error.

   2) Link of build artifact

       Test failed with error

Failed Tests (1):
  LLVM :: Bindings/Go/go.test

      I didn't find other information in the log that might help.

     There is a playbook yet I'm wondering if there are more lightweight procedures besides restarting build (e.g., looking at a continuous build dashboard for tests that might already fail or might be flaky before the patch) to debug tests that look irrelevant.

The test/Bindings/Go failure was a regression of recent months. (It
failed enough that I turned off it via -DLLVM_INCLUDE_GO_TESTS=OFF)
Earlier this year (<=July) I saw that llvm/bindings/go/llvm/ir_test.go
could catch many issues due to newly introduced attributes.

Cc pcc who initially introduced the binding.

Thanks Geoffrey and James! Very helpful!

I also encountered this error, and got it to go away by passing -DLLVM_INCLUDE_GO_TESTS=OFF to cmake.

Got it.

Just to make sure I’m getting it right, I’ll have a one-line change in https://github.com/llvm/llvm-project/blob/main/llvm/CMakeLists.txt#L595 in the patch and revert this line later (which is probably fine in the review if it’s obvious go tests are not very relevant)

– James

The first error you linked is for Bazel, which is not officially supported, but you have opted in to the pre-merge checks by joining the Bazel phab project. That particular message comes from the tests that detect when config files have changed. As you noted, this is due to an old baseline for your patch (that was fixed 11 days ago in https://github.com/llvm/llvm-project/commit/c6cfd385b1). I’d generally recommend rebasing to more recent commits before sending something for review/testing anyway.

For the second failure, you can see more details about the error in the error logs. The raw logs have everything (whereas the buildkite UI only shows the last 1MB, as noted at the top). There you can see the output for that particular test failure (it takes a minute to load). The relevant bit is:

no required module provides package llvm.org/llvm/bindings/go/llvm: go.mod file not found in current directory or any parent directory; see ‘go help modules’

So it’s something about a missing go dependency.

I was able to navigate to raw logs and see the same error of missing Go dependency now .

I think I’ve encountered that failure before. It seems flaky. Maybe people working on go bindings can help root cause?

Sorry that doesn’t answer your meta-question.

It’s already very helpful to me :slight_smile:

Perhaps +Mikhail Goncharov has some ideas for better workflows here

Mikhail, it’d be great if you have some ideas!

Also, the option LLVM_INCLUDE_GO_TESTS was turned on years ago (i.e., not a recent change of enabling Go tests). Retry gives the same error; not sure if there are changes on the testing machines (and dunno how to check that)

Hi,
I’m looking for some suggestions on debugging pre-merge test failures that look irrelevant.

Two examples with links (while ninja check-all passed for the patch, although the DLLVM_ENABLE_PROJECTS doesn’t necessarily cover the subprojects that fail)

  1. This is caused by stale cmake configurations, as indicated by the error.
    Link of build artifact.
    Sync up to pick up new cmake configurations resolved the error.

  2. Link of build artifact

Test failed with error

Failed Tests (1):
LLVM :: Bindings/Go/go.test

I didn’t find other information in the log that might help.

There is a playbook yet I’m wondering if there are more lightweight procedures besides restarting build (e.g., looking at a continuous build dashboard

(Probably a little late but just for the record) https://buildkite.com/llvm-project/llvm-main/builds seems to be a dashboard to check for continuous build results, so might be a good way to find existing failures.

>
> Thanks Geoffrey and James! Very helpful!
>
>>
>> I also encountered this error, and got it to go away by passing -DLLVM_INCLUDE_GO_TESTS=OFF to cmake.
>
>
> Got it.
>
> Just to make sure I'm getting it right, I'll have a one-line change in https://github.com/llvm/llvm-project/blob/main/llvm/CMakeLists.txt#L595 in the patch and revert this line later (which is probably fine in the review if it's obvious go tests are not very relevant)
>>
>>
>> -- James
>>
>>
>>>
>>> The first error you linked is for Bazel, which is not officially supported, but you have opted in to the pre-merge checks by joining the Bazel phab project. That particular message comes from the tests that detect when config files have changed. As you noted, this is due to an old baseline for your patch (that was fixed 11 days ago in https://github.com/llvm/llvm-project/commit/c6cfd385b1). I'd generally recommend rebasing to more recent commits before sending something for review/testing anyway.
>>>
>>> For the second failure, you can see more details about the error in the error logs. The raw logs have everything (whereas the buildkite UI only shows the last 1MB, as noted at the top). There you can see the output for that particular test failure (it takes a minute to load). The relevant bit is:
>>>
>>>> no required module provides package llvm.org/llvm/bindings/go/llvm: go.mod file not found in current directory or any parent directory; see 'go help modules'
>>>
>>>
>>> So it's something about a missing go dependency.
>
>
> I was able to navigate to raw logs and see the same error of missing Go dependency now .
>>>
>>> I think I've encountered that failure before. It seems flaky. Maybe people working on go bindings can help root cause?
>>>
>>> Sorry that doesn't answer your meta-question.
>
>
> It's already very helpful to me :slight_smile:
>
>>>
>>> Perhaps +Mikhail Goncharov has some ideas for better workflows here
>
>
> Mikhail, it'd be great if you have some ideas!
>
> Also, the option LLVM_INCLUDE_GO_TESTS was turned on years ago (i.e., not a recent change of enabling Go tests). Retry gives the same error; not sure if there are changes on the testing machines (and dunno how to check that)

Circling back. ⚙ D116698 [CMake] Disable LLVM_INCLUDE_GO_TESTS by default has been submitted to
disable LLVM_INCLUDE_GO_TESTS by default.