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

crypto/tls: Dial returns io.EOF #19874

joneskoo opened this issue Apr 7, 2017 · 4 comments


Copy link

@joneskoo joneskoo commented Apr 7, 2017

If the server closes the connection before handshake completes, net/tls returns a non-descriptive error "EOF".

Also locally go version go1.8 darwin/amd64

This may be same as #13523 (comment) @rsc @bradfitz .

What did you expect to see?

A more descriptive error similar to other errors from net/tls.

  • dial tcp getsockopt: connection refused
  • x509: cannot validate certificate for because it doesn't contain any IP SANs

What did you see instead?

_, err := tls.Dial("tcp", "", nil)
if err != nil {
	fmt.Printf("%#v == io.EOF: %v", err, err == io.EOF)


&errors.errorString{s:"EOF"} == io.EOF: true

Of course there is nothing that can be done, the closing of underlying connection is fatal, but is it possible to improve the error?

@bradfitz bradfitz changed the title net/tls: Error "EOF" from tls.Dial crypto/tls: Dial returns io.EOF Apr 7, 2017
@bradfitz bradfitz added this to the Go1.9Maybe milestone Apr 7, 2017
@bradfitz bradfitz added the NeedsFix label Apr 7, 2017

This comment has been minimized.

Copy link

@bradfitz bradfitz commented Apr 7, 2017

Yes,Dial could probably return map io.EOF to something else if Handshake returns io.EOF. I wouldn't change Handshake's behavior, though.


This comment has been minimized.

Copy link

@gopherbot gopherbot commented Apr 10, 2017

CL mentions this issue.


This comment has been minimized.

Copy link

@gopherbot gopherbot commented Jan 8, 2018

Change mentions this issue: crypto/tls: make DialWithDialer return more descriptive error


This comment has been minimized.

Copy link

@namusyaka namusyaka commented Feb 24, 2018

I'd like to hear @mikioh's opinion, so I've just this issue marked NeedDecision.
/cc @bradfitz

@gopherbot gopherbot modified the milestones: Go1.11, Unplanned May 23, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
5 participants
You can’t perform that action at this time.