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

cmd/compile: panic during import method expression #48088

Closed
lmb opened this issue Aug 31, 2021 · 8 comments
Closed

cmd/compile: panic during import method expression #48088

lmb opened this issue Aug 31, 2021 · 8 comments
Labels
FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@lmb
Copy link
Contributor

lmb commented Aug 31, 2021

What version of Go are you using (go version)?

$ go version
go version go1.17 linux/amd64

Does this issue reproduce with the latest release?

Yes.

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/lorenz/.cache/go-build"
GOENV="/home/lorenz/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/lorenz/go/pkg/mod"
GONOPROXY="code.cfops.it"
GONOSUMDB="code.cfops.it"
GOOS="linux"
GOPATH="/home/lorenz/go"
GOPRIVATE="code.cfops.it"
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.17"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/lorenz/dev/tubular/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1004726008=/tmp/go-build -gno-record-gcc-switches"
GOROOT/bin/go version: go version go1.17 linux/amd64
GOROOT/bin/go tool compile -V: compile version go1.17
uname -sr: Linux 5.11.0-31-generic
Distributor ID:	Ubuntu
Description:	Ubuntu 21.04
Release:	21.04
Codename:	hirsute
/lib/x86_64-linux-gnu/libc.so.6: GNU C Library (Ubuntu GLIBC 2.33-0ubuntu5) release release version 2.33.
gdb --version: GNU gdb (Ubuntu 10.1-2ubuntu2) 10.1.90.20210411-git

What did you do?

Compiling our internal codebase with go 1.17 aborts with a panic. Based on the stack trace the problem seems to originate in escape analysis.

