]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/diskprediction_local: import scipy early to fix self-test deadlock 32102/head
authorSage Weil <sage@redhat.com>
Sat, 7 Dec 2019 21:34:59 +0000 (15:34 -0600)
committerSage Weil <sage@redhat.com>
Sat, 7 Dec 2019 21:34:59 +0000 (15:34 -0600)
We are seeing a hang on centos7 (but not ubuntu 18.04) from

        from .predictor import get_diskfailurepredictor_path

in _predict_life_expentancy.

Doing that same predictor import at the top of the file doesn't help--it
hangs right when the diskpredictor_local module is loaded.  Commenting
out the import scipy in predictor.py avoids the hang.

I'm not sure why, but doing the full scipy import here appears to work
around the problem.

Fixes: https://tracker.ceph.com/issues/42764
Signed-off-by: Sage Weil <sage@redhat.com>
src/pybind/mgr/diskprediction_local/module.py

index 24f92c2c28a8d60563148eaf1ec25f0a1db6800d..de21a948a48883485263dbf071e5f115f54a733f 100644 (file)
@@ -9,6 +9,14 @@ import time
 
 from mgr_module import MgrModule, CommandResult
 
+# Importing scipy early appears to avoid a future deadlock when
+# we try to do
+#
+#  from .predictor import get_diskfailurepredictor_path
+#
+# in a command thread.  See https://tracker.ceph.com/issues/42764
+import scipy
+
 
 TIME_FORMAT = '%Y%m%d-%H%M%S'
 TIME_DAYS = 24*60*60