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: compiler crashes with a 10MB error message when building tiny program on -c=4 #20162

Closed
ALTree opened this issue Apr 28, 2017 · 5 comments

Comments

Projects
None yet
4 participants
@ALTree
Copy link
Member

commented Apr 28, 2017

$ gotip version
go version devel +8db4d02e8f Fri Apr 28 07:27:25 2017 +0000 linux/amd64

The following program:

package p

func Foo() {
	_ = (make([]func() interface {
		M(interface{})
	}, 1))
}

when built on loop on my 4-core machine with -c=4:

while true; do gotip build -gcflags -c=4 main.go; done

crashes the compiler with a 10MB error message. The error starts with this:

# command-line-arguments
<autogenerated>:1:0: internal compiler error: <autogenerated>:1:0: internal compiler error: <autogenerated>:1:0: internal compiler error: <autogenerated>:1:0: internal compiler error: <autogenerated>:1:0: internal compiler error

and ends with this:

internal compiler error: runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow

Then a stacktrace follows:

fatal error: stack overflow

runtime stack:
runtime.throw(0xb9a69e, 0xe)
	/home/alberto/go/src/runtime/panic.go:596 +0x95
runtime.newstack(0x0)
	/home/alberto/go/src/runtime/stack.go:1059 +0x3da
runtime.morestack()
	/home/alberto/go/src/runtime/asm_amd64.s:405 +0x86

goroutine 9 [running]:
bufio.(*Writer).Flush(0xc420018380, 0x0, 0x0)
	/home/alberto/go/src/bufio/bufio.go:559 +0x1f3 fp=0xc440520370 sp=0xc440520368
cmd/compile/internal/gc.flusherrors()
	/home/alberto/go/src/cmd/compile/internal/gc/subr.go:71 +0x35 fp=0xc4405203f0 sp=0xc440520370
cmd/compile/internal/gc.Fatalf(0xba0a49, 0x18, 0xc440520548, 0x1, 0x1)
	/home/alberto/go/src/cmd/compile/internal/gc/subr.go:167 +0x26 fp=0xc440520460 sp=0xc4405203f0
cmd/compile/internal/gc.dowidth(0xc420051d40)
	/home/alberto/go/src/cmd/compile/internal/gc/align.go:186 +0xfb0 fp=0xc440520598 sp=0xc440520460
