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

runtime: interface is nil, not *testing.T #13169

Closed
aclements opened this issue Nov 5, 2015 · 3 comments
Closed

runtime: interface is nil, not *testing.T #13169

aclements opened this issue Nov 5, 2015 · 3 comments
Milestone

Comments

@aclements
Copy link
Member

Random tests have started failing with "interface conversion: interface {} is nil, not *testing.T" or "interface conversion: interface is nil, not *testing.T". The first was http://build.golang.org/log/d1c8715084bdae5d80214470404aa422ac875dd4.

This flake happens enough that it's quite likely it happened within a few commits of the first occurrence and the commit where it first happened seems like a likely suspect: 8e496f1 runtime: simplify buffered channels (@randall77).

First observed: 2015-11-05T15:41:05 8e496f1
Last observed: 2015-11-05T21:29:17 b4447a1
Failure probability: 44% (8 of 17 commits)
Chance failure is still happening: 1 in 6
50% chance failure started within 1 commit of first failure:
8e496f1 runtime: simplify buffered channels.
7bb2a7d cmd/dist: remove vestigial -s flag
95% chance failure started within 5 commits of first failure:
61ca7e5 crypto/x509: add /etc/ssl/certs to certificate directories
9496815 cmd/go: put all generate variables in the environment
b16c699 internal/syscall/unix: eliminate non-trivial randomTrap initializer
dcd9e5b runtime: make putfull start mark workers

No past failures

@aclements aclements added this to the Go1.6 milestone Nov 5, 2015
@aclements
Copy link
Member Author

I should add that the line that fails is out := (<-t.signal).(*T).

gopherbot pushed a commit that referenced this issue Nov 6, 2015
Revert for now until #13169 is understood.

This reverts commit 8e496f1.

Change-Id: Ib3eb2588824ef47a2b6eb9e377a24e5c817fcc81
Reviewed-on: https://go-review.googlesource.com/16716
Reviewed-by: Keith Randall <[email protected]>
@randall77
Copy link
Contributor

Finally got a decent repro case for this. Looks like a bad combination of channel ops and stack copy (shrink) of the receiver. Somehow the receiver stack gets copied away just as the sender is trying to send to it.

@gopherbot
Copy link
Contributor

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

@golang golang locked and limited conversation to collaborators Nov 10, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants