Skip to content
This repository has been archived by the owner. It is now read-only.

fix: avoid logging "invalid argument" errors when setting keepalive #83

Merged
merged 1 commit into from Jul 14, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
15 tcp.go
@@ -2,7 +2,9 @@

import (
"context"
"errors"
"net"
"os"
"runtime"
"time"

@@ -39,13 +41,22 @@
return
}
if err := keepAliveConn.SetKeepAlive(keepAlive); err != nil {
log.Errorf("Failed to enable TCP keepalive: %s", err)
// Sometimes we seem to get "invalid argument" results from this function on Darwin.
// This might be due to a closed connection, but I can't reproduce that on Linux.
//
// But there's nothing we can do about invalid arguments, so we'll drop this to a
// debug.
if errors.Is(err, os.ErrInvalid) {
log.Debugw("failed to enable TCP keepalive", "error", err)
} else {
log.Errorw("failed to enable TCP keepalive", "error", err)

Check warning on line 52 in tcp.go

Codecov / codecov/patch

tcp.go#L49-L52

Added lines #L49 - L52 were not covered by tests
}
return
}

if runtime.GOOS != "openbsd" {
if err := keepAliveConn.SetKeepAlivePeriod(keepAlivePeriod); err != nil {
log.Errorf("Failed set keepalive period: %s", err)
log.Errorw("failed set keepalive period", "error", err)

Check warning on line 59 in tcp.go

Codecov / codecov/patch

tcp.go#L59

Added line #L59 was not covered by tests
}
}
}