Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Panic when a test times out #3749

Merged
merged 1 commit into from
Dec 11, 2023
Merged

Panic when a test times out #3749

merged 1 commit into from
Dec 11, 2023

Conversation

fmeum
Copy link
Member

@fmeum fmeum commented Nov 9, 2023

What type of PR is this?

Feature

What does this PR do? Why is it needed?

By calling panic when a Bazel test times out, which is indicated by Bazel sending a SIGTERM, stack traces of all Go routines are printed, similar to the behavior of native go test.

Which issues(s) does this PR fix?

Fixes #3746

Other notes for review

@fmeum fmeum force-pushed the 3746-test-timeout branch 4 times, most recently from d5b3d4f to 6311550 Compare November 10, 2023 08:12
@fmeum
Copy link
Member Author

fmeum commented Nov 10, 2023

CC @rickystewart

@rickystewart
Copy link
Contributor

Ping on this :) IMO this is a colossal UX improvement over the status quo.

Copy link
Contributor

@tyler-french tyler-french left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Nice work making the signal channel have a buffer of 1. I do wonder if there is a more idiomatic way to handle a stack trace with runtime.Stack and os.Exit(), but panic is probably good for simplicity.

go/tools/bzltestutil/wrap.go Show resolved Hide resolved
@fmeum
Copy link
Member Author

fmeum commented Dec 11, 2023

I do wonder if there is a more idiomatic way to handle a stack trace with runtime.Stack and os.Exit(), but panic is probably good for simplicity.

Since the testing package itself uses panic, I see value in using the same technique. Unfortunately we can't get the list of running tests as it does appear to be internal to that package.

