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

runtime: TestSegv failures with unknown pc on linux/riscv64 #59492

Closed
gopherbot opened this issue Apr 8, 2023 · 10 comments
Closed

runtime: TestSegv failures with unknown pc on linux/riscv64 #59492

gopherbot opened this issue Apr 8, 2023 · 10 comments
Assignees
Labels
arch-riscv Issues solely affecting the riscv64 architecture. compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Milestone

Comments

@gopherbot
Copy link
Contributor

gopherbot commented Apr 8, 2023

#!watchflakes
post <- pkg == "runtime" && test == "TestSegv" && `unknown pc` && goos == "linux" && goarch == "riscv64"

Issue created automatically to collect these failures.

Example (log):

--- FAIL: TestSegv (0.00s)
    --- FAIL: TestSegv/Segv (0.02s)
        crash_cgo_test.go:628: /tmp/workdir-host-linux-riscv64-unmatched/tmp/go-build3029274790/testprogcgo.exe Segv: exit status 2
        crash_cgo_test.go:629: SIGSEGV: segmentation violation
            PC=0x3f8dddada8 m=4 sigcode=0

            ra  0x122e0c	sp  0x3f617fd470
            gp  0x276638	tp  0x3f617fe8e0
            t0  0x122f3a	t1  0x1271c
            t2  0x3f64001520	s0  0x3f617fd5e0
            s1  0x0	a0  0x0
            a1  0x3f617fd5e0	a2  0x0
            a3  0x8	a4  0x0
            a5  0x3f617fd5e0	a6  0x3f8decbd40
            a7  0x87	s2  0x3f617fd528
            s3  0x10	s4  0x26c460
            s5  0x0	s6  0x0
            s7  0x80	s8  0x78
            s9  0x3f617fd490	s10 0x3f617fd468
            s11 0x3f64001520	t3  0x3f8dddad78
            t4  0x0	t5  0x14ddea77f38e17
            t6  0x0	pc  0x3f8dddada8

        crash_cgo_test.go:660: unexpectedly saw "runtime: " in output

watchflakes

@gopherbot gopherbot added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Apr 8, 2023
@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "runtime" && test == "TestSegv"
2023-04-07 22:25 linux-riscv64-unmatched go@693a34e7 runtime.TestSegv (log)
--- FAIL: TestSegv (0.00s)
    --- FAIL: TestSegv/Segv (0.02s)
        crash_cgo_test.go:628: /tmp/workdir-host-linux-riscv64-unmatched/tmp/go-build3029274790/testprogcgo.exe Segv: exit status 2
        crash_cgo_test.go:629: SIGSEGV: segmentation violation
            PC=0x3f8dddada8 m=4 sigcode=0

            ra  0x122e0c	sp  0x3f617fd470
            gp  0x276638	tp  0x3f617fe8e0
            t0  0x122f3a	t1  0x1271c
            t2  0x3f64001520	s0  0x3f617fd5e0
            s1  0x0	a0  0x0
            a1  0x3f617fd5e0	a2  0x0
            a3  0x8	a4  0x0
            a5  0x3f617fd5e0	a6  0x3f8decbd40
            a7  0x87	s2  0x3f617fd528
            s3  0x10	s4  0x26c460
            s5  0x0	s6  0x0
            s7  0x80	s8  0x78
            s9  0x3f617fd490	s10 0x3f617fd468
            s11 0x3f64001520	t3  0x3f8dddad78
            t4  0x0	t5  0x14ddea77f38e17
            t6  0x0	pc  0x3f8dddada8

        crash_cgo_test.go:660: unexpectedly saw "runtime: " in output

watchflakes

@gopherbot gopherbot added the compiler/runtime Issues related to the Go compiler and/or runtime. label Apr 8, 2023
@bcmills bcmills changed the title runtime: TestSegv failures runtime: TestSegv failures with unknown pc on linux/riscv64 Apr 11, 2023
@bcmills
Copy link
Contributor

bcmills commented Apr 11, 2023

Compare #59443, #59029, #52963.

@bcmills bcmills added the arch-riscv Issues solely affecting the riscv64 architecture. label Apr 11, 2023
@bcmills
Copy link
Contributor

bcmills commented Apr 11, 2023

