On 17/10/17 17:00, Leonardo Sandoval wrote:
On Tue, 17 Oct 2017 16:05:06 +0100
Joshua Lock <[email protected]> wrote:

I would be nice that we keep the bugzilla ticket open (and included the tag on 
this patch) and investigate further  this issue. Seems like in some distros, 
the temfile.mkdtemp is not doing what it is supposed thus we have this 
workaround (perhaps strace may lead the real reason)

Agreed. I meant to write more before sending this patch (and copy Paul). It's clearly not the right fix as the tempfile.mkdtemp() call should create the directory, but I wanted to share my simple findings (that the directory doesn't appear to be reliably created by the mkdtemp call, as expected).

FWIW the failure has been observed on multiple host distros (Ubuntu 16.04, Fedora 26, Tumbleweed) and I could replicate it very easily on my Fedora 26 host with an use of devtool modify -x.

Joshua


We often see nightly-oe-selftest on the Yocto Project Autobuilder fail in
test_devtool_modify_native with:

      'devtool modify apt-native -x /tmp/devtoolqahlptvsfq/apt-native' returned
      non-zero exit status 1

and the following traceback:

Traceback (most recent call last):
   File 
"/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/scripts/devtool",
 line 331, in <module>
     ret = main()
   File 
"/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/scripts/devtool",
 line 318, in main
     ret = args.func(args, config, basepath, workspace)
   File 
"/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/scripts/lib/devtool/standard.py",
 line 714, in modify
     initial_rev = _extract_source(srctree, args.keep_temp, args.branch, False, 
config, basepath, workspace, args.fixed_setup, rd, tinfoil)
   File 
"/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/scripts/lib/devtool/standard.py",
 line 545, in _extract_source
     with open(os.path.join(tempdir, 'initial_rev'), 'r') as f:

Ensure the tempdir is created before we try and create any files there.

Signed-off-by: Joshua Lock <[email protected]>
---
  scripts/lib/devtool/standard.py | 1 +
  1 file changed, 1 insertion(+)

diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index beea0d4c274..38197251b42 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -494,6 +494,7 @@ def _extract_source(srctree, keep_temp, devbranch, sync, 
config, basepath, works
      tempbasedir = d.getVar('WORKDIR')
      bb.utils.mkdirhier(tempbasedir)
      tempdir = tempfile.mkdtemp(prefix='devtooltmp-', dir=tempbasedir)
+    bb.utils.mkdirhier(tempdir)
      try:
          tinfoil.logger.setLevel(logging.WARNING)
--
2.13.6

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core


--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to