Skip to content
New issue

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

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

Already on GitHub? # 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 fmeum requested a review from tyler-french November 10, 2023 08:19
@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 force-pushed the 3746-test-timeout branch from 6311550 to 3dce04b Compare December 11, 2023 06:33
@fmeum fmeum enabled auto-merge (squash) December 11, 2023 06:33
@fmeum fmeum merged commit 43e644e into master Dec 11, 2023
4 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://github.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://github.com/bazelbuild/rules_go/releases/tag/v0.44.0)

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

#### New Contributors

- [@&#8203;Clement-Jean](https://github.com/Clement-Jean) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3773](https://github.com/bazelbuild/rules_go/pull/3773)
- [@&#8203;ikavalio](https://github.com/ikavalio) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3753](https://github.com/bazelbuild/rules_go/pull/3753)
- [@&#8203;ryanpbrewster](https://github.com/ryanpbrewster) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3787](https://github.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://github.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://github.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://github.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://github.com/bazelbuild/rules_go/releases/tag/v0.44.0)

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

#### New Contributors

- [@&#8203;Clement-Jean](https://github.com/Clement-Jean) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3773](https://github.com/bazelbuild/rules_go/pull/3773)
- [@&#8203;ikavalio](https://github.com/ikavalio) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3753](https://github.com/bazelbuild/rules_go/pull/3753)
- [@&#8203;ryanpbrewster](https://github.com/ryanpbrewster) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3787](https://github.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://github.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://github.com/bazelbuild/rules_go/releases/tag/v0.44.0)

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

#### New Contributors

- [@&#8203;Clement-Jean](https://github.com/Clement-Jean) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3773](https://github.com/bazelbuild/rules_go/pull/3773)
- [@&#8203;ikavalio](https://github.com/ikavalio) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3753](https://github.com/bazelbuild/rules_go/pull/3753)
- [@&#8203;ryanpbrewster](https://github.com/ryanpbrewster) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3787](https://github.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://github.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://github.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)
# for free to join this conversation on GitHub. Already have an account? # 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