Exclude read-timeout from being an error (#9429)
This commit is contained in:
parent
c6c3efdb97
commit
e4bd01e0c7
|
|
@ -93,7 +93,7 @@ func (d *Dovecot) gatherServer(addr string, acc telegraf.Accumulator, qtype stri
|
|||
|
||||
c, err := net.DialTimeout(proto, addr, defaultTimeout)
|
||||
if err != nil {
|
||||
return fmt.Errorf("enable to connect to dovecot server '%s': %s", addr, err)
|
||||
return fmt.Errorf("unable to connect to dovecot server '%s': %s", addr, err)
|
||||
}
|
||||
defer c.Close()
|
||||
|
||||
|
|
@ -113,7 +113,12 @@ func (d *Dovecot) gatherServer(addr string, acc telegraf.Accumulator, qtype stri
|
|||
}
|
||||
var buf bytes.Buffer
|
||||
if _, err := io.Copy(&buf, c); err != nil {
|
||||
return fmt.Errorf("copying message failed for dovecot server '%s': %s", addr, err)
|
||||
// We need to accept the timeout here as reading from the connection will only terminate on EOF
|
||||
// or on a timeout to happen. As EOF for TCP connections will only be sent on connection closing,
|
||||
// the only way to get the whole message is to wait for the timeout to happen.
|
||||
if nerr, ok := err.(net.Error); !ok || !nerr.Timeout() {
|
||||
return fmt.Errorf("copying message failed for dovecot server '%s': %s", addr, err)
|
||||
}
|
||||
}
|
||||
|
||||
var host string
|
||||
|
|
|
|||
Loading…
Reference in New Issue