feat: ignore eof err (#450)
Closes #443
diff --git a/internal/remote/remote_client.go b/internal/remote/remote_client.go
index 302b5e5..7b5b1ea 100644
--- a/internal/remote/remote_client.go
+++ b/internal/remote/remote_client.go
@@ -141,32 +141,28 @@
defer primitive.BackHeader(header)
for {
if err != nil {
+ // conn has been closed actively
if r.isClosed(err) {
return
}
- rlog.Error("conn error, close connection", map[string]interface{}{
- rlog.LogKeyUnderlayError: err,
- })
+ if err != io.EOF {
+ rlog.Error("conn error, close connection", map[string]interface{}{
+ rlog.LogKeyUnderlayError: err,
+ })
+ }
+ c.closeConnection(r)
+ r.destroy()
break
}
_, err = io.ReadFull(r, header)
if err != nil {
- if r.isClosed(err) {
- return
- }
- rlog.Error("io ReadFull error when read header", map[string]interface{}{
- rlog.LogKeyUnderlayError: err,
- })
continue
}
var length int32
err = binary.Read(bytes.NewReader(header), binary.BigEndian, &length)
if err != nil {
- rlog.Error("binary decode header error", map[string]interface{}{
- rlog.LogKeyUnderlayError: err,
- })
continue
}
@@ -174,12 +170,6 @@
_, err = io.ReadFull(r, buf)
if err != nil {
- if r.isClosed(err) {
- return
- }
- rlog.Error("io ReadFull error when read payload", map[string]interface{}{
- rlog.LogKeyUnderlayError: err,
- })
continue
}
@@ -318,10 +308,6 @@
"remote": conn.RemoteAddr(),
rlog.LogKeyUnderlayError: err,
})
- } else {
- rlog.Info("remoting conn closed", map[string]interface{}{
- "remote": conn.RemoteAddr(),
- })
}
return true
})