Skip to content

x/build: reverse roundtripper hang #11869

@bradfitz

Description

@bradfitz

linux-arm reverse builders all hung. Stacks like:

(Note that it's in doHeaderTimeout so it's trying to do timeouts, but then I think the custom reverse RoundTripper blocks forever via *body.Close)

goroutine 7484955 [IO wait, 12686 minutes]:
net.runtime_pollWait(0x7fb6d49e9c00, 0x72, 0xc82000a150)
    /home/bradfitz/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc83d468f40, 0x72, 0x0, 0x0)
    /home/bradfitz/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc83d468f40, 0x0, 0x0)
    /home/bradfitz/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc83d468ee0, 0xc842a80000, 0x2000, 0x2000, 0x0, 0x7fb6d998c050, 0xc82000a150)
    /home/bradfitz/go/src/net/fd_unix.go:232 +0x23a
net.(*conn).Read(0xc83494b180, 0xc842a80000, 0x2000, 0x2000, 0x0, 0x0, 0x0)
    /home/bradfitz/go/src/net/net.go:124 +0xe4
crypto/tls.(*block).readFromUntil(0xc8357a5560, 0x7fb6d6b570e8, 0xc83494b180, 0x5, 0x0, 0x0)
    /home/bradfitz/go/src/crypto/tls/conn.go:455 +0xcc
crypto/tls.(*Conn).readRecord(0xc82f821b80, 0xaead17, 0x0, 0x0)
    /home/bradfitz/go/src/crypto/tls/conn.go:540 +0x2d1
crypto/tls.(*Conn).Read(0xc82f821b80, 0xc82658f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /home/bradfitz/go/src/crypto/tls/conn.go:901 +0x167
net/http.(*liveSwitchReader).Read(0xc840516258, 0xc82658f000, 0x1000, 0x1000, 0xd, 0x0, 0x0)
    /home/bradfitz/go/src/net/http/server.go:219 +0xa4
io.(*LimitedReader).Read(0xc820c25000, 0xc82658f000, 0x1000, 0x1000, 0xd, 0x0, 0x0)
    /home/bradfitz/go/src/io/io.go:427 +0xbd
bufio.(*Reader).fill(0xc82ae30d20)
    /home/bradfitz/go/src/bufio/bufio.go:97 +0x1e9
bufio.(*Reader).ReadSlice(0xc82ae30d20, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/bradfitz/go/src/bufio/bufio.go:328 +0x21a
net/http/internal.readLine(0xc82ae30d20, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/bradfitz/go/src/net/http/internal/chunked.go:110 +0x4b
net/http/internal.(*chunkedReader).beginChunk(0xc832efe990)
    /home/bradfitz/go/src/net/http/internal/chunked.go:47 +0x39
net/http/internal.(*chunkedReader).Read(0xc832efe990, 0xc8332c6000, 0x2000, 0x2000, 0x0, 0x0, 0x0)
    /home/bradfitz/go/src/net/http/internal/chunked.go:77 +0xb7
net/http.(*body).readLocked(0xc839cdbc40, 0xc8332c6000, 0x2000, 0x2000, 0x8, 0x0, 0x0)
    /home/bradfitz/go/src/net/http/transfer.go:625 +0x98
net/http.bodyLocked.Read(0xc839cdbc40, 0xc8332c6000, 0x2000, 0x2000, 0x8, 0x0, 0x0)
    /home/bradfitz/go/src/net/http/transfer.go:790 +0x89
io/ioutil.devNull.ReadFrom(0x0, 0x7fb6d99ae3f0, 0xc839cdbc40, 0x659, 0x0, 0x0)
    /home/bradfitz/go/src/io/ioutil/ioutil.go:151 +0x9e
io/ioutil.(*devNull).ReadFrom(0xc82000a2c0, 0x7fb6d99ae3f0, 0xc839cdbc40, 0xc8329ffe10, 0x0, 0x0)
    <autogenerated>:9 +0xb1
io.copyBuffer(0x7fb6d99901c0, 0xc82000a2c0, 0x7fb6d99ae3f0, 0xc839cdbc40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/bradfitz/go/src/io/io.go:375 +0x180
io.Copy(0x7fb6d99901c0, 0xc82000a2c0, 0x7fb6d99ae3f0, 0xc839cdbc40, 0xc841924900, 0x0, 0x0)
    /home/bradfitz/go/src/io/io.go:351 +0x64
net/http.(*body).Close(0xc839cdbc40, 0x0, 0x0)
    /home/bradfitz/go/src/net/http/transfer.go:768 +0x2d7
main.(*reverseLockedBody).Close(0xc838410740, 0x0, 0x0)
    /home/bradfitz/src/golang.org/x/build/cmd/coordinator/reverse.go:502 +0x4a
golang.org/x/build/buildlet.(*Client).doHeaderTimeout.func2()
    /home/bradfitz/src/golang.org/x/build/buildlet/buildletclient.go:259 +0x92
created by golang.org/x/build/buildlet.(*Client).doHeaderTimeout
    /home/bradfitz/src/golang.org/x/build/buildlet/buildletclient.go:267 +0x275

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions