runtime: skip TestGoroutineLeakProfile under mayMoreStackPreempt

This may be the long-term fix, but we first need to understand if this
just makes the tests flaky, or if it's revealing an actual underlying
issue. I'm leaning toward the former. If it is the former, ideally we
just make the tests robust (wait longer, maybe?).

For now, this change will make the longtest builders OK again.

For #75729.

Change-Id: If9b30107d04a8e5af5670850add3a53f9471eec6
Reviewed-on: https://go-review.googlesource.com/c/go/+/708715
Reviewed-by: Roland Shoemaker <roland@golang.org>
Reviewed-by: Michael Pratt <mpratt@google.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
This commit is contained in:
Michael Anthony Knyszek 2025-10-02 19:15:34 +00:00 committed by Gopher Robot
parent f03c392295
commit 0e4e2e6832

View file

@ -6,12 +6,20 @@ package runtime_test
import ( import (
"fmt" "fmt"
"internal/testenv"
"os"
"regexp" "regexp"
"strings" "strings"
"testing" "testing"
) )
func TestGoroutineLeakProfile(t *testing.T) { func TestGoroutineLeakProfile(t *testing.T) {
if strings.Contains(os.Getenv("GOFLAGS"), "mayMoreStackPreempt") {
// Some tests have false negatives under mayMoreStackPreempt. This may be a test-only issue,
// but needs more investigation.
testenv.SkipFlaky(t, 75729)
}
// Goroutine leak test case. // Goroutine leak test case.
// //
// Test cases can be configured with test name, the name of the entry point function, // Test cases can be configured with test name, the name of the entry point function,
@ -356,7 +364,7 @@ func TestGoroutineLeakProfile(t *testing.T) {
`\(\*Page_hugo5379\)\.initContent\.func1\.1\(.* \[sync\.Mutex\.Lock\]`, `\(\*Page_hugo5379\)\.initContent\.func1\.1\(.* \[sync\.Mutex\.Lock\]`,
`pageRenderer_hugo5379\(.* \[sync\.Mutex\.Lock\]`, `pageRenderer_hugo5379\(.* \[sync\.Mutex\.Lock\]`,
`Hugo5379\.func2\(.* \[sync\.WaitGroup\.Wait\]`, `Hugo5379\.func2\(.* \[sync\.WaitGroup\.Wait\]`,
), ),
makeFlakyTest("Istio16224", makeFlakyTest("Istio16224",
`Istio16224\.func2\(.* \[sync\.Mutex\.Lock\]`, `Istio16224\.func2\(.* \[sync\.Mutex\.Lock\]`,
`\(\*controller_istio16224\)\.Run\(.* \[chan send\]`, `\(\*controller_istio16224\)\.Run\(.* \[chan send\]`,