Golang Best Practices
Handle Context Deadline Exceeded Error⌗
Context Deadline Exceeded
is an error occurring in Go when a context of an HTTP request has a deadline or a timeout set, i.e., the time after which the request should abort.
Handle ‘connection reset by peer’ error⌗
The connection reset by peer
is a TCP/IP error that occurs when the other end (peer) has unexpectedly closed the connection. It happends when you send a packet from your end, but the other end crashes and forcibly closes the connection with the RST packet instead of the TCP FIN, which is used to close a connection under normal circumstances. In Go, you can detect the connection reset by peer by checking if the error returned by the peer is equal to syscall.ECONNRESET.
- Reproduce the
connection reset by peer
error
- Difference between
connection reset by peer
andbroken pipe
Handle ‘broken pipe’ error⌗
The broken pipe
is a TCP/IP error occurring when you write to a stream where the other end (the peer) has closed the underlying connection. The first write to the closed connection causes the peer to reply with and RST packet indicating that the connection should be terminated immediately. The second write to the socket that has already received the RST causes the broken pipe
error. To detect the broken pipe in Go, check if the error returned by the peer is equal to syscall.EPIPE. Usually, this error can be seen when the server crashes while the client is sending data to it.