[oe-commits] [bitbake] branch master-next updated: runqueue: Fix dependency loop analysis 'hangs'

git at git.openembedded.org git at git.openembedded.org
Sat Feb 16 15:04:39 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository bitbake.

The following commit(s) were added to refs/heads/master-next by this push:
     new 8756e4a  runqueue: Fix dependency loop analysis 'hangs'
8756e4a is described below

commit 8756e4ade67c16e35269ea0659e10b9ebaa6117f
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Sat Feb 16 12:57:02 2019 +0000

    runqueue: Fix dependency loop analysis 'hangs'
    
    Currently the mechanism for breaking out of the dependnecy loop analysis
    code is broken and doesn't work leading to bitbake appearing to hang.
    
    Add in a custom exception for this purpose and fix the code to exit
    as intended, fixing the hang and making the dependency loop code
    usable again.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/runqueue.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index 80ae8a2..71f178d 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -410,6 +410,9 @@ class RunQueueData:
         explored_deps = {}
         msgs = []
 
+        class TooManyLoops(Exception):
+            pass
+
         def chain_reorder(chain):
             """
             Reorder a dependency chain so the lowest task id is first
@@ -462,7 +465,7 @@ class RunQueueData:
                         msgs.append("\n")
                     if len(valid_chains) > 10:
                         msgs.append("Aborted dependency loops search after 10 matches.\n")
-                        return msgs
+                        raise TooManyLoops
                     continue
                 scan = False
                 if revdep not in explored_deps:
@@ -481,8 +484,11 @@ class RunQueueData:
 
             explored_deps[tid] = total_deps
 
-        for task in tasks:
-            find_chains(task, [])
+        try:
+            for task in tasks:
+                find_chains(task, [])
+        except TooManyLoops:
+            pass
 
         return msgs
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list