golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
123.97k stars 17.67k forks source link

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

Closed bcmills closed 5 years ago

bcmills commented 5 years ago

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

ianlancetaylor commented 5 years ago

CC @thanm

ianlancetaylor commented 5 years ago

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

ianlancetaylor commented 5 years ago

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

thanm commented 5 years ago

Thanks Ian.

ianlancetaylor commented 5 years ago

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

thanm commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

I have the failing .gox file now.

ianlancetaylor commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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.

gopherbot commented 5 years ago

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

ianlancetaylor commented 5 years ago

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

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

thanm commented 5 years ago

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

ianlancetaylor commented 5 years ago

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

gopherbot commented 5 years ago

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

ianlancetaylor commented 5 years ago

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

ianlancetaylor commented 5 years ago

I'll send a fix.

gopherbot commented 5 years ago

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