golang/go

x/net/http2: make Transport send GOAWAY?

Open

#18,340 opened on Dec 16, 2016

View on GitHub
 (5 comments) (0 reactions) (0 assignees)Go (19,008 forks)batch import
NeedsFixhelp wanted

Repository metrics

Stars
 (133,883 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

We previously debated whether the Transport should send GOAWAY frames on shutdown, but couldn't think of a useful reason why.

The spec does say:

When either endpoint chooses to close the transport-layer TCP connection, the terminating endpoint SHOULD first send a GOAWAY (Section 6.8) frame so that both endpoints can reliably determine whether previously sent frames have been processed and gracefully complete or terminate any necessary remaining tasks.

Or code is like:

        // TODO: do clients send GOAWAY too? maybe? Just Close:                                                                                           
        cc.tconn.Close()

But I'm still not quite sure why a server would care.

/cc @mnot @tombergan

Contributor guide