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

goroutine stack exceeds 1000000000-byte limit #1442

Closed
Ovi3 opened this issue Aug 22, 2022 · 0 comments · Fixed by #1450
Closed

goroutine stack exceeds 1000000000-byte limit #1442

Ovi3 opened this issue Aug 22, 2022 · 0 comments · Fixed by #1450
Assignees
Labels
area/core bug Something isn't working
Milestone

Comments

@Ovi3
Copy link

Ovi3 commented Aug 22, 2022

The following program sample.go triggers an unexpected result

package main

import (
        "github.com/traefik/yaegi/interp"
        "github.com/traefik/yaegi/stdlib"
)

func main() {
        i := interp.New(interp.Options{})

        i.Use(stdlib.Symbols)

        _, err := i.Eval(`
import (
        "context"
        "fmt"
)

func quickPrint() {
        ctx, _ := context.WithCancel(context.Background())
        ch := make(chan string, 20)
        defer close(ch)

        for i := 0; i < 10; i++ {
                fmt.Println(i)
                go func(ctx context.Context, ch <-chan string) {
                        for {
                                select {
                                case <-ctx.Done():
                                        return
                                case tmp := <-ch:
                                        fmt.Println(tmp)
                                }
                        }
                }(ctx, ch)
        }
        for _, i := range "abcdef" {
                for _, j := range "0123456789" {
                        for _, k := range "ABCDEF" {
                                select {
                                case <-ctx.Done():
                                        return
                                default:
                                        tmp := string(i) + string(j) + string(k)
                                        ch <- tmp
                                }

                        }
                }
        }
        return
}

`)
        if err != nil {
                panic(err)
        }


}

Expected result

// no panic

Got

runtime: goroutine stack exceeds 1000000000-byte limit
runtime: sp=0xc020400390 stack=[0xc020400000, 0xc040400000]
fatal error: stack overflow

runtime stack:
runtime.throw({0xe07e96?, 0x1441820?})
        runtime/panic.go:992 +0x71
runtime.newstack()
        runtime/stack.go:1101 +0x5cc
runtime.morestack()
        runtime/asm_amd64.s:547 +0x8b

goroutine 1 [running]:
runtime.mallocgc(0x10?, 0xdca2a0?, 0x1?)
        runtime/malloc.go:909 +0x91d fp=0xc0204003a0 sp=0xc020400398 pc=0x41227d