$ go build -gcflags '-m' ./cmd/...
# code.cfops.it/sys/tubular/cmd/tubectl
cmd/tubectl/flags.go:76:16: inlining call to flag.(*FlagSet).Output
cmd/tubectl/flags.go:86:51: inlining call to flag.(*FlagSet).Name
cmd/tubectl/flags.go:23:24: inlining call to flag.NewFlagSet
cmd/tubectl/flags.go:24:15: inlining call to flag.(*FlagSet).SetOutput
cmd/tubectl/flags.go:48:28: inlining call to flag.(*FlagSet).Output
cmd/tubectl/main.go:94:6: can inline (*env).newFlagSet
cmd/tubectl/flags.go:67:17: inlining call to flag.(*FlagSet).NArg
cmd/tubectl/main.go:50:37: inlining call to cap.GetProc
cmd/tubectl/binding.go:14:21: inlining call to (*env).newFlagSet
cmd/tubectl/binding.go:26:39: inlining call to flag.(*FlagSet).Args
cmd/tubectl/binding.go:41:21: inlining call to (*env).newFlagSet
cmd/tubectl/binding.go:47:39: inlining call to flag.(*FlagSet).Args
cmd/tubectl/flags.go:91:26: inlining call to flag.(*FlagSet).Output
cmd/tubectl/binding.go:147:22: inlining call to os.Open
cmd/tubectl/binding.go:154:28: inlining call to json.NewDecoder
cmd/tubectl/binding.go:155:31: inlining call to json.(*Decoder).DisallowUnknownFields
cmd/tubectl/binding.go:157:45: inlining call to os.(*File).Name
cmd/tubectl/binding.go:169:33: inlining call to netaddr.IPPrefix.Masked
cmd/tubectl/binding.go:175:33: inlining call to netaddr.IPPrefix.Masked
cmd/tubectl/binding.go:126:13: inlining call to flag.(*FlagSet).NArg
cmd/tubectl/binding.go:131:37: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/binding.go:105:38: inlining call to netaddr.MustParseIPPrefix
cmd/tubectl/loading.go:10:21: inlining call to (*env).newFlagSet
cmd/tubectl/loading.go:30:21: inlining call to (*env).newFlagSet
cmd/tubectl/loading.go:49:21: inlining call to (*env).newFlagSet
cmd/tubectl/loading.go:59:39: inlining call to "code.cfops.it/sys/tubular/internal".UpgradeDispatcher
cmd/tubectl/main.go:123:24: inlining call to flag.NewFlagSet
cmd/tubectl/main.go:124:15: inlining call to flag.(*FlagSet).SetOutput
cmd/tubectl/main.go:125:15: inlining call to flag.(*FlagSet).StringVar
cmd/tubectl/main.go:125:15: inlining call to flag.newStringValue
cmd/tubectl/main.go:126:15: inlining call to flag.(*FlagSet).StringVar
cmd/tubectl/main.go:126:15: inlining call to flag.newStringValue
cmd/tubectl/main.go:157:13: inlining call to flag.(*FlagSet).NArg
cmd/tubectl/main.go:163:20: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/main.go:164:21: inlining call to flag.(*FlagSet).Args
cmd/tubectl/main.go:117:8: can inline tubectl.func1
cmd/tubectl/main.go:129:20: inlining call to flag.(*FlagSet).Output
cmd/tubectl/main.go:130:83: inlining call to flag.(*FlagSet).Name
cmd/tubectl/register.go:222:21: inlining call to unix.Stat
cmd/tubectl/register.go:227:21: inlining call to unix.Stat
cmd/tubectl/register.go:233:20: inlining call to errors.New
cmd/tubectl/register.go:197:14: inlining call to os.(*File).Close
cmd/tubectl/register.go:200:14: inlining call to os.(*File).Close
cmd/tubectl/register.go:179:11: inlining call to os.(*File).Close
cmd/tubectl/register.go:211:38: inlining call to unix.GetsockoptUint64
cmd/tubectl/register.go:156:58: inlining call to "code.cfops.it/sys/tubular/internal".(*Destination).String
cmd/tubectl/register.go:158:58: inlining call to "code.cfops.it/sys/tubular/internal".(*Destination).String
cmd/tubectl/register.go:25:21: inlining call to (*env).newFlagSet
cmd/tubectl/register.go:43:66: inlining call to os.Getpid
cmd/tubectl/register.go:43:66: inlining call to syscall.Getpid
cmd/tubectl/register.go:43:81: inlining call to unix.Gettid
cmd/tubectl/register.go:48:18: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/register.go:57:11: inlining call to os.(*File).Close
cmd/tubectl/register.go:65:21: inlining call to (*env).newFlagSet
cmd/tubectl/register.go:83:38: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/register.go:85:45: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/register.go:85:37: inlining call to ioutil.ReadFile
cmd/tubectl/register.go:91:50: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/register.go:98:18: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/register.go:99:21: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/register.go:101:36: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/register.go:103:49: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/register.go:106:40: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/register.go:108:51: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/register.go:124:11: inlining call to os.(*File).Close
cmd/tubectl/status.go:108:20: can inline sortDestinations.func1
cmd/tubectl/status.go:23:21: inlining call to (*env).newFlagSet
cmd/tubectl/status.go:43:18: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/status.go:45:26: inlining call to tabwriter.NewWriter
cmd/tubectl/status.go:60:19: inlining call to tabwriter.(*Writer).Flush
cmd/tubectl/status.go:92:27: inlining call to "code.cfops.it/sys/tubular/internal".(*DestinationMetrics).TotalErrors
cmd/tubectl/status.go:100:19: inlining call to tabwriter.(*Writer).Flush
cmd/tubectl/status.go:199:31: inlining call to prometheus.NewRegistry
cmd/tubectl/status.go:200:51: inlining call to prometheus.WrapRegistererWithPrefix
cmd/tubectl/status.go:218:32: inlining call to runtime.Version
cmd/tubectl/status.go:239:16: can inline metricsServer.func1
cmd/tubectl/status.go:123:21: inlining call to (*env).newFlagSet
cmd/tubectl/status.go:140:20: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/status.go:141:17: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/status.go:142:25: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/status.go:154:67: inlining call to os.Getpid
cmd/tubectl/status.go:154:67: inlining call to syscall.Getpid
cmd/tubectl/status.go:154:82: inlining call to unix.Gettid
cmd/tubectl/unregister.go:10:21: inlining call to (*env).newFlagSet
cmd/tubectl/unregister.go:19:18: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/unregister.go:22:47: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/unregister.go:27:46: inlining call to flag.(*FlagSet).Arg
cmd/tubectl/unregister.go:38:87: inlining call to "code.cfops.it/sys/tubular/internal".Domain.String
cmd/tubectl/unregister.go:38:103: inlining call to "code.cfops.it/sys/tubular/internal".Protocol.String
cmd/tubectl/version.go:11:21: inlining call to (*env).newFlagSet
cmd/tubectl/version.go:17:81: inlining call to runtime.Version
cmd/tubectl/main.go:36:28: inlining call to "code.cfops.it/sys/tubular/internal/log".NewStdLogger
cmd/tubectl/main.go:36:28: inlining call to "log".New
cmd/tubectl/main.go:37:28: inlining call to "code.cfops.it/sys/tubular/internal/log".NewStdLogger
cmd/tubectl/main.go:37:28: inlining call to "log".New
cmd/tubectl/main.go:38:30: inlining call to context.Background
cmd/tubectl/status.go:203:31: devirtualizing tubularReg.Register to *prometheus.wrappingRegisterer
cmd/tubectl/status.go:209:32: devirtualizing tubularReg.Register to *prometheus.wrappingRegisterer
cmd/tubectl/flags.go:75:7: leaking param content: fs
cmd/tubectl/flags.go:80:21: ... argument does not escape
cmd/tubectl/flags.go:80:43: strings.Join(fs.args, "> <") escapes to heap
cmd/tubectl/flags.go:83:22: ... argument does not escape
cmd/tubectl/flags.go:83:46: strings.Join(fs.optionalArgs, ">] [<") escapes to heap
cmd/tubectl/flags.go:86:13: ... argument does not escape
cmd/tubectl/flags.go:86:51: string(~R0) escapes to heap
cmd/tubectl/flags.go:86:51: args escapes to heap
cmd/tubectl/flags.go:101:30: leaking param: s
cmd/tubectl/flags.go:22:17: leaking param: output
cmd/tubectl/flags.go:22:35: leaking param: name
cmd/tubectl/flags.go:22:48: leaking param: args
cmd/tubectl/flags.go:23:24: &flag.FlagSet{...} escapes to heap
cmd/tubectl/flags.go:23:24: flag.f.defaultUsage escapes to heap
cmd/tubectl/flags.go:35:8: &flagSet{...} escapes to heap
cmd/tubectl/flags.go:42:13: func literal escapes to heap
cmd/tubectl/flags.go:48:58: trimLeadingTabsAndSpace(v) + "\n\n" escapes to heap
cmd/tubectl/flags.go:52:9: "unsupported type" escapes to heap
cmd/tubectl/flags.go:60:7: leaking param content: fs
cmd/tubectl/flags.go:60:26: leaking param: args
cmd/tubectl/flags.go:72:2: errBadArg escapes to heap
cmd/tubectl/binding.go:66:22: leaking param content: args
cmd/tubectl/binding.go:68:25: ... argument does not escape
cmd/tubectl/binding.go:68:26: n escapes to heap
cmd/tubectl/binding.go:78:25: ... argument does not escape
cmd/tubectl/binding.go:78:68: args[1] escapes to heap
cmd/tubectl/binding.go:83:25: ... argument does not escape
cmd/tubectl/main.go:49:7: e does not escape
cmd/tubectl/main.go:52:20: ... argument does not escape
cmd/tubectl/main.go:59:21: ... argument does not escape
cmd/tubectl/main.go:80:7: leaking param content: e
cmd/tubectl/main.go:87:25: ... argument does not escape
cmd/tubectl/main.go:90:15: ... argument escapes to heap
cmd/tubectl/main.go:90:47: dp.Path escapes to heap
cmd/tubectl/binding.go:13:11: leaking param content: e
cmd/tubectl/binding.go:13:19: leaking param: args
cmd/tubectl/binding.go:14:21: []string{...} escapes to heap
cmd/tubectl/binding.go:15:18: "\n\t\tBind a given prefix, port and protocol to a label.\n\n\t\tExam... escapes to heap
cmd/tubectl/binding.go:40:13: leaking param content: e
cmd/tubectl/binding.go:40:21: leaking param: args
cmd/tubectl/binding.go:41:21: []string{...} escapes to heap
cmd/tubectl/binding.go:42:18: "Remove a previously created binding." escapes to heap
cmd/tubectl/binding.go:62:14: ... argument escapes to heap
cmd/tubectl/binding.go:62:15: "Removed" escapes to heap
cmd/tubectl/flags.go:89:7: leaking param content: fs
cmd/tubectl/flags.go:89:27: format does not escape
cmd/tubectl/flags.go:89:42: leaking param content: args
cmd/tubectl/flags.go:91:60: trimLeadingTabsAndSpace(usage) + "\n" escapes to heap
cmd/tubectl/binding.go:146:17: leaking param: path
cmd/tubectl/binding.go:153:6: moved to heap: config
cmd/tubectl/binding.go:154:28: &json.Decoder{...} escapes to heap
cmd/tubectl/binding.go:157:25: ... argument does not escape
cmd/tubectl/binding.go:157:45: string(~R0) escapes to heap
cmd/tubectl/binding.go:163:26: ... argument does not escape
cmd/tubectl/binding.go:163:27: bind escapes to heap
cmd/tubectl/binding.go:167:4: &"code.cfops.it/sys/tubular/internal".Binding{...} escapes to heap
cmd/tubectl/binding.go:173:4: &"code.cfops.it/sys/tubular/internal".Binding{...} escapes to heap
cmd/tubectl/binding.go:99:19: leaking param content: e
cmd/tubectl/binding.go:99:27: leaking param: args
cmd/tubectl/binding.go:102:3: moved to heap: port
cmd/tubectl/binding.go:100:19: ... argument escapes to heap
cmd/tubectl/binding.go:101:20: func literal escapes to heap
cmd/tubectl/binding.go:104:27: []bindingJSON{...} escapes to heap
cmd/tubectl/binding.go:109:31: example escapes to heap
cmd/tubectl/binding.go:111:13: ... argument does not escape
cmd/tubectl/binding.go:118:10: string(out) escapes to heap
cmd/tubectl/binding.go:118:10: string(out) escapes to heap
cmd/tubectl/binding.go:128:3: errBadArg escapes to heap
cmd/tubectl/main.go:66:7: leaking param content: e
cmd/tubectl/main.go:73:25: ... argument does not escape
cmd/tubectl/main.go:76:15: ... argument escapes to heap
cmd/tubectl/main.go:76:48: dp.Path escapes to heap
cmd/tubectl/loading.go:9:11: leaking param content: e
cmd/tubectl/loading.go:9:19: leaking param: args
cmd/tubectl/loading.go:11:18: "Load the tubular dispatcher." escapes to heap
cmd/tubectl/loading.go:18:15: ... argument escapes to heap
cmd/tubectl/loading.go:18:16: "dispatcher is already loaded in" escapes to heap
cmd/tubectl/loading.go:18:52: e.netns escapes to heap
cmd/tubectl/loading.go:25:15: ... argument escapes to heap
cmd/tubectl/loading.go:25:48: e.netns escapes to heap
cmd/tubectl/loading.go:29:13: leaking param content: e
cmd/tubectl/loading.go:29:21: leaking param: args
cmd/tubectl/loading.go:31:18: "Unload the tubular dispatcher, removing any present state." escapes to heap
cmd/tubectl/loading.go:38:15: ... argument escapes to heap
cmd/tubectl/loading.go:38:16: "dispatcher is not loaded in" escapes to heap
cmd/tubectl/loading.go:38:48: e.netns escapes to heap
cmd/tubectl/loading.go:44:15: ... argument escapes to heap
cmd/tubectl/loading.go:44:50: e.netns escapes to heap
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x38 pc=0x5baad9]

