[OE-core] OSError: [Errno 7] Argument list too long in sstate_install
Martin Jansa
martin.jansa at gmail.com
Tue Jan 29 14:49:00 UTC 2013
When building bigger world-image I always get this error from
populate_lic. There is debug output to show what copytree/Popen/execute_child
was calling and it looks OK to me.
Could it be caused by pseudo or something like that? do_populate_lic works fine in other recipes.
Running the same cmdline in shell works fine and running it from small .py file also works fine:
$ PYTHONPATH="openembedded-core/meta/lib/:bitbake/lib:bitbake/lib/bb" ./copytree.test.py
copytree cmd 'tar -cf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir -ps . | tar -xf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses'
Calling Popen '('tar -cf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir -ps . | tar -xf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses',)' '{'shell': True, 'stderr': -2}'
execute_child(args, executable, preexec_fn, close_fds,
cwd, env, universal_newlines,
startupinfo, creationflags, shell,
p2cread, p2cwrite,
c2pread, c2pwrite,
errread, errwrite)
execute_child(tar -cf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir -ps . | tar -xf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses, None, None, False,
None, None, False,
None, 0,
True,
None, None,
3, 4,
None, 4)
$ cat copytree.test.py
#!/usr/bin/env python
import bb
import oe.path
src='/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir'
dst='/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses'
oe.path.copytree(src, dst)
src has only few files, dst has a lot of directories:
$ find /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir
/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir
/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir/world-image
/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir/world-image/generic_MIT
/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir/world-image/COPYING.MIT
/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir/world-image/LICENSE
$ ls /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses -1 | wc -l
1696
Complete error as shown in work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/temp/log.do_populate_lic:
DEBUG: Executing python function sstate_task_prefunc
DEBUG: Removing manifest: /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses/world-image/
DEBUG: Python function sstate_task_prefunc finished
DEBUG: Executing python function do_populate_lic
DEBUG: Python function do_populate_lic finished
DEBUG: Executing python function sstate_task_postfunc
DEBUG: Staging files from /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir to /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses
DEBUG: Staging files from /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir to /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses
copytree cmd 'tar -cf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir -ps . | tar -xf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses'
Calling Popen '('tar -cf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir -ps . | tar -xf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses',)' '{'shell': True, 'stderr': -2}'
execute_child(args, executable, preexec_fn, close_fds,
cwd, env, universal_newlines,
startupinfo, creationflags, shell,
p2cread, p2cwrite,
c2pread, c2pwrite,
errread, errwrite)
execute_child(tar -cf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/qemuarm-oe-linux-gnueabi/world-image/1.0-r0/license-destdir -ps . | tar -xf - -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/deploy/licenses, None, None, False,
None, None, False,
None, 0,
True,
None, None,
20, 21,
None, 21)
ERROR: Error executing a python function in /home/jenkins/oe/shr-core-branches/shr-core/openembedded-core/meta/recipes-core/images/world-image.bb:
OSError: [Errno 7] Argument list too long
ERROR: The stack trace of python calls that resulted in this exception/failure was:
ERROR: File "sstate_task_postfunc", line 12, in <module>
ERROR:
ERROR: File "sstate_task_postfunc", line 4, in sstate_task_postfunc
ERROR:
ERROR: File "sstate.bbclass", line 76, in sstate_install
ERROR:
ERROR: File "/home/jenkins/oe/shr-core-branches/shr-core/openembedded-core/meta/lib/oe/path.py", line 85, in copytree
ERROR: check_output(cmd, shell=True, stderr=subprocess.STDOUT)
ERROR:
ERROR: File "/home/jenkins/oe/shr-core-branches/shr-core/openembedded-core/meta/lib/oe/path.py", line 141, in check_output
ERROR: process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs)
ERROR:
ERROR: File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
ERROR: errread, errwrite)
ERROR:
ERROR: File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
ERROR: raise child_exception
ERROR:
ERROR: The code that was being executed was:
ERROR: 0008: bb.build.exec_func(intercept, d)
ERROR: 0009: sstate_package(shared_state, d)
ERROR: 0010:
ERROR: 0011:
ERROR: *** 0012:sstate_task_postfunc(d)
ERROR: 0013:
ERROR: [From file: 'sstate_task_postfunc', lineno: 12, function: <module>]
ERROR: 0001:
ERROR: 0002:def sstate_task_postfunc(d):
ERROR: 0003: shared_state = sstate_state_fromvars(d)
ERROR: *** 0004: sstate_install(shared_state, d)
ERROR: 0005: enabled = d.getVar('SSTATE_CREATE_PKG', True)
ERROR: 0006: if enabled and enabled == "1":
ERROR: 0007: for intercept in shared_state['interceptfuncs']:
ERROR: 0008: bb.build.exec_func(intercept, d)
ERROR: [From file: 'sstate_task_postfunc', lineno: 4, function: sstate_task_postfunc]
ERROR: 0072: f.close()
ERROR: 0073:
ERROR: 0074: # Run the actual file install
ERROR: 0075: for state in ss['dirs']:
ERROR: *** 0076: oe.path.copytree(state[1], state[2])
ERROR: 0077:
ERROR: 0078: for postinst in (d.getVar('SSTATEPOSTINSTFUNCS', True) or '').split():
ERROR: 0079: bb.build.exec_func(postinst, d)
ERROR: 0080:
ERROR: [From file: 'sstate.bbclass', lineno: 76, function: sstate_install]
DEBUG: Python function sstate_task_postfunc finished
ERROR: Function failed: sstate_task_postfunc
--
Martin 'JaMa' Jansa jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20130129/7d374df9/attachment-0002.sig>
More information about the Openembedded-core
mailing list