Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
HTTP/2 GOAWAY are not delivered to clients sometime because close(2)
is called immediately. This is reported in yesodweb#673. We can reproduce this with h2spec: % h2spec http2/5.4 http2/7 5. Streams and Multiplexing 5.4. Error Handling 5.4.1. Connection Error Handling × 1: Sends an invalid PING frame for connection close -> The endpoint MUST close the TCP connection Expected: Connection closed Actual: Error: read tcp 127.0.0.1:56529->127.0.0.1:80: read: connection reset by peer 7. Error Codes × 1: Sends a GOAWAY frame with unknown error code -> The endpoint MUST NOT trigger any special behavior. Expected: Connection closed PING Frame (length:8, flags:0x01, stream_id:0, opaque_data:h2spec) Actual: Error: read tcp 127.0.0.1:56578->127.0.0.1:80: read: connection reset by peer To fix this, we use "gracefulClose" in the network library.
- Loading branch information