goroutine 1 [running]:
cmd/compile/internal/ir.MethodExprName(...)
	/usr/local/go/src/cmd/compile/internal/ir/expr.go:1067
cmd/compile/internal/ir.(*bottomUpVisitor).visit.func2({0xe4ed88, 0xc000dd8360})
	/usr/local/go/src/cmd/compile/internal/ir/scc.go:94 +0xd9
cmd/compile/internal/ir.Visit.func1({0xe4ed88, 0xc000dd8360})
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:105 +0x30
cmd/compile/internal/ir.doNodes({0xc000dcb740, 0x3, 0xe4e748}, 0xc000e4db60)
	/usr/local/go/src/cmd/compile/internal/ir/node_gen.go:1440 +0x67
cmd/compile/internal/ir.(*CallExpr).doChildren(0xc000350120, 0xc000e4db60)
	/usr/local/go/src/cmd/compile/internal/ir/node_gen.go:263 +0x85
cmd/compile/internal/ir.DoChildren(...)
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:94
cmd/compile/internal/ir.Visit.func1({0xe4d2f8, 0xc000350120})
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:106 +0x57
cmd/compile/internal/ir.doNodes({0xc000de0030, 0x1, 0xc000dde000}, 0xc000e4db60)
	/usr/local/go/src/cmd/compile/internal/ir/node_gen.go:1440 +0x67
