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: nosplit stack overflow on nested closures #3085

Closed
adg opened this issue Feb 20, 2012 · 2 comments
Closed

runtime: nosplit stack overflow on nested closures #3085

adg opened this issue Feb 20, 2012 · 2 comments
Milestone

Comments

@adg
Copy link
Contributor

adg commented Feb 20, 2012

This program:

package main

func main() {
        func(){func(){func(){func(){func(){func(){func(){func(){func(){func(){func(){func(){func(){func(){func(){func(){
                println("hello")
        }()}()}()}()}()}()}()}()}()}()}()}()}()}()}()}()
}

Produces this output:

main.main: nosplit stack overflow
    120 guaranteed after split check in main.main
    112 on entry to main._func_001
    104 on entry to main._func_002
    96  on entry to main._func_003
    88  on entry to main._func_004
    80  on entry to main._func_005
    72  on entry to main._func_006
    64  on entry to main._func_007
    56  on entry to main._func_008
    48  on entry to main._func_009
    40  on entry to main._func_010
    32  on entry to main._func_011
    24  on entry to main._func_012
    16  on entry to main._func_013
    8   on entry to main._func_014
    0   on entry to main._func_015
    -8  on entry to runtime.morestack00
main._func_001: nosplit stack overflow
    120 guaranteed after split check in main._func_001
    112 on entry to main._func_002
    104 on entry to main._func_003
    96  on entry to main._func_004
    88  on entry to main._func_005
    80  on entry to main._func_006
    72  on entry to main._func_007
    64  on entry to main._func_008
    56  on entry to main._func_009
    48  on entry to main._func_010
    40  on entry to main._func_011
    32  on entry to main._func_012
    24  on entry to main._func_013
    16  on entry to main._func_014
    8   on entry to main._func_015
    0   on entry to main._func_016
    -8  on entry to runtime.morestack00
runtime.main: nosplit stack overflow
    120 guaranteed after split check in runtime.main
    128 after runtime.main uses -8
    120 on entry to main.main
    112 on entry to main._func_001
    104 on entry to main._func_002
    96  on entry to main._func_003
    88  on entry to main._func_004
    80  on entry to main._func_005
    72  on entry to main._func_006
    64  on entry to main._func_007
    56  on entry to main._func_008
    48  on entry to main._func_009
    40  on entry to main._func_010
    32  on entry to main._func_011
    24  on entry to main._func_012
    16  on entry to main._func_013
    8   on entry to main._func_014
    0   on entry to main._func_015
    -8  on entry to runtime.morestack00
@dsymonds
Copy link
Contributor

Comment 1:

Labels changed: added priority-go1, removed priority-triage.

@rsc
Copy link
Contributor

rsc commented Feb 23, 2012

Comment 2:

I see that this happens on the playground but cannot reproduce it at tip.  I have no
idea how those funcs could have been marked as NOSPLIT, but r60 was a long time ago. 
Assuming it has been fixed.

Status changed to Invalid.

@adg adg assigned rsc Feb 23, 2012
@rsc rsc added this to the Go1 milestone Apr 10, 2015
@rsc rsc removed the priority-go1 label Apr 10, 2015
@golang golang locked and limited conversation to collaborators Jun 24, 2016
@rsc rsc removed their assignment Jun 22, 2022
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants