Skip to content

Commit 269d8fe

Browse files
authored
Merge pull request #73 from kaxap/master
Do not retry on unknown network error. Fixes #72
2 parents c032cb0 + 7e508ed commit 269d8fe

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

fluent/fluent.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,18 @@ type Config struct {
6363
RequestAck bool `json:"request_ack"`
6464
}
6565

66+
type ErrUnknownNetwork struct {
67+
network string
68+
}
69+
70+
func (e *ErrUnknownNetwork) Error() string {
71+
return "unknown network " + e.network
72+
}
73+
74+
func NewErrUknownNetwork(network string) error {
75+
return &ErrUnknownNetwork{network}
76+
}
77+
6678
type msgToSend struct {
6779
data []byte
6880
ack string
@@ -329,7 +341,7 @@ func (f *Fluent) connect() (err error) {
329341
case "unix":
330342
f.conn, err = net.DialTimeout(f.Config.FluentNetwork, f.Config.FluentSocketPath, f.Config.Timeout)
331343
default:
332-
err = net.UnknownNetworkError(f.Config.FluentNetwork)
344+
err = NewErrUknownNetwork(f.Config.FluentNetwork)
333345
}
334346
return err
335347
}
@@ -365,6 +377,11 @@ func (f *Fluent) write(msg *msgToSend) error {
365377
err := f.connect()
366378
if err != nil {
367379
f.muconn.Unlock()
380+
381+
if _, ok := err.(*ErrUnknownNetwork); ok {
382+
// do not retry on unknown network error
383+
break
384+
}
368385
waitTime := f.Config.RetryWait * e(defaultReconnectWaitIncreRate, float64(i-1))
369386
if waitTime > f.Config.MaxRetryWait {
370387
waitTime = f.Config.MaxRetryWait

fluent/fluent_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func Test_New_itShouldUseUnixDomainSocketIfUnixSocketSpecified(t *testing.T) {
118118
fUnknown, err := New(Config{
119119
FluentNetwork: network,
120120
FluentSocketPath: socketFile})
121-
if _, ok := err.(net.UnknownNetworkError); !ok {
121+
if _, ok := err.(*ErrUnknownNetwork); !ok {
122122
t.Errorf("err type: %T", err)
123123
}
124124
if err == nil {

0 commit comments

Comments
 (0)