cmd/compile/internal/ir.(*AssignListStmt).doChildren(0xc000dd8540, 0xc000dd8540)
	/usr/local/go/src/cmd/compile/internal/ir/node_gen.go:100 +0x7f
cmd/compile/internal/ir.DoChildren(...)
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:94
cmd/compile/internal/ir.Visit.func1({0xe4cd80, 0xc000dd8540})
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:106 +0x57
cmd/compile/internal/ir.doNodes({0xc0003501b0, 0x9, 0xe4e748}, 0xc000e4db60)
	/usr/local/go/src/cmd/compile/internal/ir/node_gen.go:1440 +0x67
cmd/compile/internal/ir.(*ConvExpr).doChildren(0xc000dd5ea0, 0xc000e4db60)
	/usr/local/go/src/cmd/compile/internal/ir/node_gen.go:434 +0x3c
cmd/compile/internal/ir.DoChildren(...)
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:94
cmd/compile/internal/ir.Visit.func1({0xe4d870, 0xc000dd5ea0})
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:106 +0x57
cmd/compile/internal/ir.doNodes({0xc000dda820, 0x2, 0x1}, 0xc000e4db60)
	/usr/local/go/src/cmd/compile/internal/ir/node_gen.go:1440 +0x67
cmd/compile/internal/ir.(*AssignListStmt).doChildren(0xc000603860, 0xc000603860)
	/usr/local/go/src/cmd/compile/internal/ir/node_gen.go:100 +0x7f
