Skip to contentSkip to conversation

package_manager: flush installed_pkgs file before oe-pkgdata-util uses it

PATCH New Martin Jansa 1 participant 1 message May 30, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package_manager: flush installed_pkgs file before oe-pkgdata-util uses it

* since this commit:
commit f5a1013ffa9815f22e13989e2bcb83f966e7ce2c
Author: Ross Burton <[email protected]>
Date: Tue Apr 18 16:19:12 2017 +0100

package_manager: don't race on a file when installing complementary packages

the file isn't closed before oe-pkgdata-util uses it and this
temporary file might look empty to oe-pkgdata-util, because it
wasn't flushed yet. Which resulted in almost empty debugfs tarballs
and no locale packages in regular rootfs.
* without this change:
124K May 30 07:41 core-image-full-cmdline-raspberrypi3-64-20170530054003-dbg.rootfs.tar.gz
* with this change:
173M May 30 07:29 core-image-full-cmdline-raspberrypi3-64-20170530052715-dbg.rootfs.tar.gz

---
 meta/lib/oe/package_manager.py | 1 +
 1 file changed, 1 insertion(+)
meta/lib/oe/package_manager.py +1 -0
index f1b65bdbbc..2795dd3823 100644
@@ -399,6 +399,7 @@ class PackageManager(object, metaclass=ABCMeta):
             pkgs = self.list_installed()
             output = oe.utils.format_pkg_list(pkgs, "arch")
             installed_pkgs.write(output)
+            installed_pkgs.flush()
 
             cmd = [bb.utils.which(os.getenv('PATH'), "oe-pkgdata-util"),
                    "-p", self.d.getVar('PKGDATA_DIR'), "glob", installed_pkgs.name,
Signature · 1 line
2.13.0