Skip to contentSkip to conversation

Serious regression in multiprocess_exec()

PATCH New Peter Kjellerstedt 1 participant 3 messages Aug 28, 2014

lore
Share & tools
lore
#0 lore raw

cover Serious regression in multiprocess_exec()

This fixes a serious regression in multiprocess_exec() which prevented it from returning anything. This caused package_do_filedeps() in package.bbclass to no longer add any runtime dependencies based on what oe.package.filedeprunner() was supposed to return...

Since the change to multiprocess_exec() will _not_ trigger do_package to be rerun for the affected packages, I have also included a small typo correction to a comment in do_package so its sstate is invalidated.

The following changes since commit c16795477ea7e2159b5d3808268912b572887e2d:

qemu: add PACKAGECONFIG for numa (2014-08-27 12:13:38 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib pkj/multiprocess_exec
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=pkj/multiprocess_exec

Peter Kjellerstedt (2):
lib/oe/utils: Make multiprocess_exec() return anything
package: Correct two typos in a comment

 meta/classes/package.bbclass | 6 +++---
 meta/lib/oe/utils.py         | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)
Signature · 1 line
1.9.0
#1 lore raw

PATCH 1/2 lib/oe/utils: Make multiprocess_exec() return anything

The variable "results" was accidentally used for multiple different things at the same time, which unintentionally discarded anything that was supposed to be returned from the function...

---
 meta/lib/oe/utils.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/lib/oe/utils.py +2 -2
index 92e21a4..3544256 100644
@@ -167,11 +167,11 @@ def multiprocess_exec(commands, function):
     imap = pool.imap(function, commands)
 
     try:
-        results = list(imap)
+        res = list(imap)
         pool.close()
         pool.join()
         results = []
-        for result in results:
+        for result in res:
             if result is not None:
                 results.append(result)
         return results
Signature · 1 line
1.9.0
#2 lore raw

PATCH 2/2 package: Correct two typos in a comment

In reply to Peter Kjellerstedt

This quite coincidentally invalidates the sstate for do_package which is needed due to the correction of oe.utils.multiprocess_exec().

---
 meta/classes/package.bbclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
meta/classes/package.bbclass +3 -3
index 0ff5370..a877d28 100644
@@ -1930,9 +1930,9 @@ python do_package () {
     # Optimisations
     ###########################################################################
 
-    # Contunually rexpanding complex expressions is inefficient, particularly when
-    # we write to the datastore and invalidate the expansion cache. This code 
-    # pre-expands some frequently used variables
+    # Continually expanding complex expressions is inefficient, particularly
+    # when we write to the datastore and invalidate the expansion cache. This
+    # code pre-expands some frequently used variables
 
     def expandVar(x, d):
         d.setVar(x, d.getVar(x, True))
Signature · 1 line
1.9.0