]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/diskprediction_local: Fix array size error 36578/head
authorBenoît Knecht <bknecht@protonmail.ch>
Wed, 15 Jul 2020 13:14:51 +0000 (15:14 +0200)
committerLaura Paduano <lpaduano@suse.com>
Wed, 12 Aug 2020 07:43:59 +0000 (09:43 +0200)
The disk predictor assumes that it has at least 6 days worth of data to work
with, and the code ensures that `health_data` contains at least 6 elements.

However, it then gets fitlered down into a `predict_datas` array that can
contain less than 6 elements in some cases.

This commit ensures that `predict_datas` contains 6 elements or more before
passing it on to the disk predictor.

Fixes: https://tracker.ceph.com/issues/46549
Signed-off-by: Benoît Knecht <bknecht@protonmail.ch>
(cherry picked from commit ab0e5ae928d4fc15cf812957541c02770d13ab26)

src/pybind/mgr/diskprediction_local/module.py

index 3f0e544d44abb7e00e5e7346cc148e5884de83ac..7339c6033239f10595a82d6380ddce515ae573ef 100644 (file)
@@ -167,7 +167,7 @@ class Module(MgrModule):
         else:
             self.log.error('unable to predict device due to health data records less than 6 days')
 
-        if predict_datas:
+        if len(predict_datas) >= 6:
             predicted_result = obj_predictor.predict(predict_datas)
         return predicted_result