Skip to content

net: unexpected nils from (*UnixConn).LocalAddr on solaris-amd64-oraclerel builder #34611

@bcmills

Description

@bcmills

https://build.golang.org/log/d9ed52fecef0637337eaaef8194b90b06ba098aa contains a curious puzzle:

solaris-amd64-oraclerel at 739bf6b929b66ac1715268e269da01c8199f034b
[…]
--- FAIL: TestUnixAndUnixpacketServer (10.01s)
    server_test.go:144: skipping unix @nettest/go/unix test
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x5bf460]

goroutine 3285 [running]:
testing.tRunner.func1(0xc00012ae00)
	/tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/testing/testing.go:874 +0x3a3
panic(0x647400, 0x849ee0)
	/tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/panic.go:679 +0x1b2
net.TestUnixAndUnixpacketServer(0xc00012ae00)
	/tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/net/server_test.go:189 +0x670
testing.tRunner(0xc00012ae00, 0x696098)
	/tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/testing/testing.go:909 +0xc9
created by testing.(*T).Run
	/tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/testing/testing.go:960 +0x351
FAIL	net	17.374s

The skipping message suggests that the panic occurred on the test after @nettest/go/unix. The test after is {"unixpacket", testUnixAddr()}.

It's hard to tell from the backtrace, but this seems to suggest that either net.Dial returned a nil pointer (of a concrete connection type), or returned a non-nil pointer whose LocalAddr method returned a nil pointer (of a concrete Addr implementation type).

CC @mikioh @bradfitz @ianlancetaylor

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.OS-SolarisTestingAn issue that has been verified to require only test changes, not just a test failure.okay-after-beta1Used by release team to mark a release-blocker issue as okay to resolve either before or after beta1release-blocker

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions