Looking at [1] you can look for the relevant thread and
gdb into it to see what's it about

[1] https://stackoverflow.com/questions/23838498/how-to-diagnose-a-python-process-chewing-cpu-in-linux

On 28 July 2017 at 11:19, Yaniv Kaul <ykaul@redhat.com> wrote:
When running o-s-t, and specifically when running add_secondary_storag, lago command is taking 100% CPU. I'm not sure where and why, and trying to narrow down the relevant threads did not yield a lot - it's not the Glance related functions, for example.

I did try to make some changes to testlib.py, in an effort to reduce what I thought was a tight loop, but it made no effect (nevertheless, I think those are good changes):
[ykaul@ykaul lago-ost-plugin]$ diff -u ovirtlago/testlib.py /usr/lib/python2.7/site-packages/ovirtlago/testlib.py
--- ovirtlago/testlib.py 2017-07-28 11:15:31.506848944 +0300
+++ /usr/lib/python2.7/site-packages/ovirtlago/testlib.py 2017-07-28 09:29:19.403446285 +0300
@@ -209,7 +209,7 @@
     return any(True for cls in cls_list if isinstance(obj, cls))
-def assert_equals_within(func, value, timeout, allowed_exceptions=None):
+def assert_equals_within(func, value, timeout, allowed_exceptions=None, initial_wait=15):
     allowed_exceptions = allowed_exceptions or []
     with utils.EggTimer(timeout) as timer:
         while not timer.elapsed():
@@ -219,12 +219,17 @@
             except Exception as exc:
                 if _instance_of_any(exc, allowed_exceptions):
+                    time.sleep(3)
                 LOGGER.exception("Unhandled exception in %s", func)
-            time.sleep(3)
+            if initial_wait == 0:
+                time.sleep(3)
+            else:
+                time.sleep(initial_wait)
+                initial_wait = 0
         raise AssertionError(
             '%s != %s after %s seconds' % (res, value, timeout)

Any ideas how to debug this? I'm on F26, with latest Lago.

lago-devel mailing list