By calling `panic` when a Bazel test times out, which is indicated by
Bazel sending a SIGTERM, stack traces of all Go routines are printed,
similar to the behavior of native `go test`.
@fmeum fmeum enabled auto-merge (squash) December 11, 2023 06:33
@fmeum fmeum merged commit 43e644e into master Dec 11, 2023
5 checks passed
@fmeum fmeum deleted the 3746-test-timeout branch December 11, 2023 07:10
cgrindel-self-hosted-renovate bot referenced this pull request in cgrindel/bazel-starlib Dec 19, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://togithub.com/bazelbuild/rules_go) |
http_archive | minor | `v0.43.0` -> `v0.44.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.44.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.44.0)

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.43.0...v0.44.0)

### IMPORTANT CHANGES

#### Tests now call `panic()` when they timeout

This means there is a running goroutine (which will fail
[goleak](https://togithub.com/uber-go/goleak) detection)

[Goroutine 26 in state chan receive, with
github.com/bazelbuild/rules_go/go/tools/bzltestutil.RegisterTimeoutHandler.func1
on top of the

This also means there may be some different behavior when calling
`SIGTERM` directly from within a test.

For more information see:
[https://github.com/bazelbuild/rules_go/pull/3749](https://togithub.com/bazelbuild/rules_go/pull/3749)

#### Bzlmod support for `nogo`

This can be added in your `MODULE.bazel` file:

go_sdk = use_extension("@&#8203;io_bazel_rules_go//go:extensions.bzl",
"go_sdk")
    go_sdk.download(
        name = "go_sdk",
        ...
    )
    go_sdk.nogo(
        nogo = "//:default_nogo",
    )

For more information see
[https://github.com/bazelbuild/rules_go/pull/3782](https://togithub.com/bazelbuild/rules_go/pull/3782)

#### `WORKSPACE` code

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive")

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"c8035e8ae248b56040a65ad3f0b7434712e2037e5dfdcebfe97576e620422709",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.44.0/rules_go-v0.44.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.44.0/rules_go-v0.44.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.21.5")

#### What's Changed

- Do not test on centos7 by [@&#8203;fmeum](https://togithub.com/fmeum)
in
[https://github.com/bazelbuild/rules_go/pull/3757](https://togithub.com/bazelbuild/rules_go/pull/3757)
- update documentation for 0.43.0 release by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3758](https://togithub.com/bazelbuild/rules_go/pull/3758)
- Add toolchain param to affected actions by
[@&#8203;kotlaja](https://togithub.com/kotlaja) in
[https://github.com/bazelbuild/rules_go/pull/3760](https://togithub.com/bazelbuild/rules_go/pull/3760)
- Update GO_TOOLCHAIN string to Label and add toolchain param to one
more action by [@&#8203;kotlaja](https://togithub.com/kotlaja) in
[https://github.com/bazelbuild/rules_go/pull/3762](https://togithub.com/bazelbuild/rules_go/pull/3762)
- Do not choose prereleases as highest versions by
[@&#8203;mering](https://togithub.com/mering) in
[https://github.com/bazelbuild/rules_go/pull/3764](https://togithub.com/bazelbuild/rules_go/pull/3764)
- Remove unmaintained validators by
[@&#8203;mering](https://togithub.com/mering) in
[https://github.com/bazelbuild/rules_go/pull/3768](https://togithub.com/bazelbuild/rules_go/pull/3768)
- Use `tools.go` trick to make `go.mod` work with `go mod tidy` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3775](https://togithub.com/bazelbuild/rules_go/pull/3775)
- feat(packagesdriver): add \_test suffix to pkgPath by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[https://github.com/bazelbuild/rules_go/pull/3777](https://togithub.com/bazelbuild/rules_go/pull/3777)
- Typo --test_runner_fail_fast by
[@&#8203;Clement-Jean](https://togithub.com/Clement-Jean) in
[https://github.com/bazelbuild/rules_go/pull/3773](https://togithub.com/bazelbuild/rules_go/pull/3773)
- Panic when a test times out by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3749](https://togithub.com/bazelbuild/rules_go/pull/3749)
- Fix integration tests with Bazel@HEAD by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3781](https://togithub.com/bazelbuild/rules_go/pull/3781)
- Automatically register SDKs for common execution platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3634](https://togithub.com/bazelbuild/rules_go/pull/3634)
- fix `aux_files` relative paths for gomock source mocks (fix
[#&#8203;3752](https://togithub.com/bazelbuild/rules_go/issues/3752)) by
[@&#8203;ikavalio](https://togithub.com/ikavalio) in
[https://github.com/bazelbuild/rules_go/pull/3753](https://togithub.com/bazelbuild/rules_go/pull/3753)
- Update to modern protoc plugins by
[@&#8203;mering](https://togithub.com/mering) in
[https://github.com/bazelbuild/rules_go/pull/3761](https://togithub.com/bazelbuild/rules_go/pull/3761)
- Add integration tests for protoc-gen-go-grpc by
[@&#8203;ryanpbrewster](https://togithub.com/ryanpbrewster) in
[https://github.com/bazelbuild/rules_go/pull/3787](https://togithub.com/bazelbuild/rules_go/pull/3787)
- Add Bzlmod support for `nogo` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3782](https://togithub.com/bazelbuild/rules_go/pull/3782)
- fix(gpd): don't panic on invalid root by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[https://github.com/bazelbuild/rules_go/pull/3779](https://togithub.com/bazelbuild/rules_go/pull/3779)
- Pass env to gentestmain so it will correctly filter by
[@&#8203;patrickmscott](https://togithub.com/patrickmscott) in
[https://github.com/bazelbuild/rules_go/pull/3785](https://togithub.com/bazelbuild/rules_go/pull/3785)
- prepare release 0.44.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3788](https://togithub.com/bazelbuild/rules_go/pull/3788)

#### New Contributors

- [@&#8203;Clement-Jean](https://togithub.com/Clement-Jean) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3773](https://togithub.com/bazelbuild/rules_go/pull/3773)
- [@&#8203;ikavalio](https://togithub.com/ikavalio) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3753](https://togithub.com/bazelbuild/rules_go/pull/3753)
- [@&#8203;ryanpbrewster](https://togithub.com/ryanpbrewster) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3787](https://togithub.com/bazelbuild/rules_go/pull/3787)

**Full Changelog**:
bazel-contrib/rules_go@v0.43.0...v0.44.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDAuMCIsInVwZGF0ZWRJblZlciI6IjM2LjEwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
renovate bot referenced this pull request in kreempuff/rules_unreal_engine Dec 19, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://togithub.com/bazelbuild/rules_go) |
http_archive | minor | `v0.43.0` -> `v0.44.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.44.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.44.0)

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.43.0...v0.44.0)

### IMPORTANT CHANGES

#### Tests now call `panic()` when they timeout