I think this was originally part of #52963, but at some point that issue mutated to focus on ppc64le and that may be my fault. 😅

(attn @golang/riscv64)

@mknyszek mknyszek added this to the Go1.21 milestone Apr 12, 2023
@mknyszek mknyszek self-assigned this Apr 12, 2023
@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "runtime" && test == "TestSegv" && `unknown pc` && goos == "linux" && goarch == "riscv64"
2023-04-25 14:08 linux-riscv64-unmatched go@e4b03f94 runtime.TestSegv (log)
--- FAIL: TestSegv (0.00s)
    --- FAIL: TestSegv/Segv (0.04s)
        crash_cgo_test.go:641: /tmp/workdir-host-linux-riscv64-unmatched/tmp/go-build2344157731/testprogcgo.exe Segv: exit status 2
        crash_cgo_test.go:642: SIGSEGV: segmentation violation
            PC=0x3fef746c1a m=4 sigcode=0

            ra  0x122d5a	sp  0x3fa37fd3e0
            gp  0x2767a8	tp  0x3fa37fe8e0
            t0  0x122e44	t1  0x1277c
            t2  0x3fa4001520	s0  0x3fa37fd550
            s1  0x0	a0  0x0
            a1  0x3fa37fd550	a2  0x0
            a3  0x8	a4  0x0
            a5  0x3fa37fd550	a6  0x3fef8462d0
            a7  0x87	s2  0x3fa37fd498
            s3  0x10	s4  0x26d060
            s5  0x0	s6  0x0
            s7  0x80	s8  0x78
            s9  0x3fa37fd400	s10 0x3fa37fd3d8
            s11 0x3fa4001520	t3  0x3fef746bec
            t4  0x3fef582000	t5  0x0
            t6  0x0	pc  0x3fef746c1a

        crash_cgo_test.go:673: unexpectedly saw "runtime: " in output

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "runtime" && test == "TestSegv" && `unknown pc` && goos == "linux" && goarch == "riscv64"
2023-05-02 00:12 linux-riscv64-unmatched go@04f059f9 runtime.TestSegv (log)
--- FAIL: TestSegv (0.00s)
    --- FAIL: TestSegv/Segv (0.03s)
        crash_cgo_test.go:641: /tmp/workdir-host-linux-riscv64-unmatched/tmp/go-build3780456290/testprogcgo.exe Segv: exit status 2
        crash_cgo_test.go:642: SIGSEGV: segmentation violation
            PC=0x3f87b309a6 m=4 sigcode=0

            ra  0x1230fc	sp  0x3f3b7fd3f0
            gp  0x277820	tp  0x3f3b7fe8e0
            t0  0x12322a	t1  0x1286c
            t2  0x3f3c001520	s0  0x3f3b7fd560
            s1  0x0	a0  0x0
            a1  0x3f3b7fd560	a2  0x0
            a3  0x8	a4  0x0
            a5  0x3f3b7fd560	a6  0x3f87c412c8
            a7  0x87	s2  0x3f3b7fd4a8
            s3  0x3f3c03ac00	s4  0x1
            s5  0x1	s6  0x1
            s7  0xffffffff	s8  0x3f3b7fe8e0
            s9  0x0	s10 0x3f3b7fd5a0
            s11 0x3f3c001520	t3  0x3f87b30978
            t4  0x17	t5  0x0
            t6  0x0	pc  0x3f87b309a6

        crash_cgo_test.go:673: unexpectedly saw "runtime: " in output

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "runtime" && test == "TestSegv" && `unknown pc` && goos == "linux" && goarch == "riscv64"
2023-05-24 03:14 linux-riscv64-unmatched go@626d478d runtime.TestSegv (log)
--- FAIL: TestSegv (0.00s)
    --- FAIL: TestSegv/Segv (0.03s)
        crash_cgo_test.go:651: /tmp/workdir-host-linux-riscv64-unmatched/tmp/go-build3576740334/testprogcgo.exe Segv: exit status 2
        crash_cgo_test.go:652: SIGSEGV: segmentation violation
            PC=0x3f86bc69a6 m=4 sigcode=0

            ra  0x12752c	sp  0x3f3aefc3c0
            gp  0x283a60	tp  0x3f3aefd8e0
            t0  0x127660	t1  0x1286c
            t2  0x3f3c001520	s0  0x3f3aefc530
            s1  0x0	a0  0x0
            a1  0x3f3aefc530	a2  0x0
            a3  0x8	a4  0x0
            a5  0x3f3aefc530	a6  0x3f86cd72c8
            a7  0x87	s2  0x3f3aefc478
            s3  0x10	s4  0x27a300
            s5  0x0	s6  0x0
            s7  0x298f20	s8  0x78
            s9  0x3f3aefc3e0	s10 0x3f3aefc3b8
            s11 0x3f3c001520	t3  0x3f86bc6978
            t4  0x17	t5  0x0
            t6  0x0	pc  0x3f86bc69a6

        crash_cgo_test.go:683: unexpectedly saw "runtime: " in output

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "runtime" && test == "TestSegv" && `unknown pc` && goos == "linux" && goarch == "riscv64"
2023-05-24 20:58 linux-riscv64-unmatched go@9b57b335 runtime.TestSegv (log)
--- FAIL: TestSegv (0.00s)
    --- FAIL: TestSegv/Segv (0.03s)
        crash_cgo_test.go:651: /tmp/workdir-host-linux-riscv64-unmatched/tmp/go-build2817534486/testprogcgo.exe Segv: exit status 2
        crash_cgo_test.go:652: SIGSEGV: segmentation violation
            PC=0x3fb59c79a6 m=4 sigcode=0

            ra  0x1288fc	sp  0x3f697fd3c0
            gp  0x285a60	tp  0x3f697fe8e0
            t0  0x128a30	t1  0x1286c
            t2  0x3f6c001520	s0  0x3f697fd530
            s1  0x0	a0  0x0
            a1  0x3f697fd530	a2  0x0
            a3  0x8	a4  0x0
            a5  0x3f697fd530	a6  0x3fb5ad82c8
            a7  0x87	s2  0x3f697fd478
            s3  0x10	s4  0x27c300
            s5  0x0	s6  0x0
            s7  0x29af20	s8  0x78
            s9  0x3f697fd3e0	s10 0x3f697fd3b8
            s11 0x3f6c001520	t3  0x3fb59c7978
            t4  0x17	t5  0x0
            t6  0x0	pc  0x3fb59c79a6

        crash_cgo_test.go:683: unexpectedly saw "runtime: " in output

