[OE-core] [PATCH] devtool: ensure temp directory is created

Joshua Lock joshua.g.lock at linux.intel.com
Tue Oct 17 16:02:07 UTC 2017



On 17/10/17 17:00, Leonardo Sandoval wrote:
> On Tue, 17 Oct 2017 16:05:06 +0100
> Joshua Lock <joshua.g.lock at intel.com> 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 <joshua.g.lock at intel.com>
>> ---
>>   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
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> 
> 



More information about the Openembedded-core mailing list