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: TestGdb{AutotmpTypes,Const} failing on solaris as of CL 171823 #35046

Closed
bcmills opened this issue Oct 21, 2019 · 4 comments
Closed
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-Solaris Soon This needs to be done soon. (regressions, serious bugs, outages)
Milestone

Comments

@bcmills
Copy link
Contributor

bcmills commented Oct 21, 2019

I don't know whether CL 171823 was the cause, or if there was some incidental change to the builder, but the solaris-amd64-oraclerel builder is now consistently failing (https://build.golang.org/log/92fe055b8bae545fdae60bdda9575ca85bff728e) in the runtime test:

--- FAIL: TestGdbAutotmpTypes (11.23s)
    runtime-gdb_test.go:65: gdb version 8.0
    runtime-gdb_test.go:446: building source exit status 2
        # command-line-arguments
        runtime.morestack: nosplit stack overflow
        	744	assumed on entry to runtime.sigtramp (nosplit)
        	736	on entry to runtime.sigtrampgo (nosplit)
        	568	after runtime.sigtrampgo (nosplit) uses 168
        	560	on entry to runtime.sigfwdgo (nosplit)
        	488	after runtime.sigfwdgo (nosplit) uses 72
        	480	on entry to runtime.dieFromSignal (nosplit)
        	456	after runtime.dieFromSignal (nosplit) uses 24
        	448	on entry to runtime.setsig (nosplit)
        	384	after runtime.setsig (nosplit) uses 64
        	376	on entry to runtime.sigaction (nosplit)
        	328	after runtime.sigaction (nosplit) uses 48
        	320	on entry to runtime.sysvicall3 (nosplit)
        	264	after runtime.sysvicall3 (nosplit) uses 56
        	256	on entry to runtime.sysvicall3Err (nosplit)
        	168	after runtime.sysvicall3Err (nosplit) uses 88
        	160	on entry to runtime.asmcgocall (nosplit)
        	152	on entry to gosave (nosplit)
        	144	on entry to runtime.badctxt (nosplit)
        	120	after runtime.badctxt (nosplit) uses 24
        	112	on entry to runtime.throw (nosplit)
        	72	after runtime.throw (nosplit) uses 40
        	64	on entry to runtime.fatalthrow (nosplit)
        	16	after runtime.fatalthrow (nosplit) uses 48
        	8	on entry to runtime.systemstack (nosplit)
        	0	on entry to function pointer
        	-8	on entry to runtime.morestack (nosplit)
--- FAIL: TestGdbConst (11.71s)
    runtime-gdb_test.go:65: gdb version 8.0
    runtime-gdb_test.go:512: building source exit status 2
        # command-line-arguments
        runtime.morestack: nosplit stack overflow
        	744	assumed on entry to runtime.sigtramp (nosplit)
        	736	on entry to runtime.sigtrampgo (nosplit)
        	568	after runtime.sigtrampgo (nosplit) uses 168
        	560	on entry to runtime.sigfwdgo (nosplit)
        	488	after runtime.sigfwdgo (nosplit) uses 72
        	480	on entry to runtime.dieFromSignal (nosplit)
        	456	after runtime.dieFromSignal (nosplit) uses 24
        	448	on entry to runtime.setsig (nosplit)
        	384	after runtime.setsig (nosplit) uses 64
        	376	on entry to runtime.sigaction (nosplit)
        	328	after runtime.sigaction (nosplit) uses 48
        	320	on entry to runtime.sysvicall3 (nosplit)
        	264	after runtime.sysvicall3 (nosplit) uses 56
        	256	on entry to runtime.sysvicall3Err (nosplit)
        	168	after runtime.sysvicall3Err (nosplit) uses 88
        	160	on entry to runtime.asmcgocall (nosplit)
        	152	on entry to gosave (nosplit)
        	144	on entry to runtime.badctxt (nosplit)
        	120	after runtime.badctxt (nosplit) uses 24
        	112	on entry to runtime.throw (nosplit)
        	72	after runtime.throw (nosplit) uses 40
        	64	on entry to runtime.fatalthrow (nosplit)
        	16	after runtime.fatalthrow (nosplit) uses 48
        	8	on entry to runtime.systemstack (nosplit)
        	0	on entry to function pointer
        	-8	on entry to runtime.morestack (nosplit)
FAIL
FAIL	runtime	60.061s
@bcmills bcmills added OS-Solaris NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Soon This needs to be done soon. (regressions, serious bugs, outages) labels Oct 21, 2019
@bcmills bcmills added this to the Go1.14 milestone Oct 21, 2019
@bcmills
Copy link
Contributor Author

bcmills commented Oct 21, 2019

CC @ianlancetaylor @mknyszek

@rorth
Copy link

rorth commented Oct 22, 2019

I maintain the host running that builder and neither has changed in a week. So it's pretty certain
that Ian's patch is the culprit.

@ianlancetaylor
Copy link
Contributor

Yes. The test builds a program with -gcflags=all=-N -l, which disables optimizations. My CL introduced another function call, and that seems to been enough to cause an overflow in the linker's nosplit stack check when not optimizing.

@gopherbot
Copy link

Change https://golang.org/cl/202446 mentions this issue: runtime: factor signal stack code out of sigtrampgo

@bcmills bcmills changed the title runtime: TestGdb{AutotmpTypes,Const} failing as of CL 171823 runtime: TestGdb{AutotmpTypes,Const} failing on solaris as of CL 171823 Oct 22, 2019
@golang golang locked and limited conversation to collaborators Oct 21, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-Solaris Soon This needs to be done soon. (regressions, serious bugs, outages)
Projects
None yet
Development

No branches or pull requests

4 participants