This means there is a running goroutine (which will fail
[goleak](https://togithub.com/uber-go/goleak) detection)

[Goroutine 26 in state chan receive, with
github.com/bazelbuild/rules_go/go/tools/bzltestutil.RegisterTimeoutHandler.func1
on top of the

This also means there may be some different behavior when calling
`SIGTERM` directly from within a test.

For more information see:
[https://github.com/bazelbuild/rules_go/pull/3749](https://togithub.com/bazelbuild/rules_go/pull/3749)

#### Bzlmod support for `nogo`

This can be added in your `MODULE.bazel` file:

go_sdk = use_extension("@&#8203;io_bazel_rules_go//go:extensions.bzl",
"go_sdk")
    go_sdk.download(
        name = "go_sdk",
        ...
    )
    go_sdk.nogo(
        nogo = "//:default_nogo",
    )

For more information see
[https://github.com/bazelbuild/rules_go/pull/3782](https://togithub.com/bazelbuild/rules_go/pull/3782)

#### `WORKSPACE` code

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive")

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"c8035e8ae248b56040a65ad3f0b7434712e2037e5dfdcebfe97576e620422709",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.44.0/rules_go-v0.44.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.44.0/rules_go-v0.44.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.21.5")

#### What's Changed

- Do not test on centos7 by [@&#8203;fmeum](https://togithub.com/fmeum)
in
[https://github.com/bazelbuild/rules_go/pull/3757](https://togithub.com/bazelbuild/rules_go/pull/3757)
- update documentation for 0.43.0 release by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3758](https://togithub.com/bazelbuild/rules_go/pull/3758)
- Add toolchain param to affected actions by
[@&#8203;kotlaja](https://togithub.com/kotlaja) in
[https://github.com/bazelbuild/rules_go/pull/3760](https://togithub.com/bazelbuild/rules_go/pull/3760)
- Update GO_TOOLCHAIN string to Label and add toolchain param to one
more action by [@&#8203;kotlaja](https://togithub.com/kotlaja) in
[https://github.com/bazelbuild/rules_go/pull/3762](https://togithub.com/bazelbuild/rules_go/pull/3762)
- Do not choose prereleases as highest versions by
[@&#8203;mering](https://togithub.com/mering) in
[https://github.com/bazelbuild/rules_go/pull/3764](https://togithub.com/bazelbuild/rules_go/pull/3764)
- Remove unmaintained validators by
[@&#8203;mering](https://togithub.com/mering) in
[https://github.com/bazelbuild/rules_go/pull/3768](https://togithub.com/bazelbuild/rules_go/pull/3768)
- Use `tools.go` trick to make `go.mod` work with `go mod tidy` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3775](https://togithub.com/bazelbuild/rules_go/pull/3775)
- feat(packagesdriver): add \_test suffix to pkgPath by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[https://github.com/bazelbuild/rules_go/pull/3777](https://togithub.com/bazelbuild/rules_go/pull/3777)
- Typo --test_runner_fail_fast by
[@&#8203;Clement-Jean](https://togithub.com/Clement-Jean) in
[https://github.com/bazelbuild/rules_go/pull/3773](https://togithub.com/bazelbuild/rules_go/pull/3773)
- Panic when a test times out by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3749](https://togithub.com/bazelbuild/rules_go/pull/3749)
- Fix integration tests with Bazel@HEAD by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3781](https://togithub.com/bazelbuild/rules_go/pull/3781)
- Automatically register SDKs for common execution platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3634](https://togithub.com/bazelbuild/rules_go/pull/3634)
- fix `aux_files` relative paths for gomock source mocks (fix
[#&#8203;3752](https://togithub.com/bazelbuild/rules_go/issues/3752)) by
[@&#8203;ikavalio](https://togithub.com/ikavalio) in
[https://github.com/bazelbuild/rules_go/pull/3753](https://togithub.com/bazelbuild/rules_go/pull/3753)
- Update to modern protoc plugins by
[@&#8203;mering](https://togithub.com/mering) in
[https://github.com/bazelbuild/rules_go/pull/3761](https://togithub.com/bazelbuild/rules_go/pull/3761)
- Add integration tests for protoc-gen-go-grpc by
[@&#8203;ryanpbrewster](https://togithub.com/ryanpbrewster) in
[https://github.com/bazelbuild/rules_go/pull/3787](https://togithub.com/bazelbuild/rules_go/pull/3787)
- Add Bzlmod support for `nogo` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3782](https://togithub.com/bazelbuild/rules_go/pull/3782)
- fix(gpd): don't panic on invalid root by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[https://github.com/bazelbuild/rules_go/pull/3779](https://togithub.com/bazelbuild/rules_go/pull/3779)
- Pass env to gentestmain so it will correctly filter by
[@&#8203;patrickmscott](https://togithub.com/patrickmscott) in
[https://github.com/bazelbuild/rules_go/pull/3785](https://togithub.com/bazelbuild/rules_go/pull/3785)
- prepare release 0.44.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3788](https://togithub.com/bazelbuild/rules_go/pull/3788)

#### New Contributors

- [@&#8203;Clement-Jean](https://togithub.com/Clement-Jean) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3773](https://togithub.com/bazelbuild/rules_go/pull/3773)
- [@&#8203;ikavalio](https://togithub.com/ikavalio) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3753](https://togithub.com/bazelbuild/rules_go/pull/3753)
- [@&#8203;ryanpbrewster](https://togithub.com/ryanpbrewster) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3787](https://togithub.com/bazelbuild/rules_go/pull/3787)

**Full Changelog**:
bazel-contrib/rules_go@v0.43.0...v0.44.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/kreempuff/rules_unreal_engine).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
cgrindel-self-hosted-renovate bot referenced this pull request in cgrindel/rules_swift_package_manager Dec 20, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://togithub.com/bazelbuild/rules_go) |
http_archive | minor | `v0.43.0` -> `v0.44.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.44.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.44.0)

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.43.0...v0.44.0)

### IMPORTANT CHANGES

#### Tests now call `panic()` when they timeout

This means there is a running goroutine (which will fail
[goleak](https://togithub.com/uber-go/goleak) detection)

[Goroutine 26 in state chan receive, with
github.com/bazelbuild/rules_go/go/tools/bzltestutil.RegisterTimeoutHandler.func1
on top of the

This also means there may be some different behavior when calling
`SIGTERM` directly from within a test.

For more information see:
[https://github.com/bazelbuild/rules_go/pull/3749](https://togithub.com/bazelbuild/rules_go/pull/3749)

#### Bzlmod support for `nogo`

This can be added in your `MODULE.bazel` file:

go_sdk = use_extension("@&#8203;io_bazel_rules_go//go:extensions.bzl",
"go_sdk")
    go_sdk.download(
        name = "go_sdk",
        ...
    )
    go_sdk.nogo(
        nogo = "//:default_nogo",
    )

For more information see
[https://github.com/bazelbuild/rules_go/pull/3782](https://togithub.com/bazelbuild/rules_go/pull/3782)

#### `WORKSPACE` code

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive")

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"c8035e8ae248b56040a65ad3f0b7434712e2037e5dfdcebfe97576e620422709",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.44.0/rules_go-v0.44.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.44.0/rules_go-v0.44.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.21.5")

#### What's Changed

- Do not test on centos7 by [@&#8203;fmeum](https://togithub.com/fmeum)
in
[https://github.com/bazelbuild/rules_go/pull/3757](https://togithub.com/bazelbuild/rules_go/pull/3757)
- update documentation for 0.43.0 release by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3758](https://togithub.com/bazelbuild/rules_go/pull/3758)
- Add toolchain param to affected actions by
[@&#8203;kotlaja](https://togithub.com/kotlaja) in
[https://github.com/bazelbuild/rules_go/pull/3760](https://togithub.com/bazelbuild/rules_go/pull/3760)
- Update GO_TOOLCHAIN string to Label and add toolchain param to one
more action by [@&#8203;kotlaja](https://togithub.com/kotlaja) in
[https://github.com/bazelbuild/rules_go/pull/3762](https://togithub.com/bazelbuild/rules_go/pull/3762)
- Do not choose prereleases as highest versions by
[@&#8203;mering](https://togithub.com/mering) in
[https://github.com/bazelbuild/rules_go/pull/3764](https://togithub.com/bazelbuild/rules_go/pull/3764)
- Remove unmaintained validators by
[@&#8203;mering](https://togithub.com/mering) in
[https://github.com/bazelbuild/rules_go/pull/3768](https://togithub.com/bazelbuild/rules_go/pull/3768)
- Use `tools.go` trick to make `go.mod` work with `go mod tidy` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3775](https://togithub.com/bazelbuild/rules_go/pull/3775)
- feat(packagesdriver): add \_test suffix to pkgPath by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[https://github.com/bazelbuild/rules_go/pull/3777](https://togithub.com/bazelbuild/rules_go/pull/3777)
- Typo --test_runner_fail_fast by
[@&#8203;Clement-Jean](https://togithub.com/Clement-Jean) in
[https://github.com/bazelbuild/rules_go/pull/3773](https://togithub.com/bazelbuild/rules_go/pull/3773)
- Panic when a test times out by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3749](https://togithub.com/bazelbuild/rules_go/pull/3749)
- Fix integration tests with Bazel@HEAD by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3781](https://togithub.com/bazelbuild/rules_go/pull/3781)
- Automatically register SDKs for common execution platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3634](https://togithub.com/bazelbuild/rules_go/pull/3634)
- fix `aux_files` relative paths for gomock source mocks (fix
[#&#8203;3752](https://togithub.com/bazelbuild/rules_go/issues/3752)) by
[@&#8203;ikavalio](https://togithub.com/ikavalio) in
[https://github.com/bazelbuild/rules_go/pull/3753](https://togithub.com/bazelbuild/rules_go/pull/3753)
- Update to modern protoc plugins by
[@&#8203;mering](https://togithub.com/mering) in
[https://github.com/bazelbuild/rules_go/pull/3761](https://togithub.com/bazelbuild/rules_go/pull/3761)
- Add integration tests for protoc-gen-go-grpc by
[@&#8203;ryanpbrewster](https://togithub.com/ryanpbrewster) in
[https://github.com/bazelbuild/rules_go/pull/3787](https://togithub.com/bazelbuild/rules_go/pull/3787)
- Add Bzlmod support for `nogo` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3782](https://togithub.com/bazelbuild/rules_go/pull/3782)
- fix(gpd): don't panic on invalid root by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[https://github.com/bazelbuild/rules_go/pull/3779](https://togithub.com/bazelbuild/rules_go/pull/3779)
- Pass env to gentestmain so it will correctly filter by
[@&#8203;patrickmscott](https://togithub.com/patrickmscott) in
[https://github.com/bazelbuild/rules_go/pull/3785](https://togithub.com/bazelbuild/rules_go/pull/3785)
- prepare release 0.44.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3788](https://togithub.com/bazelbuild/rules_go/pull/3788)

#### New Contributors

- [@&#8203;Clement-Jean](https://togithub.com/Clement-Jean) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3773](https://togithub.com/bazelbuild/rules_go/pull/3773)
- [@&#8203;ikavalio](https://togithub.com/ikavalio) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3753](https://togithub.com/bazelbuild/rules_go/pull/3753)
- [@&#8203;ryanpbrewster](https://togithub.com/ryanpbrewster) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3787](https://togithub.com/bazelbuild/rules_go/pull/3787)

**Full Changelog**:
bazel-contrib/rules_go@v0.43.0...v0.44.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDAuMCIsInVwZGF0ZWRJblZlciI6IjM2LjEwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
@timonwong
Copy link

FYI: I came across goleak problem after rules_go v0.44.0.

Since bzltestutil.RegisterTimeoutHandler() is registered before TestMain, I have to use goleak.IgnoreCurrent() to workaround that, for example:

func TestMain(m *testing.M) {
	goleak.VerifyTestMain(m, goleak.IgnoreCurrent())
}

@hawkingrei
Copy link
Contributor

FYI: I came across goleak problem after rules_go v0.44.0.

Since bzltestutil.RegisterTimeoutHandler() is registered before TestMain, I have to use goleak.IgnoreCurrent() to workaround that, for example:

func TestMain(m *testing.M) {
	goleak.VerifyTestMain(m, goleak.IgnoreCurrent())
}

I meet this problem, too.

@fmeum PTAL

@fmeum
Copy link
Member Author

fmeum commented Dec 22, 2023

This will be addressed via a default ignore rule in a future goleak release - rules_go can't cancel the go routine in time for the leak check.

Cc @linzhp

@linzhp
Copy link
Contributor

linzhp commented Dec 22, 2023

You can call IgnoreTopFunction too, which is less dependent on lifetime of the goroutine that rules_go creates

malt3 added a commit to edgelesssys/constellation that referenced this pull request Jan 16, 2024
rules_go added a SIGTERM handler that has a goroutine that survives the scope of the goleak check.
Currently, the best known workaround is to ignore this goroutine.

uber-go/goleak#119
bazel-contrib/rules_go#3749
bazel-contrib/rules_go#3827 (comment)
malt3 added a commit to edgelesssys/constellation that referenced this pull request Jan 16, 2024
rules_go added a SIGTERM handler that has a goroutine that survives the scope of the goleak check.
Currently, the best known workaround is to ignore this goroutine.

uber-go/goleak#119
bazel-contrib/rules_go#3749
bazel-contrib/rules_go#3827 (comment)
malt3 added a commit to edgelesssys/constellation that referenced this pull request Jan 16, 2024
rules_go added a SIGTERM handler that has a goroutine that survives the scope of the goleak check.
Currently, the best known workaround is to ignore this goroutine.

uber-go/goleak#119
bazel-contrib/rules_go#3749
bazel-contrib/rules_go#3827 (comment)
malt3 added a commit to edgelesssys/constellation that referenced this pull request Jan 22, 2024
rules_go added a SIGTERM handler that has a goroutine that survives the scope of the goleak check.
Currently, the best known workaround is to ignore this goroutine.

uber-go/goleak#119
bazel-contrib/rules_go#3749
bazel-contrib/rules_go#3827 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improvement/feature request: consider allowing process under test to timeout BEFORE Bazel-level --test_timeout
6 participants