cmd/compile/internal/ir.DoChildren(...)
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:94
cmd/compile/internal/ir.Visit.func1({0xe4cd80, 0xc000603860})
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:106 +0x57
cmd/compile/internal/ir.doNodes({0xc000509400, 0x8, 0x0}, 0xc000e4db60)
	/usr/local/go/src/cmd/compile/internal/ir/node_gen.go:1440 +0x67
cmd/compile/internal/ir.(*Func).doChildren(0xe4dac8, 0xc00049f4a0)
	/usr/local/go/src/cmd/compile/internal/ir/func.go:151 +0x2e
cmd/compile/internal/ir.DoChildren(...)
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:94
cmd/compile/internal/ir.Visit.func1({0xe4dac8, 0xc00049f4a0})
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:106 +0x57
cmd/compile/internal/ir.Visit({0xe4dac8, 0xc00049f4a0}, 0xc000e5a900)
	/usr/local/go/src/cmd/compile/internal/ir/visit.go:108 +0xb8
cmd/compile/internal/ir.(*bottomUpVisitor).visit(0xc000e40690, 0xc00049f4a0)
	/usr/local/go/src/cmd/compile/internal/ir/scc.go:87 +0x1b3
cmd/compile/internal/ir.VisitFuncsBottomUp({0xc000438700, 0x38, 0x2}, 0xd16550)
	/usr/local/go/src/cmd/compile/internal/ir/scc.go:60 +0x105
cmd/compile/internal/escape.Funcs(...)
	/usr/local/go/src/cmd/compile/internal/escape/escape.go:1821
cmd/compile/internal/gc.Main(0xd16450)
	/usr/local/go/src/cmd/compile/internal/gc/main.go:253 +0xcef
main.main()
	/usr/local/go/src/cmd/compile/main.go:55 +0xdd

I can't share the full source, but this is the bit that escape analysis was working on as it crashed:

	e.stdout.Logf("unloaded dispatcher from %s\n", e.netns)  # loading.go:44
	return nil
}

func upgrade(e *env, args ...string) error {
	set := e.newFlagSet("upgrade")
	set.Description = "Upgrade the tubular dispatcher, while preserving present state."
	if err := set.Parse(args); err != nil {
		return err
	}

env is simply a type struct containing some string, interfaces and function pointers.

@cuonglm cuonglm added 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. labels Aug 31, 2021
@cuonglm
Copy link
Member

cuonglm commented Aug 31, 2021

Would you mind making a minimal reproducer? It's hard to investigate further without more information about the code.

@lmb
Copy link
Contributor Author

lmb commented Aug 31, 2021

Here you go: https://github.com/lmb/issue-48088-repro

@cuonglm
Copy link
Member

cuonglm commented Aug 31, 2021

Here you go: https://github.com/lmb/issue-48088-repro

Thanks, I can reproduce now.

@cuonglm cuonglm added NeedsFix The path to resolution is known, but the work has not been done. and removed WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Aug 31, 2021
@cuonglm cuonglm added this to the Go1.18 milestone Aug 31, 2021
@cuonglm cuonglm self-assigned this Aug 31, 2021
@cuonglm
Copy link
Member

cuonglm commented Aug 31, 2021

Seems we also need to backport this, cc @mdempsky

@ALTree
Copy link
Member

ALTree commented Aug 31, 2021

Failure started at 6d8ba77.

@gopherbot
Copy link

Change https://golang.org/cl/346489 mentions this issue: cmd/compile: fix method expression lookup during import

@cuonglm
Copy link
Member

cuonglm commented Aug 31, 2021

@gopherbot please open a backport to go1.17

@gopherbot
Copy link

Backport issue(s) opened: #48102 (for 1.17).

Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://golang.org/wiki/MinorReleases.

@cuonglm cuonglm changed the title cmd/compile: panic in escape analysis cmd/compile: panic during import method expression Aug 31, 2021
@rsc rsc unassigned cuonglm Jun 23, 2022
@golang golang locked and limited conversation to collaborators Jun 23, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests

4 participants