watchflakes

@gopherbot
Copy link
Contributor Author

Change https://go.dev/cl/500535 mentions this issue: runtime: move Segv and TgkillSegv to testprog

gopherbot pushed a commit that referenced this issue Jun 5, 2023
The non-cgo test points Segv and TgkillSegv are currently in
testprogcgo. Although the test points don't explicitly use cgo,
being a cgo program, there is still some C code that runs when
the test point is invoked, such as thread creation code.

For the cgo test points, sometimes we fail to unwind the stack if
C code is involved. For the non-cgo ones, we want to always be
able to unwind the stack, so we check for stack unwinding failures.
But if a signal is landed in the small piece of C code mentioned
above, we may still fail to unwind. Move the non-cgo test points
to a pure-Go program to avoid this problem.

May fix #52963.
Updates #59029, #59443, #59492.

Change-Id: I35d99a0dd4c7cdb627e2083d2414887a24a2822d
Reviewed-on: https://go-review.googlesource.com/c/go/+/500535
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Cherry Mui <cherryyz@google.com>
@mknyszek mknyszek modified the milestones: Go1.21, Backlog Jun 9, 2023
@mknyszek mknyszek added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Jun 9, 2023
@mknyszek
Copy link
Contributor

mknyszek commented Jun 9, 2023

Given that we haven't seen this issue since Cherry's CL, I'm optimistically putting it in WaitingForInfo.

@gopherbot
Copy link
Contributor Author

Timed out in state WaitingForInfo. Closing.

(I am just a bot, though. Please speak up if this is a mistake or you have the requested information.)

@gopherbot gopherbot closed this as not planned Won't fix, can't repro, duplicate, stale Jul 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-riscv Issues solely affecting the riscv64 architecture. compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Projects
Archived in project
Development

No branches or pull requests

3 participants