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

go/internal/gccgoimporter: TestInstallationImporter failing on SmartOS #29006

Closed
bcmills opened this issue Nov 29, 2018 · 20 comments
Closed

go/internal/gccgoimporter: TestInstallationImporter failing on SmartOS #29006

bcmills opened this issue Nov 29, 2018 · 20 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-Solaris Testing An issue that has been verified to require only test changes, not just a test failure.
Milestone

Comments

@bcmills
Copy link
Contributor

bcmills commented Nov 29, 2018

Seems to be a consistent failure. Example: https://build.golang.org/log/52004d2ece81d2342a5810c4d29c264e6a0c8e81

--- FAIL: TestInstallationImporter (0.26s)
panic: types.Named.SetUnderlying: underlying type must not be nil [recovered]
	panic: types.Named.SetUnderlying: underlying type must not be nil

goroutine 19 [running]:
testing.tRunner.func1(0xc000120100)
	/tmp/workdir/go/src/testing/testing.go:827 +0x387
panic(0x56bd40, 0x5d8dd0)
	/tmp/workdir/go/src/runtime/panic.go:513 +0x1b7
go/types.(*Named).SetUnderlying(...)
	/tmp/workdir/go/src/go/types/type.go:451
go/internal/gccgoimporter.(*parser).parseNamedType(0xc0000d68f0, 0xc000259638, 0x1, 0x1, 0x8, 0x1)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:507 +0xbc2
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc000259638, 0x1, 0x1, 0xc000259638, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:757 +0x367
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x10000c000259601, 0xc000223fc0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parsePointerType(0xc0000d68f0, 0xc0003caf50, 0xc000259628, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:748 +0x168
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc000259628, 0x1, 0x1, 0xc000259628, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:775 +0x434
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xc000259619, 0x4)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xc000223fa0, 0x10)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseField(0xc0000d68f0, 0xc0003caf50, 0x1, 0x1, 0x2)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:220 +0x78
go/internal/gccgoimporter.(*parser).parseStructType(0xc0000d68f0, 0xc0003caf50, 0xc0002595c8, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:628 +0x166
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc0002595c8, 0x1, 0x1, 0xc0002595c8, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:768 +0x2b9
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x6, 0xc000213cca)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0x11)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseNamedType(0xc0000d68f0, 0xc0002595b0, 0x1, 0x1, 0x8, 0x1)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:505 +0x17c
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc0002595b0, 0x1, 0x1, 0xc0002595b0, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:757 +0x367
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0xc000223f90)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseArrayOrSliceType(0xc0000d68f0, 0xc0003caf50, 0xc0002595a0, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:559 +0xd2
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc0002595a0, 0x1, 0x1, 0xc0002595a0, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:778 +0x3d9
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xc000259599, 0x7)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xc000223f60, 0x10)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseField(0xc0000d68f0, 0xc0003caf50, 0x1, 0x1, 0x2)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:220 +0x78
go/internal/gccgoimporter.(*parser).parseStructType(0xc0000d68f0, 0xc0003caf50, 0xc000259550, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:628 +0x166
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc000259550, 0x1, 0x1, 0xc000259550, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:768 +0x2b9
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xc, 0xc000213c8a)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0x17)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseNamedType(0xc0000d68f0, 0xc000259538, 0x1, 0x1, 0x8, 0x1)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:505 +0x17c
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc000259538, 0x1, 0x1, 0xc000259538, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:757 +0x367
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x10000c000259501, 0xc000223f30)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parsePointerType(0xc0000d68f0, 0xc0003caf50, 0xc000259528, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:748 +0x168
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc000259528, 0x1, 0x1, 0xc000259528, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:775 +0x434
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xfffffbffef0f0b20, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xc00028c480, 0x80)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseField(0xc0000d68f0, 0xc0003caf50, 0x8, 0x8, 0x9)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:220 +0x78
go/internal/gccgoimporter.(*parser).parseStructType(0xc0000d68f0, 0xc0003caf50, 0xc0002593f8, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:628 +0x166
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc0002593f8, 0x1, 0x1, 0xc0002593f8, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:768 +0x2b9
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xa, 0xc000213c0a)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0x15)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseNamedType(0xc0000d68f0, 0xc0002593e0, 0x1, 0x1, 0x8, 0x1)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:505 +0x17c
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc0002593e0, 0x1, 0x1, 0xc0002593e0, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:757 +0x367
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x10000c000259301, 0xc000223ec0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parsePointerType(0xc0000d68f0, 0xc0003caf50, 0xc0002593d0, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:748 +0x168
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc0002593d0, 0x1, 0x1, 0xc0002593d0, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:775 +0x434
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xc0002593c9, 0x3)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x49, 0x490)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseField(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x1)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:220 +0x78
go/internal/gccgoimporter.(*parser).parseStructType(0xc0000d68f0, 0xc0003caf50, 0xc0002593b0, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:628 +0x166
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc0002593b0, 0x1, 0x1, 0xc0002593b0, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:768 +0x2b9
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x5, 0xc000259399)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0xf)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseNamedType(0xc0000d68f0, 0xc000259388, 0x1, 0x1, 0x8, 0x1)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:505 +0x17c
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc000259388, 0x1, 0x1, 0xc000259388, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:757 +0x367
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xc00025937c, 0x4)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0xc00027c140, 0x20)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseField(0xc0000d68f0, 0xc0003caf50, 0x2, 0x2, 0x3)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:220 +0x78
go/internal/gccgoimporter.(*parser).parseStructType(0xc0000d68f0, 0xc0003caf50, 0xc000259320, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:628 +0x166
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc000259320, 0x1, 0x1, 0xc000259320, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:768 +0x2b9
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x6, 0xc000259309)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0x10)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseNamedType(0xc0000d68f0, 0xc0002592f8, 0x1, 0x1, 0x8, 0x1)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:505 +0x17c
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc0002592f8, 0x1, 0x1, 0xc0002592f8, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:757 +0x367
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0x40bc38)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseResultList(0xc0000d68f0, 0xc0003caf50, 0xc00027c100)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:671 +0x8f
go/internal/gccgoimporter.(*parser).parseFunctionType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x8)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:688 +0xd3
go/internal/gccgoimporter.(*parser).parseFunc(0xc0000d68f0, 0xc0003caf50, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:703 +0x8e
go/internal/gccgoimporter.(*parser).parseInterfaceType(0xc0000d68f0, 0xc0003caf50, 0xc000259250, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:724 +0x2d9
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003caf50, 0xc000259250, 0x1, 0x1, 0xc000259250, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:771 +0x25e
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x4, 0xc000259219)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003caf50, 0x0, 0x0, 0x0, 0x1, 0xe)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseNamedType(0xc0000d68f0, 0xc000259220, 0x1, 0x1, 0x8, 0x1)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:505 +0x17c
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003d7400, 0xc000259220, 0x1, 0x1, 0xc000259220, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:757 +0x367
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003d7400, 0x0, 0x0, 0x0, 0x1, 0xc00027c080)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003d7400, 0x0, 0x0, 0x0, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseMapType(0xc0000d68f0, 0xc0003d7400, 0xc000259200, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:581 +0xdd
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003d7400, 0xc000259200, 0x1, 0x1, 0xc000259200, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:762 +0x1aa
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003d7400, 0x0, 0x0, 0x0, 0xc000213bee, 0xc)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003d7400, 0x0, 0x0, 0x0, 0x5dc5c0, 0xc00025fbe0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseField(0xc0000d68f0, 0xc0003d7400, 0x0, 0x0, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:220 +0x78
go/internal/gccgoimporter.(*parser).parseStructType(0xc0000d68f0, 0xc0003d7400, 0xc000243da8, 0x1, 0x1, 0x1, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:628 +0x166
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003d7400, 0xc000243da8, 0x1, 0x1, 0xc000243da8, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:768 +0x2b9
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003d7400, 0x0, 0x0, 0x0, 0x7, 0xc000243d71)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003d7400, 0x0, 0x0, 0x0, 0x1, 0x9)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseNamedType(0xc0000d68f0, 0xc000243d90, 0x1, 0x1, 0x8, 0x1)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:505 +0x17c
go/internal/gccgoimporter.(*parser).parseTypeSpec(0xc0000d68f0, 0xc0003d7400, 0xc000243d90, 0x1, 0x1, 0xc000243d90, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:757 +0x367
go/internal/gccgoimporter.(*parser).parseTypeAfterAngle(0xc0000d68f0, 0xc0003d7400, 0x0, 0x0, 0x0, 0x3c, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:866 +0x571
go/internal/gccgoimporter.(*parser).parseType(0xc0000d68f0, 0xc0003d7400, 0x0, 0x0, 0x0, 0x5dc600, 0xc00023b9b0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:845 +0x69
go/internal/gccgoimporter.(*parser).parseDirective(0xc0000d68f0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:1153 +0x36b
go/internal/gccgoimporter.(*parser).parsePackage(0xc0000d68f0, 0xc00001b6d0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/parser.go:1176 +0x2c
go/internal/gccgoimporter.GetImporter.func1(0xc0000a0750, 0x5af339, 0xc, 0x5aceaa, 0x1, 0x0, 0x0, 0x0, 0x0)
	/tmp/workdir/go/src/go/internal/gccgoimporter/importer.go:202 +0x3f8
go/internal/gccgoimporter.TestInstallationImporter(0xc000120100)
	/tmp/workdir/go/src/go/internal/gccgoimporter/gccgoinstallation_test.go:163 +0x1c2
testing.tRunner(0xc000120100, 0x5b9390)
	/tmp/workdir/go/src/testing/testing.go:862 +0xbf
created by testing.(*T).Run
	/tmp/workdir/go/src/testing/testing.go:913 +0x34d
FAIL	go/internal/gccgoimporter	0.311s

CC: @griesemer @ianlancetaylor

@bcmills bcmills added Testing An issue that has been verified to require only test changes, not just a test failure. OS-Solaris NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Nov 29, 2018
@gopherbot gopherbot added this to the Gccgo milestone Nov 29, 2018
@ianlancetaylor
Copy link
Contributor

CC @thanm

@ianlancetaylor
Copy link
Contributor

Hmm, gomote shows that gccgo 4.7.4 is installed. That is from 2012. Interesting that it works this well, really.

@ianlancetaylor ianlancetaylor self-assigned this Nov 29, 2018
@ianlancetaylor
Copy link
Contributor

Building GCC 4.7 to see if I can reproduce the problem locally.

@thanm
Copy link
Contributor

thanm commented Nov 29, 2018

Thanks Ian.

@ianlancetaylor
Copy link
Contributor

GCC 4.7 is old enough that it doesn't build with GCC 7, this looks like fun....

@thanm
Copy link
Contributor

thanm commented Nov 29, 2018

I am willing to take a look. Is it relatively easy to to upload files from a builder via gomote? I can just transfer the *.gox files from the installation back to my workstation.

@cherrymui
Copy link
Member

Is it relatively easy to to upload files from a builder via gomote?

gomote put will do the upload. For download, I just use gomote run $MACHINE /bin/cat file > localfile....

@ianlancetaylor
Copy link
Contributor

I have the failing .gox file now.

@ianlancetaylor
Copy link
Contributor

The export data is:

v1;
package gob;
pkgpath encoding/gob;
priority 7;
import bufio bufio "bufio";
import bytes bytes "bytes";
import errors errors "errors";
import fmt fmt "fmt";
import io io "io";
import math math "math";
import os os "os";
import reflect reflect "reflect";
import sync sync "sync";
import unicode unicode "unicode";
import utf8 unicode/utf8 "unicode/utf8";
import unsafe unsafe "unsafe";
init gob encoding_gob..import 7 math math..import 1 runtime runtime..import 1 unicode unicode..import 1 strconv strconv..import 2 io io..import 3 reflect reflect..import 3 syscall syscall..import 3 bytes bytes..import 4 time time..import 4 bufio bufio..import 5 os os..import 5 fmt fmt..import 6;
type <type 1 "CommonType" <type 2 struct { Name <type -16>; Id <type 3 ".encoding/gob.typeId" <type -3>
 func (t <type 3>) .encoding/gob.gobType () <type 4 ".encoding/gob.gobType" <type 5 interface { .encoding/gob.id () <type 3>; .encoding/gob.setId (id <type 3>); .encoding/gob.name () <type -16>; .encoding/gob.string () <type -16>; .encoding/gob.safeString (seen <type 6 map [<type 3>] <type -15>>) <type -16>; }>>;
 func (t <type 3>) .encoding/gob.string () <type -16>;
 func (t <type 3>) .encoding/gob.name () <type -16>;
>; }>
 func (t <type 7 *<type 1>>) .encoding/gob.id () <type 3>;
 func (t <type 7>) .encoding/gob.setId (id <type 3>);
 func (t <type 7>) .encoding/gob.string () <type -16>;
 func (t <type 7>) .encoding/gob.safeString (seen <type 8 map [<type 3>] <type -15>>) <type -16>;
 func (t <type 7>) .encoding/gob.name () <type -16>;
>;
func CommonType$equal (key1 <type 9 *any>, key2 <type 9>, key_size <type -13>) <type -15>;
func CommonType$hash (key <type 9>, key_size <type -13>) <type -13>;
type <type 10 "Decoder" <type 11 struct { .encoding/gob.mutex <type 12 "sync.Mutex" <type 13 struct { .sync.state <type -3>; .sync.sema <type -7>; }>
 func (m <type 14 *<type 12>>) Unlock ();
 func (m <type 14>) Lock ();
>; .encoding/gob.r <type 15 "io.Reader" <type 16 interface { Read (p <type 17 [] <type -20>>) (n <type -11>, err <type -19>); }>>; .encoding/gob.buf <type 18 "bytes.Buffer" <type 19 struct { .bytes.buf <type 20 [] <type -20>>; .bytes.off <type -11>; .bytes.runeBytes <type 21 [4 ] <type -20>>; .bytes.bootstrap <type 22 [64 ] <type -20>>; .bytes.lastRead <type 23 ".bytes.readOp" <type -11>>; }>
 func (b <type 24 *<type 18>>) UnreadByte () <type -19>;
 func (b <type 24>) Truncate (n <type -11>);
 func (b <type 24>) WriteString (s <type -16>) (n <type -11>, err <type -19>);
 func (b <type 24>) ReadString (delim <type -20>) (line <type -16>, err <type -19>);
 func (b <type 24>) ReadByte () (c <type -20>, err <type -19>);
 func (b <type 24>) Next (n <type -11>) <type 25 [] <type -20>>;
 func (b <type 24>) WriteRune (r <type -21>) (n <type -11>, err <type -19>);
 func (b <type 24>) String () <type -16>;
 func (b <type 24>) WriteTo (w <type 26 "io.Writer" <type 27 interface { Write (p <type 28 [] <type -20>>) (n <type -11>, err <type -19>); }>>) (n <type -4>, err <type -19>);
 func (b <type 24>) ReadBytes (delim <type -20>) (line <type 29 [] <type -20>>, err <type -19>);
 func (b <type 24>) .bytes.grow (n <type -11>) <type -11>;
 func (b <type 24>) ReadRune () (r <type -21>, size <type -11>, err <type -19>);
 func (b <type 24>) UnreadRune () <type -19>;
 func (b <type 24>) Read (p <type 30 [] <type -20>>) (n <type -11>, err <type -19>);
 func (b <type 24>) Reset ();
 func (b <type 24>) Write (p <type 31 [] <type -20>>) (n <type -11>, err <type -19>);
 func (b <type 24>) WriteByte (c <type -20>) <type -19>;
 func (b <type 24>) ReadFrom (r <type 15>) (n <type -4>, err <type -19>);
 func (b <type 24>) Len () <type -11>;
 func (b <type 24>) Bytes () <type 32 [] <type -20>>;
>; .encoding/gob.wireType <type 33 map [<type 3>] <type 34 *<type 35 ".encoding/gob.wireType" <type 36 struct { ArrayT <type 37 *<type 38 ".encoding/gob.arrayType" <type 39 struct { ? <type 1>; Elem <type 3>; Len <type -11>; }>
 func (a <type 40 *<type 38>>) .encoding/gob.init (elem <type 4>, len <type -11>);
 func (a <type 40>) .encoding/gob.safeString (seen <type 41 map [<type 3>] <type -15>>) <type -16>;
 func (a <type 40>) .encoding/gob.string () <type -16>;
>>; SliceT <type 42 *<type 43 ".encoding/gob.sliceType" <type 44 struct { ? <type 1>; Elem <type 3>; }>
 func (s <type 45 *<type 43>>) .encoding/gob.init (elem <type 4>);
 func (s <type 45>) .encoding/gob.safeString (seen <type 46 map [<type 3>] <type -15>>) <type -16>;
 func (s <type 45>) .encoding/gob.string () <type -16>;
>>; StructT <type 47 *<type 48 ".encoding/gob.structType" <type 49 struct { ? <type 1>; Field <type 50 [] <type 51 *<type 52 ".encoding/gob.fieldType" <type 53 struct { Name <type -16>; Id <type 3>; }>>>>; }>
 func (s <type 54 *<type 48>>) .encoding/gob.safeString (seen <type 55 map [<type 3>] <type -15>>) <type -16>;
 func (s <type 54>) .encoding/gob.string () <type -16>;
>>; MapT <type 56 *<type 57 ".encoding/gob.mapType" <type 58 struct { ? <type 1>; Key <type 3>; Elem <type 3>; }>
 func (m <type 59 *<type 57>>) .encoding/gob.init (key <type 4>, elem <type 4>);
 func (m <type 59>) .encoding/gob.safeString (seen <type 60 map [<type 3>] <type -15>>) <type -16>;
 func (m <type 59>) .encoding/gob.string () <type -16>;
>>; GobEncoderT <type 61 *<type 62 ".encoding/gob.gobEncoderType" <type 63 struct { ? <type 1>; }>
 func (g <type 64 *<type 62>>) .encoding/gob.safeString (seen <type 65 map [<type 3>] <type -15>>) <type -16>;
 func (g <type 64>) .encoding/gob.string () <type -16>;
>>; }>
 func (w <type 66 *<type 35>>) .encoding/gob.string () <type -16>;
>>>; .encoding/gob.decoderCache <type 67 map [<type 68 "reflect.Type" <type 69 interface { Align () <type -11>; FieldAlign () <type -11>; Method (? <type -11>) <type 70 "reflect.Method" <type 71 struct { Name <type -16>; PkgPath <type -16>; Type <type 68>; Func <type 72 "reflect.Value" <type 73 struct { .reflect.typ <type 74 *<type 75 ".reflect.commonType" <type 76 struct { .reflect.kind <type -5>; .reflect.align <type -1>; .reflect.fieldAlign <type -5>; .reflect._ <type -5>; .reflect.size <type -13>; .reflect.hash <type -7>; .reflect.hashfn <type 77 (? <type 78 "unsafe.Pointer" <type 9>>, ? <type -13>)>; .reflect.equalfn <type 79 (? <type 78>, ? <type 78>, ? <type -13>)>; .reflect.string <type 80 *<type -16>>; ? <type 81 *<type 82 ".reflect.uncommonType" <type 83 struct { .reflect.name <type 80>; .reflect.pkgPath <type 80>; .reflect.methods <type 84 [] <type 85 ".reflect.method" <type 86 struct { .reflect.name <type 80>; .reflect.pkgPath <type 80>; .reflect.mtyp <type 87 *<type 88 ".reflect.runtimeType" <type 75>>>; .reflect.typ <type 87>; .reflect.tfn <type 78>; }>>>; }>
 func (t <type 89 *<type 82>>) PkgPath () <type -16>;
 func (t <type 89>) MethodByName (name <type -16>) (m <type 70>, ok <type -15>);
 func (t <type 89>) NumMethod () <type -11>;
 func (t <type 89>) Name () <type -16>;
 func (t <type 89>) Method (i <type -11>) (m <type 70>);
 func (t <type 89>) .reflect.uncommon () <type 89>;
>>; .reflect.ptrToThis <type 87>; }>
 func (t <type 90 *<type 75>>) FieldAlign () <type -11>;
 func (t <type 90>) .reflect.common () <type 90>;
 func (t <type 90>) Method (i <type -11>) (m <type 70>);
 func (ct <type 90>) .reflect.ptrTo () <type 90>;
 func (t <type 90>) MethodByName (name <type -16>) (m <type 70>, ok <type -15>);
 func (t <type 90>) .reflect.rawString () <type -16>;
 func (t <type 90>) .reflect.runtimeType () <type 87>;
 func (t <type 90>) Key () <type 68>;
 func (t <type 90>) In (i <type -11>) <type 68>;
 func (t <type 90>) IsVariadic () <type -15>;
 func (t <type 90>) Name () <type -16>;
 func (t <type 90>) ChanDir () <type 91 "reflect.ChanDir" <type -11>
 func (d <type 91>) String () <type -16>;
>;
 func (t <type 90>) FieldByIndex (index <type 92 [] <type -11>>) <type 93 "reflect.StructField" <type 94 struct { Name <type -16>; PkgPath <type -16>; Type <type 68>; Tag <type 95 "reflect.StructTag" <type -16>
 func (tag <type 95>) Get (key <type -16>) <type -16>;
>; Offset <type -13>; Index <type 96 [] <type -11>>; Anonymous <type -15>; }>>;
 func (t <type 90>) Kind () <type 97 "reflect.Kind" <type -12>
 func (k <type 97>) String () <type -16>;
>;
 func (t <type 90>) NumMethod () <type -11>;
 func (t <type 90>) .reflect.toType () <type 68>;
 func (t <type 90>) Out (i <type -11>) <type 68>;
 func (t <type 90>) Implements (u <type 68>) <type -15>;
 func (t <type 90>) PkgPath () <type -16>;
 func (t <type 90>) Field (i <type -11>) <type 93>;
 func (t <type 90>) Align () <type -11>;
 func (t <type 90>) Elem () <type 68>;
 func (t <type 90>) FieldByName (name <type -16>) (? <type 93>, ? <type -15>);
 func (t <type 90>) FieldByNameFunc (match <type 98 (? <type -16>) <type -15>>) (? <type 93>, ? <type -15>);
 func (t <type 90>) Bits () <type -11>;
 func (t <type 90>) NumIn () <type -11>;
 func (t <type 90>) NumOut () <type -11>;
 func (t <type 90>) Size () <type -13>;
 func (t <type 90>) String () <type -16>;
 func (t <type 90>) NumField () <type -11>;
 func (t <type 90>) AssignableTo (u <type 68>) <type -15>;
 func (t <type 90>) Len () <type -11>;
>>; .reflect.val <type 78>; ? <type 99 ".reflect.flag" <type -13>
 func (f <type 99>) .reflect.mustBe (expected <type 97>);
 func (f <type 99>) .reflect.mustBeExported ();
 func (f <type 99>) .reflect.mustBeAssignable ();
 func (f <type 99>) .reflect.kind () <type 97>;
>; }>
 func (v <type 72>) Type () <type 68>;
 func (v <type 72>) OverflowComplex (x <type -18>) <type -15>;
 func (v <type 72>) MethodByName (name <type -16>) <type 72>;
 func (v <type 72>) Bytes () <type 100 [] <type -20>>;
 func (v <type 72>) Interface () (i <type 101 interface { }>);
 func (v <type 72>) FieldByName (name <type -16>) <type 72>;
 func (v <type 72>) Send (x <type 72>);
 func (v <type 72>) .reflect.recv (nb <type -15>) (val <type 72>, ok <type -15>);
 func (v <type 72>) Uint () <type -8>;
 func (v <type 72>) IsValid () <type -15>;
 func (v <type 72>) NumMethod () <type -11>;
 func (v <type 72>) OverflowFloat (x <type -10>) <type -15>;
 func (v <type 72>) MapKeys () <type 102 [] <type 72>>;
 func (v <type 72>) Method (i <type -11>) <type 72>;
 func (v <type 72>) SetInt (x <type -4>);
 func (v <type 72>) Field (i <type -11>) <type 72>;
 func (v <type 72>) SetLen (n <type -11>);
 func (v <type 72>) UnsafeAddr () <type -13>;
 func (v <type 72>) Complex () <type -18>;
 func (v <type 72>) CallSlice (in <type 103 [] <type 72>>) <type 104 [] <type 72>>;
 func (v <type 72>) Float () <type -10>;
 func (v <type 72>) .reflect.assignTo (context <type -16>, dst <type 74>, target <type 105 *<type 106 interface { }>>) <type 72>;
 func (v <type 72>) Elem () <type 72>;
 func (v <type 72>) Index (i <type -11>) <type 72>;
 func (v <type 72>) TrySend (x <type 72>) <type -15>;
 func (v <type 72>) SetBool (x <type -15>);
 func (v <type 72>) SetBytes (x <type 107 [] <type -20>>);
 func (v <type 72>) FieldByNameFunc (match <type 108 (? <type -16>) <type -15>>) <type 72>;
 func (v <type 72>) OverflowUint (x <type -8>) <type -15>;
 func (v <type 72>) MapIndex (key <type 72>) <type 72>;
 func (v <type 72>) IsNil () <type -15>;
 func (v <type 72>) SetPointer (x <type 78>);
 func (v <type 72>) String () <type -16>;
 func (v <type 72>) .reflect.call (method <type -16>, in <type 109 [] <type 72>>) <type 110 [] <type 72>>;
 func (v <type 72>) Int () <type -4>;
 func (v <type 72>) Recv () (x <type 72>, ok <type -15>);
 func (v <type 72>) .reflect.iword () <type 111 ".reflect.iword" <type 78>>;
 func (v <type 72>) Kind () <type 97>;
 func (v <type 72>) InterfaceData () <type 112 [2 ] <type -13>>;
 func (v <type 72>) SetMapIndex (key <type 72>, val <type 72>);
 func (v <type 72>) Call (in <type 113 [] <type 72>>) <type 114 [] <type 72>>;
 func (v <type 72>) Set (x <type 72>);
 func (v <type 72>) SetUint (x <type -8>);
 func (v <type 72>) Bool () <type -15>;
 func (v <type 72>) Slice (beg <type -11>, end <type -11>) <type 72>;
 func (v <type 72>) Pointer () <type -13>;
 func (v <type 72>) Cap () <type -11>;
 func (v <type 72>) SetString (x <type -16>);
 func (v <type 72>) Len () <type -11>;
 func (v <type 72>) TryRecv () (x <type 72>, ok <type -15>);
 func (v <type 72>) Close ();
 func (v <type 72>) CanAddr () <type -15>;
 func (v <type 72>) CanSet () <type -15>;
 func (v <type 72>) .reflect.send (x <type 72>, nb <type -15>) (selected <type -15>);
 func (v <type 72>) FieldByIndex (index <type 115 [] <type -11>>) <type 72>;
 func (v <type 72>) OverflowInt (x <type -4>) <type -15>;
 func (v <type 72>) NumField () <type -11>;
 func (v <type 72>) SetFloat (x <type -10>);
 func (v <type 72>) CanInterface () <type -15>;
 func (v <type 72>) SetComplex (x <type -18>);
 func (v <type 72>) Addr () <type 72>;
>; Index <type -11>; }>>; MethodByName (? <type -16>) (? <type 70>, ? <type -15>); NumMethod () <type -11>; Name () <type -16>; PkgPath () <type -16>; Size () <type -13>; String () <type -16>; .reflect.rawString () <type -16>; Kind () <type 97>; Implements (u <type 68>) <type -15>; AssignableTo (u <type 68>) <type -15>; Bits () <type -11>; ChanDir () <type 91>; IsVariadic () <type -15>; Elem () <type 68>; Field (i <type -11>) <type 93>; FieldByIndex (index <type 116 [] <type -11>>) <type 93>; FieldByName (name <type -16>) (? <type 93>, ? <type -15>); FieldByNameFunc (match <type 117 (? <type -16>) <type -15>>) (? <type 93>, ? <type -15>); In (i <type -11>) <type 68>; Key () <type 68>; Len () <type -11>; NumField () <type -11>; NumIn () <type -11>; NumOut () <type -11>; Out (i <type -11>) <type 68>; .reflect.runtimeType () <type 87>; .reflect.common () <type 118 *<type 75>>; .reflect.uncommon () <type 81>; }>>] <type 119 map [<type 3>] <type 120 *<type 121 *<type 122 ".encoding/gob.decEngine" <type 123 struct { .encoding/gob.instr <type 124 [] <type 125 ".encoding/gob.decInstr" <type 126 struct { .encoding/gob.op <type 127 ".encoding/gob.decOp" <type 128 (i <type 129 *<type 125>>, state <type 130 *<type 131 ".encoding/gob.decoderState" <type 132 struct { .encoding/gob.dec <type 133 *<type 10>>; .encoding/gob.b <type 24>; .encoding/gob.fieldnum <type -11>; .encoding/gob.buf <type 134 [] <type -20>>; .encoding/gob.next <type 135 *<type 131>>; }>
 func (state <type 136 *<type 131>>) .encoding/gob.decodeUint () (x <type -8>);
 func (state <type 136>) .encoding/gob.decodeInt () <type -4>;
>>, p <type 78>)>>; .encoding/gob.field <type -11>; .encoding/gob.indir <type -11>; .encoding/gob.offset <type -13>; .encoding/gob.ovfl <type -19>; }>>>; .encoding/gob.numInstr <type -11>; }>>>>>>; .encoding/gob.ignorerCache <type 137 map [<type 3>] <type 120>>; .encoding/gob.freeList <type 130>; .encoding/gob.countBuf <type 138 [] <type -20>>; .encoding/gob.tmp <type 139 [] <type -20>>; .encoding/gob.err <type -19>; }>
 func (dec <type 140 *<type 10>>) .encoding/gob.newDecoderState (buf <type 24>) <type 130>;
 func (dec <type 141 *<type 10>>) .encoding/gob.freeDecoderState (d <type 130>);
 func (dec <type 142 *<type 10>>) .encoding/gob.decodeSingle (engine <type 121>, ut <type 143 *<type 144 ".encoding/gob.userTypeInfo" <type 145 struct { .encoding/gob.user <type 68>; .encoding/gob.base <type 68>; .encoding/gob.indir <type -11>; .encoding/gob.isGobEncoder <type -15>; .encoding/gob.isGobDecoder <type -15>; .encoding/gob.encIndir <type -1>; .encoding/gob.decIndir <type -1>; }>>>, basep <type -13>);
 func (dec <type 146 *<type 10>>) .encoding/gob.decodeStruct (engine <type 121>, ut <type 147 *<type 144>>, p <type -13>, indir <type -11>);
 func (dec <type 148 *<type 10>>) .encoding/gob.ignoreStruct (engine <type 121>);
 func (dec <type 149 *<type 10>>) .encoding/gob.ignoreSingle (engine <type 121>);
 func (dec <type 150 *<type 10>>) .encoding/gob.decodeArrayHelper (state <type 130>, p <type -13>, elemOp <type 127>, elemWid <type -13>, length <type -11>, elemIndir <type -11>, ovfl <type -19>);
 func (dec <type 151 *<type 10>>) .encoding/gob.decodeArray (atyp <type 68>, state <type 130>, p <type -13>, elemOp <type 127>, elemWid <type -13>, length <type -11>, indir <type -11>, elemIndir <type -11>, ovfl <type -19>);
 func (dec <type 152 *<type 10>>) .encoding/gob.decodeMap (mtyp <type 68>, state <type 130>, p <type -13>, keyOp <type 127>, elemOp <type 127>, indir <type -11>, keyIndir <type -11>, elemIndir <type -11>, ovfl <type -19>);
 func (dec <type 153 *<type 10>>) .encoding/gob.ignoreArrayHelper (state <type 130>, elemOp <type 127>, length <type -11>);
 func (dec <type 154 *<type 10>>) .encoding/gob.ignoreArray (state <type 130>, elemOp <type 127>, length <type -11>);
 func (dec <type 155 *<type 10>>) .encoding/gob.ignoreMap (state <type 130>, keyOp <type 127>, elemOp <type 127>);
 func (dec <type 156 *<type 10>>) .encoding/gob.decodeSlice (atyp <type 68>, state <type 130>, p <type -13>, elemOp <type 127>, elemWid <type -13>, indir <type -11>, elemIndir <type -11>, ovfl <type -19>);
 func (dec <type 157 *<type 10>>) .encoding/gob.ignoreSlice (state <type 130>, elemOp <type 127>);
 func (dec <type 158 *<type 10>>) .encoding/gob.decodeInterface (ityp <type 68>, state <type 130>, p <type -13>, indir <type -11>);
 func (dec <type 159 *<type 10>>) .encoding/gob.ignoreInterface (state <type 130>);
 func (dec <type 160 *<type 10>>) .encoding/gob.decodeGobDecoder (state <type 130>, v <type 72>);
 func (dec <type 161 *<type 10>>) .encoding/gob.ignoreGobDecoder (state <type 130>);
 func (dec <type 162 *<type 10>>) .encoding/gob.decOpFor (wireId <type 3>, rt <type 68>, name <type -16>, inProgress <type 163 map [<type 68>] <type 164 *<type 127>>>) (? <type 164>, ? <type -11>);
 func (dec <type 165 *<type 10>>) .encoding/gob.decIgnoreOpFor (wireId <type 3>) <type 127>;
 func (dec <type 166 *<type 10>>) .encoding/gob.gobDecodeOpFor (ut <type 167 *<type 144>>) (? <type 164>, ? <type -11>);
 func (dec <type 168 *<type 10>>) .encoding/gob.compatibleType (fr <type 68>, fw <type 3>, inProgress <type 169 map [<type 68>] <type 3>>) <type -15>;
 func (dec <type 170 *<type 10>>) .encoding/gob.typeString (remoteId <type 3>) <type -16>;
 func (dec <type 171 *<type 10>>) .encoding/gob.compileSingle (remoteId <type 3>, ut <type 172 *<type 144>>) (engine <type 121>, err <type -19>);
 func (dec <type 173 *<type 10>>) .encoding/gob.compileIgnoreSingle (remoteId <type 3>) (engine <type 121>, err <type -19>);
 func (dec <type 174 *<type 10>>) .encoding/gob.compileDec (remoteId <type 3>, ut <type 175 *<type 144>>) (engine <type 121>, err <type -19>);
 func (dec <type 176 *<type 10>>) .encoding/gob.getDecEnginePtr (remoteId <type 3>, ut <type 177 *<type 144>>) (enginePtr <type 120>, err <type -19>);
 func (dec <type 178 *<type 10>>) .encoding/gob.getIgnoreEnginePtr (wireId <type 3>) (enginePtr <type 120>, err <type -19>);
 func (dec <type 179 *<type 10>>) .encoding/gob.decodeValue (wireId <type 3>, val <type 72>);
 func (dec <type 180 *<type 10>>) .encoding/gob.decodeIgnoredValue (wireId <type 3>);
 func (dec <type 181 *<type 10>>) .encoding/gob.recvType (id <type 3>);
 func (dec <type 181>) .encoding/gob.recvMessage () <type -15>;
 func (dec <type 181>) .encoding/gob.readMessage (nbytes <type -11>);
 func (dec <type 181>) .encoding/gob.nextInt () <type -4>;
 func (dec <type 181>) .encoding/gob.nextUint () <type -8>;
 func (dec <type 181>) .encoding/gob.decodeTypeSequence (isInterface <type -15>) <type 3>;
 func (dec <type 181>) Decode (e <type 182 interface { }>) <type -19>;
 func (dec <type 181>) DecodeValue (v <type 72>) <type -19>;
>;
type <type 183 "Encoder" <type 184 struct { .encoding/gob.mutex <type 12>; .encoding/gob.w <type 185 [] <type 26>>; .encoding/gob.sent <type 186 map [<type 68>] <type 3>>; .encoding/gob.countState <type 187 *<type 188 ".encoding/gob.encoderState" <type 189 struct { .encoding/gob.enc <type 190 *<type 183>>; .encoding/gob.b <type 24>; .encoding/gob.sendZero <type -15>; .encoding/gob.fieldnum <type -11>; .encoding/gob.buf <type 191 [9 ] <type -20>>; .encoding/gob.next <type 192 *<type 188>>; }>
 func (state <type 193 *<type 188>>) .encoding/gob.encodeUint (x <type -8>);
 func (state <type 193>) .encoding/gob.encodeInt (i <type -4>);
 func (state <type 193>) .encoding/gob.update (instr <type 194 *<type 195 ".encoding/gob.encInstr" <type 196 struct { .encoding/gob.op <type 197 ".encoding/gob.encOp" <type 198 (i <type 199 *<type 195>>, state <type 193>, p <type 78>)>>; .encoding/gob.field <type -11>; .encoding/gob.indir <type -11>; .encoding/gob.offset <type -13>; }>>>);
>>; .encoding/gob.freeList <type 187>; .encoding/gob.byteBuf <type 18>; .encoding/gob.err <type -19>; }>
 func (enc <type 200 *<type 183>>) .encoding/gob.newEncoderState (b <type 24>) <type 187>;
 func (enc <type 201 *<type 183>>) .encoding/gob.freeEncoderState (e <type 187>);
 func (enc <type 202 *<type 183>>) .encoding/gob.encodeSingle (b <type 24>, engine <type 203 *<type 204 ".encoding/gob.encEngine" <type 205 struct { .encoding/gob.instr <type 206 [] <type 195>>; }>>>, basep <type -13>);
 func (enc <type 207 *<type 183>>) .encoding/gob.encodeStruct (b <type 24>, engine <type 203>, basep <type -13>);
 func (enc <type 208 *<type 183>>) .encoding/gob.encodeArray (b <type 24>, p <type -13>, op <type 197>, elemWid <type -13>, elemIndir <type -11>, length <type -11>);
 func (enc <type 209 *<type 183>>) .encoding/gob.encodeMap (b <type 24>, mv <type 72>, keyOp <type 197>, elemOp <type 197>, keyIndir <type -11>, elemIndir <type -11>);
 func (enc <type 210 *<type 183>>) .encoding/gob.encodeInterface (b <type 24>, iv <type 72>);
 func (enc <type 211 *<type 183>>) .encoding/gob.encodeGobEncoder (b <type 24>, v <type 72>);
 func (enc <type 212 *<type 183>>) .encoding/gob.encOpFor (rt <type 68>, inProgress <type 213 map [<type 68>] <type 214 *<type 197>>>) (? <type 214>, ? <type -11>);
 func (enc <type 215 *<type 183>>) .encoding/gob.gobEncodeOpFor (ut <type 216 *<type 144>>) (? <type 214>, ? <type -11>);
 func (enc <type 217 *<type 183>>) .encoding/gob.compileEnc (ut <type 218 *<type 144>>) <type 203>;
 func (enc <type 219 *<type 183>>) .encoding/gob.getEncEngine (ut <type 220 *<type 144>>) <type 203>;
 func (enc <type 221 *<type 183>>) .encoding/gob.lockAndGetEncEngine (ut <type 222 *<type 144>>) <type 203>;
 func (enc <type 223 *<type 183>>) .encoding/gob.encode (b <type 24>, value <type 72>, ut <type 224 *<type 144>>);
 func (enc <type 225 *<type 183>>) .encoding/gob.writer () <type 26>;
 func (enc <type 225>) .encoding/gob.pushWriter (w <type 26>);
 func (enc <type 225>) .encoding/gob.popWriter ();
 func (enc <type 225>) .encoding/gob.badType (rt <type 68>);
 func (enc <type 225>) .encoding/gob.setError (err <type -19>);
 func (enc <type 225>) .encoding/gob.writeMessage (w <type 26>, b <type 24>);
 func (enc <type 225>) .encoding/gob.sendActualType (w <type 26>, state <type 187>, ut <type 226 *<type 144>>, actual <type 68>) (sent <type -15>);
 func (enc <type 225>) .encoding/gob.sendType (w <type 26>, state <type 187>, origt <type 68>) (sent <type -15>);
 func (enc <type 225>) Encode (e <type 227 interface { }>) <type -19>;
 func (enc <type 225>) .encoding/gob.sendTypeDescriptor (w <type 26>, state <type 187>, ut <type 228 *<type 144>>);
 func (enc <type 225>) .encoding/gob.sendTypeId (state <type 187>, ut <type 229 *<type 144>>);
 func (enc <type 225>) EncodeValue (value <type 72>) <type -19>;
>;
type <type 230 "GobDecoder" <type 231 interface { GobDecode (? <type 232 [] <type -20>>) <type -19>; }>>;
type <type 233 "GobEncoder" <type 234 interface { GobEncode () (? <type 235 [] <type -20>>, ? <type -19>); }>>;
func NewDecoder (r <type 15>) <type 181>;
func NewEncoder (w <type 26>) <type 225>;
func Register (value <type 236 interface { }>);
func RegisterName (name <type -16>, value <type 237 interface { }>);
checksum 3AC0678B705EE98F460B39850EF1F2D093037904;

@ianlancetaylor
Copy link
Contributor

Looks like it started failing when Than fixed the test to actually run gccgo, so this may have been failing for a long time.

@thanm
Copy link
Contributor

thanm commented Nov 29, 2018

Thanks. I'll pick at it to see if I can determine what's going on -- I should be able to just incorporate the blob you uploaded into a test.

@thanm
Copy link
Contributor

thanm commented Nov 29, 2018

It looks like the offending blob is

>>>; .encoding/gob.decoderCache <type 67 map [<type 68 "reflect.Type" <type 69 interface { Align () <type -11>; FieldAlign () <type -11>; Method (? <type -11>) <type 70 "reflect.Method" <type 71 struct { Name <type -16>; PkgPath <type -16>; Type <type 68>; Func <type 72 "reflect.Value" <type 73 struct { .reflect.typ <type 74 *<type 75 ".reflect.commonType" <type 76 struct { .reflect.kind <type -5>; .reflect.align <type -1>; .reflect.fieldAlign <type -5>; .reflect._ <type -5>; .reflect.size <type -13>; .reflect.hash <type -7>; .reflect.hashfn <type 77 (? <type 78 "unsafe.Pointer" <type 9>>, ? <type -13>)>; .reflect.equalfn <type 79 (? <type 78>, ? <type 78>, ? <type -13>)>; .reflect.string <type 80 *<type -16>>; ? <type 81 *<type 82 ".reflect.uncommonType" <type 83 struct { .reflect.name <type 80>; .reflect.pkgPath <type 80>; .reflect.methods <type 84 [] <type 85 ".reflect.method" <type 86 struct { .reflect.name <type 80>; .reflect.pkgPath <type 80>; .reflect.mtyp <type 87 *<type 88 ".reflect.runtimeType" <type 75>>>; .reflect.typ <type 87>; .reflect.tfn <type 78>; }>>>; }>

What's happening is that we start named type 75, whose underlying type is 76 (a struct), however before 76 has been completed, there is a reference back to 75:

type 88 ".reflect.runtimeType" <type 75>>>;
The way the importer works right now, at the point where this reference to 75 is made, it has an entry in the type map, but its underlying type is not set.

@thanm thanm self-assigned this Nov 30, 2018
@gopherbot
Copy link

Change https://golang.org/cl/151997 mentions this issue: go/internal/gccgoimporter: fix bug reading V1 export data

@ianlancetaylor
Copy link
Contributor

That specific problem is fixed but the general problem is not fixed.

https://build.golang.org/log/bd6c332435b220601a329d5d7566fada4ee29ac5

@thanm
Copy link
Contributor

thanm commented Nov 30, 2018

Rats. Thanks for picking up on that; I will investigate.

@ianlancetaylor
Copy link
Contributor

I'm about to send a CL for the bad packages.

@gopherbot
Copy link

Change https://golang.org/cl/152077 mentions this issue: go/internal/gccgoimporter: fix test when using gccgo 4.7

@ianlancetaylor
Copy link
Contributor

Oh, these failures are uninteresting. The other failure is that the old gccgo can't read type alias information, which is unsurprising.

@ianlancetaylor
Copy link
Contributor

I'll send a fix.

@gopherbot
Copy link

Change https://golang.org/cl/152078 mentions this issue: go/internal/gccgoimporter: fix test when using gccgo before GCC 7

gopherbot pushed a commit that referenced this issue Nov 30, 2018
TestInstallationImporter checks that it can read the export data for a
list of known standard library packages. It was failing on the SmartOS
builder which has GCC 4.7 installed. Skip packages that did not exist
in GCC 4.7. Most packages are still there and the missing packages are
fairly simple, so this doesn't really affect test quality.

Updates #29006

Change-Id: If7ae6f83d51d40168a9692acb0b99c9bf21f2a4d
Reviewed-on: https://go-review.googlesource.com/c/152077
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
@golang golang locked and limited conversation to collaborators Nov 30, 2019
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 Testing An issue that has been verified to require only test changes, not just a test failure.
Projects
None yet
Development

No branches or pull requests

5 participants