Skip to content

net/http: infinite hang on dial #16060

Closed
Closed
@stevenh

Description

@stevenh

Please answer these questions before submitting your issue. Thanks!

  1. What version of Go are you using (go version)?
    1.6.2
  2. What operating system and processor architecture are you using (go env)?
    GOARCH="amd64"
    GOBIN="/data/go/bin"
    GOEXE=".exe"
    GOHOSTARCH="amd64"
    GOHOSTOS="freebsd"
    GOOS="freebsd"
    GOPATH="/data/go"
    GORACE=""
    GOROOT="/usr/local/go"
    GOTOOLDIR="/usr/local/go/pkg/tool/freebsd_amd64"
    GO15VENDOREXPERIMENT="1"
    CC="clang"
    GOGCCFLAGS="-m64 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0"
    CXX="clang++"
    CGO_ENABLED="0"
  3. What did you do?
    Attempt an http request using http.Client
  4. What did you expect to see?
    Success or failure of the request
  5. What did you see instead?
    Request hung indefinitely still attempting to "dial" but no active OS socket.

Here are traces from relevant goroutines:

goroutine 8 [select, 31 minutes]:
net/http.(*persistConn).roundTrip(0xc8202f0410, 0xc82055ad30, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/http/transport.go:1473 +0xf1f
net/http.(*Transport).RoundTrip(0xc8200dc000, 0xc8203f9c00, 0xc8200dc000, 0x0, 0x0)
    /usr/local/go/src/net/http/transport.go:324 +0x9bb
net/http.send(0xc8203f9c00, 0x800c48528, 0xc8200dc000, 0x0, 0x0, 0x0, 0xc8204e4480, 0x0, 0x0)
    /usr/local/go/src/net/http/client.go:260 +0x6b7
net/http.(*Client).send(0xbd3380, 0xc8203f9c00, 0x0, 0x0, 0x0, 0xd8, 0x0, 0x0)
    /usr/local/go/src/net/http/client.go:155 +0x185
net/http.(*Client).doFollowingRedirects(0xbd3380, 0xc8203f9c00, 0xa25ee0, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/http/client.go:475 +0x8a4
net/http.(*Client).Get(0xbd3380, 0xc8204e4420, 0x21, 0xc8202f0000, 0x0, 0x0)
    /usr/local/go/src/net/http/client.go:422 +0xaa
net/http.Get(0xc8204e4420, 0x21, 0xc82022f6b8, 0x0, 0x0)
    /usr/local/go/src/net/http/client.go:397 +0x45
...

goroutine 58 [IO wait, 33 minutes]:
net.runtime_pollWait(0x800c49cd0, 0x72, 0xc8202e1000)
    /usr/local/go/src/runtime/netpoll.go:160 +0x60
net.(*pollDesc).Wait(0xc8203ae760, 0x72, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc8203ae760, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc8203ae700, 0xc8202e1000, 0x1000, 0x1000, 0x0, 0x800c44050, 0xc82000e130)
    /usr/local/go/src/net/fd_unix.go:250 +0x23a
net.(*conn).Read(0xc8200de030, 0xc8202e1000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:172 +0xe4
net/http.noteEOFReader.Read(0x800cc80f8, 0xc8200de030, 0xc8202f0478, 0xc8202e1000, 0x1000, 0x1000, 0x408333, 0x0, 0x0)
    /usr/local/go/src/net/http/transport.go:1687 +0x67
net/http.(*noteEOFReader).Read(0xc820428520, 0xc8202e1000, 0x1000, 0x1000, 0xc8201a4d1d, 0x0, 0x0)
    <autogenerated>:287 +0xd0
bufio.(*Reader).fill(0xc82017e360)
    /usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(*Reader).Peek(0xc82017e360, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/bufio/bufio.go:132 +0xcc
net/http.(*persistConn).readLoop(0xc8202f0410)
    /usr/local/go/src/net/http/transport.go:1073 +0x177
created by net/http.(*Transport).dialConn
    /usr/local/go/src/net/http/transport.go:857 +0x10a6

goroutine 59 [select, 31 minutes]:
net/http.(*persistConn).writeLoop(0xc8202f0410)
    /usr/local/go/src/net/http/transport.go:1277 +0x472
created by net/http.(*Transport).dialConn
    /usr/local/go/src/net/http/transport.go:858 +0x10cb

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions