ethstats: avoid blocking chan when received invalid stats request #21073 (#1441)

* ethstats: avoid blocking chan when received invalid stats request

* ethstats: minor code polishes

Co-authored-by: Hao Duan <duanhao0814@gmail.com>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
This commit is contained in:
Daniel Liu 2025-09-06 17:18:22 +08:00 committed by GitHub
parent 65c7f4418f
commit 0a1bcdcbff
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -399,9 +399,12 @@ func (s *Service) readLoop(conn *connWrapper) {
// Make sure the request is valid and doesn't crash us
request, ok := msg["emit"][1].(map[string]interface{})
if !ok {
log.Debug("Invalid stats history request", "msg", msg["emit"][1])
s.histCh <- nil
continue // Ethstats sometime sends invalid history requests, ignore those
log.Warn("Invalid stats history request", "msg", msg["emit"][1])
select {
case s.histCh <- nil: // Treat it as an no indexes request
default:
}
continue
}
list, ok := request["list"].([]interface{})
if !ok {
@ -429,7 +432,7 @@ func (s *Service) readLoop(conn *connWrapper) {
}
}
// nodeInfo is the collection of metainformation about a node that is displayed
// nodeInfo is the collection of meta information about a node that is displayed
// on the monitoring page.
type nodeInfo struct {
Name string `json:"name"`