runtime.makeslice(0x0?, 0x0?, 0x0?)
        runtime/slice.go:103 +0x52 fp=0xc0204003c8 sp=0xc0204003a0 pc=0x454ff2
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3672 +0x46 fp=0xc020400490 sp=0xc0204003c8 pc=0x6be4e6
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc0204004d8 sp=0xc020400490 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400520 sp=0xc0204004d8 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400568 sp=0xc020400520 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc0204005b0 sp=0xc020400568 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020400670 sp=0xc0204005b0 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020400738 sp=0xc020400670 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020400780 sp=0xc020400738 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc0204007c8 sp=0xc020400780 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400810 sp=0xc0204007c8 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400858 sp=0xc020400810 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020400918 sp=0xc020400858 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc0204009e0 sp=0xc020400918 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020400a28 sp=0xc0204009e0 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400a70 sp=0xc020400a28 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400ab8 sp=0xc020400a70 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400b00 sp=0xc020400ab8 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020400bc0 sp=0xc020400b00 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020400c88 sp=0xc020400bc0 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020400cd0 sp=0xc020400c88 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400d18 sp=0xc020400cd0 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400d60 sp=0xc020400d18 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400da8 sp=0xc020400d60 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020400e68 sp=0xc020400da8 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020400f30 sp=0xc020400e68 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020400f78 sp=0xc020400f30 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020400fc0 sp=0xc020400f78 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401008 sp=0xc020400fc0 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401050 sp=0xc020401008 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020401110 sp=0xc020401050 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc0204011d8 sp=0xc020401110 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020401220 sp=0xc0204011d8 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401268 sp=0xc020401220 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc0204012b0 sp=0xc020401268 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc0204012f8 sp=0xc0204012b0 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc0204013b8 sp=0xc0204012f8 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020401480 sp=0xc0204013b8 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc0204014c8 sp=0xc020401480 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401510 sp=0xc0204014c8 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401558 sp=0xc020401510 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc0204015a0 sp=0xc020401558 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020401660 sp=0xc0204015a0 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020401728 sp=0xc020401660 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020401770 sp=0xc020401728 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc0204017b8 sp=0xc020401770 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401800 sp=0xc0204017b8 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401848 sp=0xc020401800 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020401908 sp=0xc020401848 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc0204019d0 sp=0xc020401908 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020401a18 sp=0xc0204019d0 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401a60 sp=0xc020401a18 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401aa8 sp=0xc020401a60 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401af0 sp=0xc020401aa8 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020401bb0 sp=0xc020401af0 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020401c78 sp=0xc020401bb0 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020401cc0 sp=0xc020401c78 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401d08 sp=0xc020401cc0 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401d50 sp=0xc020401d08 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401d98 sp=0xc020401d50 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020401e58 sp=0xc020401d98 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020401f20 sp=0xc020401e58 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020401f68 sp=0xc020401f20 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401fb0 sp=0xc020401f68 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020401ff8 sp=0xc020401fb0 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402040 sp=0xc020401ff8 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020402100 sp=0xc020402040 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc0204021c8 sp=0xc020402100 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020402210 sp=0xc0204021c8 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402258 sp=0xc020402210 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc0204022a0 sp=0xc020402258 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc0204022e8 sp=0xc0204022a0 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc0204023a8 sp=0xc0204022e8 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020402470 sp=0xc0204023a8 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc0204024b8 sp=0xc020402470 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402500 sp=0xc0204024b8 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402548 sp=0xc020402500 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402590 sp=0xc020402548 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020402650 sp=0xc020402590 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020402718 sp=0xc020402650 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020402760 sp=0xc020402718 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc0204027a8 sp=0xc020402760 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc0204027f0 sp=0xc0204027a8 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402838 sp=0xc0204027f0 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc0204028f8 sp=0xc020402838 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc0204029c0 sp=0xc0204028f8 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020402a08 sp=0xc0204029c0 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402a50 sp=0xc020402a08 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402a98 sp=0xc020402a50 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402ae0 sp=0xc020402a98 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020402ba0 sp=0xc020402ae0 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020402c68 sp=0xc020402ba0 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020402cb0 sp=0xc020402c68 pc=0x63d376
github.com/traefik/yaegi/interp.setExec.func1(0xc0003dad80)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402cf8 sp=0xc020402cb0 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003db200)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402d40 sp=0xc020402cf8 pc=0x63d298
github.com/traefik/yaegi/interp.setExec.func1(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2818 +0x118 fp=0xc020402d88 sp=0xc020402d40 pc=0x63d298
github.com/traefik/yaegi/interp.setExec(0xc0003daea0)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2832 +0xe4 fp=0xc020402e48 sp=0xc020402d88 pc=0x63d144
github.com/traefik/yaegi/interp.getExec(...)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2794
github.com/traefik/yaegi/interp._select(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/run.go:3689 +0x215 fp=0xc020402f10 sp=0xc020402e48 pc=0x6be6b5
github.com/traefik/yaegi/interp.setExec.func1(0xc0003d9e60)
        github.com/traefik/yaegi@v0.14.1/interp/cfg.go:2829 +0x1f6 fp=0xc020402f58 sp=0xc020402f10 pc=0x63d376
exit status 2

Yaegi Version

v0.14.1

Additional Notes

$ go version
go version go1.18.3 linux/amd64

Seem like when using channel variable, and it will panic goroutine stack exceeds 1000000000-byte limit

@mvertes mvertes added bug Something isn't working area/core labels Aug 22, 2022
@mvertes mvertes added this to the v0.14.x milestone Aug 22, 2022
mvertes added a commit to mvertes/yaegi that referenced this issue Sep 5, 2022
Do not attempt to init a non-existent channel setting when in
default communication clause in select.

Fixes traefik#1442.
traefiker pushed a commit that referenced this issue Sep 12, 2022
Do not attempt to init a non-existent channel setting when in
default communication clause in select.

Fixes #1442.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/core bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants