Skip to content

Commit ebaae10

Browse files
committed
Do not retry on unknown network error. Fixes #72
Signed-off-by: kaxapi <[email protected]>
1 parent c032cb0 commit ebaae10

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
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

0 commit comments

Comments
 (0)