#!watchflakes
post <- pkg == "runtime" && test == "TestUsingVDSO" && `signal: segmentation fault`

Issue created automatically to collect these failures.

Example (log):

--- FAIL: TestUsingVDSO (0.08s)
    vdso_test.go:50: GO_WANT_HELPER_PROCESS=1 /usr/bin/strace -f -e clock_gettime /workdir/tmp/go-build1040845572/b001/runtime.test -test.run=^TestUsingVDSO$
    vdso_test.go:56: /usr/bin/strace: [ Process PID=74855 runs in 32 bit mode. ]
        /usr/bin/strace: Process 74908 attached
        /usr/bin/strace: Process 74906 attached
        /usr/bin/strace: Process 74917 attached
        [pid 74917] ????( <unfinished ...>
        [pid 74908] +++ exited with 0 +++
        [pid 74906] +++ exited with 0 +++
    vdso_test.go:59: signal: segmentation fault (core dumped)
runtime.test: some test left a core file behind

watchflakes

Comment From: gopherbot

Found new dashboard test flakes for:

#!watchflakes
default <- pkg == "runtime" && test == "TestUsingVDSO"
2023-10-14 22:30 linux-386-clang go@bc9dc8d4 runtime.TestUsingVDSO (log) --- FAIL: TestUsingVDSO (0.08s) vdso_test.go:50: GO_WANT_HELPER_PROCESS=1 /usr/bin/strace -f -e clock_gettime /workdir/tmp/go-build1040845572/b001/runtime.test -test.run=^TestUsingVDSO$ vdso_test.go:56: /usr/bin/strace: [ Process PID=74855 runs in 32 bit mode. ] /usr/bin/strace: Process 74908 attached /usr/bin/strace: Process 74906 attached /usr/bin/strace: Process 74917 attached [pid 74917] ????( [pid 74908] +++ exited with 0 +++ [pid 74906] +++ exited with 0 +++ vdso_test.go:59: signal: segmentation fault (core dumped) runtime.test: some test left a core file behind

watchflakes

Comment From: gopherbot

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "runtime" && test == "TestUsingVDSO" && `signal: segmentation fault`
2024-01-12 00:55 linux-386-buster go@eb30ac34 runtime.TestUsingVDSO (log) --- FAIL: TestUsingVDSO (0.06s) vdso_test.go:50: GO_WANT_HELPER_PROCESS=1 /usr/bin/strace -f -e clock_gettime /workdir/tmp/go-build587421342/b091/runtime.test -test.run=^TestUsingVDSO$ vdso_test.go:56: /usr/bin/strace: [ Process PID=79301 runs in 32 bit mode. ] /usr/bin/strace: Process 79352 attached /usr/bin/strace: Process 79390 attached /usr/bin/strace: Process 79350 attached /usr/bin/strace: Process 79356 attached [pid 79350] ????( [pid 79390] +++ exited with 0 +++ [pid 79352] +++ exited with 0 +++ vdso_test.go:59: signal: segmentation fault (core dumped) runtime.test: some test left a core file behind

watchflakes

Comment From: bcmills

That's two on linux/386 — which is (for better or for worse) still a first class port — and it appears that this test is new for Go 1.22 (added in https://go.dev/cl/523955 for #62309).

@golang/runtime: given the above, should this be a release-blocker (to either fix or add a skip for the test)?

Comment From: aclements

This smells like an strace bug. If the subprocess itself were SIGSEGV'ing, I would expect strace to report that signal. If so, then this a test-only failure, and I'd be fine with doing a SkipFlaky if strace exits with a SIGSEGV, or perhaps just retrying the test so we catch persistent failures.

Comment From: aclements

For example, if the test binary itself were failing, I would expect output like this before strace exited with SIGSEGV:

[pid 644584] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
+++ killed by SIGSEGV +++

The "killed by SIGSEGV" would only appear if we fail before installing signal handlers, but then I would expect other tests to be failing in the same way. If we're failing after installing signal handlers, we'd still see the first line, and then the process would exit with status 2, not SIGSEGV.

So, it's definitely strace itself that's crashing.

Comment From: gopherbot

Change https://go.dev/cl/556357 mentions this issue: runtime: skip test if strace crashes