diff --git a/agent/gpu_amd_linux.go b/agent/gpu_amd_linux.go index 6af0784c..a6b24973 100644 --- a/agent/gpu_amd_linux.go +++ b/agent/gpu_amd_linux.go @@ -156,6 +156,7 @@ func (gm *GPUManager) updateAmdGpuData(cardPath string) bool { func readSysfsFloat(path string) (float64, error) { val, err := utils.ReadStringFileLimited(path, 64) if err != nil { + slog.Debug("Failed to read sysfs value", "path", path, "error", err) return 0, err } return strconv.ParseFloat(val, 64) diff --git a/agent/utils/utils.go b/agent/utils/utils.go index 1e682b1e..b8e8d993 100644 --- a/agent/utils/utils.go +++ b/agent/utils/utils.go @@ -1,6 +1,7 @@ package utils import ( + "fmt" "io" "math" "os" @@ -68,6 +69,9 @@ func ReadStringFileLimited(path string, maxSize int) (string, error) { if err != nil && err != io.EOF { return "", err } + if n < 0 { + return "", fmt.Errorf("%s returned negative bytes: %d", path, n) + } return strings.TrimSpace(string(buf[:n])), nil }