cmd/compile/internal/types.(*Type).Fields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:792 +0x84 fp=0xc4405205d8 sp=0xc440520598
cmd/compile/internal/types.(*Fields).Len(...)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215
cmd/compile/internal/types.(*Type).NumFields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215 +0x2b fp=0xc4405205f8 sp=0xc4405205d8
cmd/compile/internal/types.(*Type).IsEmptyInterface(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1202 +0x44 fp=0xc440520618 sp=0xc4405205f8
cmd/compile/internal/gc.typefmt(0xc420051d40, 0x0, 0x0, 0x1, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:775 +0x1e79 fp=0xc4405208e8 sp=0xc440520618
cmd/compile/internal/gc.tconv(0xc420051d40, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1809 +0x7a fp=0xc440520928 sp=0xc4405208e8
cmd/compile/internal/gc.typeFormat(0xc420051d40, 0xef87e0, 0xc425525a40, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1787 +0x92 fp=0xc4405209d0 sp=0xc440520928
cmd/compile/internal/gc.Main.func4(0xc420051d40, 0xef87e0, 0xc425525a40, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/main.go:393 +0x51 fp=0xc440520a08 sp=0xc4405209d0
cmd/compile/internal/types.(*Type).Format(0xc420051d40, 0xef87e0, 0xc425525a40, 0x76)
	/home/alberto/go/src/cmd/compile/internal/types/utils.go:67 +0x5a fp=0xc440520a40 sp=0xc440520a08
fmt.(*pp).handleMethods(0xc425525a40, 0xc400000076, 0x1)
	/home/alberto/go/src/fmt/print.go:563 +0x49d fp=0xc440520ad0 sp=0xc440520a40
fmt.(*pp).printArg(0xc425525a40, 0xb8b9a0, 0xc420051d40, 0x76)
	/home/alberto/go/src/fmt/print.go:679 +0x185 fp=0xc440520b50 sp=0xc440520ad0
fmt.(*pp).doPrintf(0xc425525a40, 0xba0a49, 0x18, 0xc440520ea0, 0x1, 0x1)
	/home/alberto/go/src/fmt/print.go:996 +0x169 fp=0xc440520c80 sp=0xc440520b50
fmt.Fprintf(0xef39a0, 0xc42000c018, 0xba0a49, 0x18, 0xc440520ea0, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:181 +0x76 fp=0xc440520ce8 sp=0xc440520c80
fmt.Printf(0xba0a49, 0x18, 0xc440520ea0, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:190 +0x72 fp=0xc440520d48 sp=0xc440520ce8
cmd/compile/internal/gc.Fatalf(0xba0a49, 0x18, 0xc440520ea0, 0x1, 0x1)
	/home/alberto/go/src/cmd/compile/internal/gc/subr.go:170 +0x106 fp=0xc440520db8 sp=0xc440520d48
cmd/compile/internal/gc.dowidth(0xc420051d40)
	/home/alberto/go/src/cmd/compile/internal/gc/align.go:186 +0xfb0 fp=0xc440520ef0 sp=0xc440520db8
cmd/compile/internal/types.(*Type).Fields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:792 +0x84 fp=0xc440520f30 sp=0xc440520ef0
cmd/compile/internal/types.(*Fields).Len(...)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215
cmd/compile/internal/types.(*Type).NumFields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215 +0x2b fp=0xc440520f50 sp=0xc440520f30
cmd/compile/internal/types.(*Type).IsEmptyInterface(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1202 +0x44 fp=0xc440520f70 sp=0xc440520f50
cmd/compile/internal/gc.typefmt(0xc420051d40, 0x0, 0x0, 0x1, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:775 +0x1e79 fp=0xc440521240 sp=0xc440520f70
cmd/compile/internal/gc.tconv(0xc420051d40, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1809 +0x7a fp=0xc440521280 sp=0xc440521240
cmd/compile/internal/gc.typeFormat(0xc420051d40, 0xef87e0, 0xc425525980, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1787 +0x92 fp=0xc440521328 sp=0xc440521280
cmd/compile/internal/gc.Main.func4(0xc420051d40, 0xef87e0, 0xc425525980, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/main.go:393 +0x51 fp=0xc440521360 sp=0xc440521328
cmd/compile/internal/types.(*Type).Format(0xc420051d40, 0xef87e0, 0xc425525980, 0x76)
	/home/alberto/go/src/cmd/compile/internal/types/utils.go:67 +0x5a fp=0xc440521398 sp=0xc440521360
fmt.(*pp).handleMethods(0xc425525980, 0xc400000076, 0x1)
	/home/alberto/go/src/fmt/print.go:563 +0x49d fp=0xc440521428 sp=0xc440521398
fmt.(*pp).printArg(0xc425525980, 0xb8b9a0, 0xc420051d40, 0x76)
	/home/alberto/go/src/fmt/print.go:679 +0x185 fp=0xc4405214a8 sp=0xc440521428
fmt.(*pp).doPrintf(0xc425525980, 0xba0a49, 0x18, 0xc4405217f8, 0x1, 0x1)
	/home/alberto/go/src/fmt/print.go:996 +0x169 fp=0xc4405215d8 sp=0xc4405214a8
fmt.Fprintf(0xef39a0, 0xc42000c018, 0xba0a49, 0x18, 0xc4405217f8, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:181 +0x76 fp=0xc440521640 sp=0xc4405215d8
fmt.Printf(0xba0a49, 0x18, 0xc4405217f8, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:190 +0x72 fp=0xc4405216a0 sp=0xc440521640
cmd/compile/internal/gc.Fatalf(0xba0a49, 0x18, 0xc4405217f8, 0x1, 0x1)
	/home/alberto/go/src/cmd/compile/internal/gc/subr.go:170 +0x106 fp=0xc440521710 sp=0xc4405216a0
cmd/compile/internal/gc.dowidth(0xc420051d40)
	/home/alberto/go/src/cmd/compile/internal/gc/align.go:186 +0xfb0 fp=0xc440521848 sp=0xc440521710
cmd/compile/internal/types.(*Type).Fields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:792 +0x84 fp=0xc440521888 sp=0xc440521848
cmd/compile/internal/types.(*Fields).Len(...)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215
cmd/compile/internal/types.(*Type).NumFields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215 +0x2b fp=0xc4405218a8 sp=0xc440521888
cmd/compile/internal/types.(*Type).IsEmptyInterface(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1202 +0x44 fp=0xc4405218c8 sp=0xc4405218a8
cmd/compile/internal/gc.typefmt(0xc420051d40, 0x0, 0x0, 0x1, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:775 +0x1e79 fp=0xc440521b98 sp=0xc4405218c8
cmd/compile/internal/gc.tconv(0xc420051d40, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1809 +0x7a fp=0xc440521bd8 sp=0xc440521b98
cmd/compile/internal/gc.typeFormat(0xc420051d40, 0xef87e0, 0xc4255258c0, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1787 +0x92 fp=0xc440521c80 sp=0xc440521bd8
cmd/compile/internal/gc.Main.func4(0xc420051d40, 0xef87e0, 0xc4255258c0, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/main.go:393 +0x51 fp=0xc440521cb8 sp=0xc440521c80
cmd/compile/internal/types.(*Type).Format(0xc420051d40, 0xef87e0, 0xc4255258c0, 0x76)
	/home/alberto/go/src/cmd/compile/internal/types/utils.go:67 +0x5a fp=0xc440521cf0 sp=0xc440521cb8
fmt.(*pp).handleMethods(0xc4255258c0, 0xc400000076, 0x1)
	/home/alberto/go/src/fmt/print.go:563 +0x49d fp=0xc440521d80 sp=0xc440521cf0
fmt.(*pp).printArg(0xc4255258c0, 0xb8b9a0, 0xc420051d40, 0x76)
	/home/alberto/go/src/fmt/print.go:679 +0x185 fp=0xc440521e00 sp=0xc440521d80
fmt.(*pp).doPrintf(0xc4255258c0, 0xba0a49, 0x18, 0xc440522150, 0x1, 0x1)
	/home/alberto/go/src/fmt/print.go:996 +0x169 fp=0xc440521f30 sp=0xc440521e00
fmt.Fprintf(0xef39a0, 0xc42000c018, 0xba0a49, 0x18, 0xc440522150, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:181 +0x76 fp=0xc440521f98 sp=0xc440521f30
fmt.Printf(0xba0a49, 0x18, 0xc440522150, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:190 +0x72 fp=0xc440521ff8 sp=0xc440521f98
cmd/compile/internal/gc.Fatalf(0xba0a49, 0x18, 0xc440522150, 0x1, 0x1)
	/home/alberto/go/src/cmd/compile/internal/gc/subr.go:170 +0x106 fp=0xc440522068 sp=0xc440521ff8
cmd/compile/internal/gc.dowidth(0xc420051d40)
	/home/alberto/go/src/cmd/compile/internal/gc/align.go:186 +0xfb0 fp=0xc4405221a0 sp=0xc440522068
cmd/compile/internal/types.(*Type).Fields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:792 +0x84 fp=0xc4405221e0 sp=0xc4405221a0
cmd/compile/internal/types.(*Fields).Len(...)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215
cmd/compile/internal/types.(*Type).NumFields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215 +0x2b fp=0xc440522200 sp=0xc4405221e0
cmd/compile/internal/types.(*Type).IsEmptyInterface(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1202 +0x44 fp=0xc440522220 sp=0xc440522200
cmd/compile/internal/gc.typefmt(0xc420051d40, 0x0, 0x0, 0x1, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:775 +0x1e79 fp=0xc4405224f0 sp=0xc440522220
cmd/compile/internal/gc.tconv(0xc420051d40, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1809 +0x7a fp=0xc440522530 sp=0xc4405224f0
cmd/compile/internal/gc.typeFormat(0xc420051d40, 0xef87e0, 0xc425525800, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1787 +0x92 fp=0xc4405225d8 sp=0xc440522530
cmd/compile/internal/gc.Main.func4(0xc420051d40, 0xef87e0, 0xc425525800, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/main.go:393 +0x51 fp=0xc440522610 sp=0xc4405225d8
cmd/compile/internal/types.(*Type).Format(0xc420051d40, 0xef87e0, 0xc425525800, 0x76)
	/home/alberto/go/src/cmd/compile/internal/types/utils.go:67 +0x5a fp=0xc440522648 sp=0xc440522610
fmt.(*pp).handleMethods(0xc425525800, 0xc400000076, 0x1)
	/home/alberto/go/src/fmt/print.go:563 +0x49d fp=0xc4405226d8 sp=0xc440522648
fmt.(*pp).printArg(0xc425525800, 0xb8b9a0, 0xc420051d40, 0x76)
	/home/alberto/go/src/fmt/print.go:679 +0x185 fp=0xc440522758 sp=0xc4405226d8
fmt.(*pp).doPrintf(0xc425525800, 0xba0a49, 0x18, 0xc440522aa8, 0x1, 0x1)
	/home/alberto/go/src/fmt/print.go:996 +0x169 fp=0xc440522888 sp=0xc440522758
fmt.Fprintf(0xef39a0, 0xc42000c018, 0xba0a49, 0x18, 0xc440522aa8, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:181 +0x76 fp=0xc4405228f0 sp=0xc440522888
fmt.Printf(0xba0a49, 0x18, 0xc440522aa8, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:190 +0x72 fp=0xc440522950 sp=0xc4405228f0
cmd/compile/internal/gc.Fatalf(0xba0a49, 0x18, 0xc440522aa8, 0x1, 0x1)
	/home/alberto/go/src/cmd/compile/internal/gc/subr.go:170 +0x106 fp=0xc4405229c0 sp=0xc440522950
cmd/compile/internal/gc.dowidth(0xc420051d40)
	/home/alberto/go/src/cmd/compile/internal/gc/align.go:186 +0xfb0 fp=0xc440522af8 sp=0xc4405229c0
cmd/compile/internal/types.(*Type).Fields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:792 +0x84 fp=0xc440522b38 sp=0xc440522af8
cmd/compile/internal/types.(*Fields).Len(...)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215
cmd/compile/internal/types.(*Type).NumFields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215 +0x2b fp=0xc440522b58 sp=0xc440522b38
cmd/compile/internal/types.(*Type).IsEmptyInterface(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1202 +0x44 fp=0xc440522b78 sp=0xc440522b58
cmd/compile/internal/gc.typefmt(0xc420051d40, 0x0, 0x0, 0x1, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:775 +0x1e79 fp=0xc440522e48 sp=0xc440522b78
cmd/compile/internal/gc.tconv(0xc420051d40, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1809 +0x7a fp=0xc440522e88 sp=0xc440522e48
cmd/compile/internal/gc.typeFormat(0xc420051d40, 0xef87e0, 0xc425525740, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1787 +0x92 fp=0xc440522f30 sp=0xc440522e88
cmd/compile/internal/gc.Main.func4(0xc420051d40, 0xef87e0, 0xc425525740, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/main.go:393 +0x51 fp=0xc440522f68 sp=0xc440522f30
cmd/compile/internal/types.(*Type).Format(0xc420051d40, 0xef87e0, 0xc425525740, 0x76)
	/home/alberto/go/src/cmd/compile/internal/types/utils.go:67 +0x5a fp=0xc440522fa0 sp=0xc440522f68
fmt.(*pp).handleMethods(0xc425525740, 0xc400000076, 0x1)
	/home/alberto/go/src/fmt/print.go:563 +0x49d fp=0xc440523030 sp=0xc440522fa0
fmt.(*pp).printArg(0xc425525740, 0xb8b9a0, 0xc420051d40, 0x76)
	/home/alberto/go/src/fmt/print.go:679 +0x185 fp=0xc4405230b0 sp=0xc440523030
fmt.(*pp).doPrintf(0xc425525740, 0xba0a49, 0x18, 0xc440523400, 0x1, 0x1)
	/home/alberto/go/src/fmt/print.go:996 +0x169 fp=0xc4405231e0 sp=0xc4405230b0
fmt.Fprintf(0xef39a0, 0xc42000c018, 0xba0a49, 0x18, 0xc440523400, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:181 +0x76 fp=0xc440523248 sp=0xc4405231e0
fmt.Printf(0xba0a49, 0x18, 0xc440523400, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:190 +0x72 fp=0xc4405232a8 sp=0xc440523248
cmd/compile/internal/gc.Fatalf(0xba0a49, 0x18, 0xc440523400, 0x1, 0x1)
	/home/alberto/go/src/cmd/compile/internal/gc/subr.go:170 +0x106 fp=0xc440523318 sp=0xc4405232a8
cmd/compile/internal/gc.dowidth(0xc420051d40)
	/home/alberto/go/src/cmd/compile/internal/gc/align.go:186 +0xfb0 fp=0xc440523450 sp=0xc440523318
cmd/compile/internal/types.(*Type).Fields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:792 +0x84 fp=0xc440523490 sp=0xc440523450
cmd/compile/internal/types.(*Fields).Len(...)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215
cmd/compile/internal/types.(*Type).NumFields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215 +0x2b fp=0xc4405234b0 sp=0xc440523490
cmd/compile/internal/types.(*Type).IsEmptyInterface(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1202 +0x44 fp=0xc4405234d0 sp=0xc4405234b0
cmd/compile/internal/gc.typefmt(0xc420051d40, 0x0, 0x0, 0x1, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:775 +0x1e79 fp=0xc4405237a0 sp=0xc4405234d0
cmd/compile/internal/gc.tconv(0xc420051d40, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1809 +0x7a fp=0xc4405237e0 sp=0xc4405237a0
cmd/compile/internal/gc.typeFormat(0xc420051d40, 0xef87e0, 0xc425525680, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1787 +0x92 fp=0xc440523888 sp=0xc4405237e0
cmd/compile/internal/gc.Main.func4(0xc420051d40, 0xef87e0, 0xc425525680, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/main.go:393 +0x51 fp=0xc4405238c0 sp=0xc440523888
cmd/compile/internal/types.(*Type).Format(0xc420051d40, 0xef87e0, 0xc425525680, 0x76)
	/home/alberto/go/src/cmd/compile/internal/types/utils.go:67 +0x5a fp=0xc4405238f8 sp=0xc4405238c0
fmt.(*pp).handleMethods(0xc425525680, 0xc400000076, 0x1)
	/home/alberto/go/src/fmt/print.go:563 +0x49d fp=0xc440523988 sp=0xc4405238f8
fmt.(*pp).printArg(0xc425525680, 0xb8b9a0, 0xc420051d40, 0x76)
	/home/alberto/go/src/fmt/print.go:679 +0x185 fp=0xc440523a08 sp=0xc440523988
fmt.(*pp).doPrintf(0xc425525680, 0xba0a49, 0x18, 0xc440523d58, 0x1, 0x1)
	/home/alberto/go/src/fmt/print.go:996 +0x169 fp=0xc440523b38 sp=0xc440523a08
fmt.Fprintf(0xef39a0, 0xc42000c018, 0xba0a49, 0x18, 0xc440523d58, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:181 +0x76 fp=0xc440523ba0 sp=0xc440523b38
fmt.Printf(0xba0a49, 0x18, 0xc440523d58, 0x1, 0x1, 0x2e, 0x0, 0x0)
	/home/alberto/go/src/fmt/print.go:190 +0x72 fp=0xc440523c00 sp=0xc440523ba0
cmd/compile/internal/gc.Fatalf(0xba0a49, 0x18, 0xc440523d58, 0x1, 0x1)
	/home/alberto/go/src/cmd/compile/internal/gc/subr.go:170 +0x106 fp=0xc440523c70 sp=0xc440523c00
cmd/compile/internal/gc.dowidth(0xc420051d40)
	/home/alberto/go/src/cmd/compile/internal/gc/align.go:186 +0xfb0 fp=0xc440523da8 sp=0xc440523c70
cmd/compile/internal/types.(*Type).Fields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:792 +0x84 fp=0xc440523de8 sp=0xc440523da8
cmd/compile/internal/types.(*Fields).Len(...)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215
cmd/compile/internal/types.(*Type).NumFields(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1215 +0x2b fp=0xc440523e08 sp=0xc440523de8
cmd/compile/internal/types.(*Type).IsEmptyInterface(0xc420051d40, 0x0)
	/home/alberto/go/src/cmd/compile/internal/types/type.go:1202 +0x44 fp=0xc440523e28 sp=0xc440523e08
cmd/compile/internal/gc.typefmt(0xc420051d40, 0x0, 0x0, 0x1, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:775 +0x1e79 fp=0xc4405240f8 sp=0xc440523e28
cmd/compile/internal/gc.tconv(0xc420051d40, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1809 +0x7a fp=0xc440524138 sp=0xc4405240f8
cmd/compile/internal/gc.typeFormat(0xc420051d40, 0xef87e0, 0xc4255255c0, 0xc400000076, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1787 +0x92 fp=0xc4405241e0 sp=0xc440524138
...additional frames elided...
created by cmd/compile/internal/gc.compileFunctions
	/home/alberto/go/src/cmd/compile/internal/gc/pgen.go:278 +0x10b

goroutine 1 [semacquire]:
sync.runtime_Semacquire(0xc420014d7c)
	/home/alberto/go/src/runtime/sema.go:56 +0x39
sync.(*WaitGroup).Wait(0xc420014d70)
	/home/alberto/go/src/sync/waitgroup.go:131 +0x74
cmd/compile/internal/gc.compileFunctions()
	/home/alberto/go/src/cmd/compile/internal/gc/pgen.go:290 +0x1d3
cmd/compile/internal/gc.Main(0xbb0c68)
	/home/alberto/go/src/cmd/compile/internal/gc/main.go:580 +0x2854
main.main()
	/home/alberto/go/src/cmd/compile/main.go:49 +0x95

@ALTree ALTree added this to the Go1.9 milestone Apr 28, 2017

@ALTree

This comment has been minimized.

Copy link
Member Author

commented Apr 28, 2017

@mvdan

This comment has been minimized.

Copy link
Member

commented Apr 28, 2017

internal compiler error while reporting an internal compiler error is the best kind of error.

@josharian

This comment has been minimized.

Copy link
Contributor

commented Apr 28, 2017

Nice one. Testing fixes, will be on their way soon.

@gopherbot

This comment has been minimized.

Copy link

commented Apr 28, 2017

CL https://golang.org/cl/42131 mentions this issue.

@gopherbot

This comment has been minimized.

Copy link

commented Apr 28, 2017

CL https://golang.org/cl/42130 mentions this issue.

gopherbot pushed a commit that referenced this issue Apr 28, 2017

cmd/compile: prevent infinite recursion printing types in Fatalf
Updates #20162

Change-Id: Ie289bae0d0be8430e492ac73fd6e6bf36991d4a1
Reviewed-on: https://go-review.googlesource.com/42130
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>

@gopherbot gopherbot closed this in 92363d5 Apr 28, 2017

@golang golang locked and limited conversation to collaborators Apr 28, 2018

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.