From 0d5ca9306e7e4e9ccf37f1377b28863f41b52c19 Mon Sep 17 00:00:00 2001 From: 710leo <710leo@gmail.com> Date: Sun, 24 May 2020 17:40:22 +0800 Subject: [PATCH] Fix rrd update when value less than 1 --- src/modules/judge/cache/linkedlist.go | 6 ++++++ src/modules/tsdb/rrdtool/rrdtool.go | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/modules/judge/cache/linkedlist.go b/src/modules/judge/cache/linkedlist.go index fde1ec55..77773ff9 100644 --- a/src/modules/judge/cache/linkedlist.go +++ b/src/modules/judge/cache/linkedlist.go @@ -90,6 +90,12 @@ func (ll *SafeLinkedList) HistoryData(limit int) ([]*dataobj.HistoryData, bool) currentElement := firstElement for i < limit { nextElement := currentElement.Next() + + if nextElement == nil { + isEnough = false + return vs, isEnough + } + vs[i] = &dataobj.HistoryData{ Timestamp: nextElement.Value.(*dataobj.JudgeItem).Timestamp, Value: dataobj.JsonFloat(nextElement.Value.(*dataobj.JudgeItem).Value), diff --git a/src/modules/tsdb/rrdtool/rrdtool.go b/src/modules/tsdb/rrdtool/rrdtool.go index 3f80b207..f6d4d80e 100644 --- a/src/modules/tsdb/rrdtool/rrdtool.go +++ b/src/modules/tsdb/rrdtool/rrdtool.go @@ -47,7 +47,7 @@ func update(filename string, items []*dataobj.TsdbItem) error { if v > 1e+300 || (v < 1e-300 && v > 0) { continue } - u.Cache(item.Timestamp, int(item.Value)) + u.Cache(item.Timestamp, item.Value) } return u.Update()