[OE-core] OSError: [Errno 7] Argument list too long in sstate_install

Martin Jansa martin.jansa at gmail.com
Tue Jan 29 20:26:30 UTC 2013


On Tue, Jan 29, 2013 at 03:49:00PM +0100, Martin Jansa wrote:
> 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.

and here is strace from that shell, no idea where that close(4294967295) came from

Process 2553 attached - interrupt to quit
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 2554
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigreturn(0x11)                      = 2554
stat("/home/jenkins/oe/shr-core-branches/shr-core/openembedded-core/scripts/tar", 0x7fffc9269bf0) = -1 ENOENT (No such file or directory)
stat("/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/bin/armv5te-oe-linux-gnueabi/tar", 0x7fffc9269bf0) = -1 ENOENT (No such file or directory)
stat("/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/qemuarm/usr/bin/crossscripts/tar", 0x7fffc9269bf0) = -1 ENOENT (No such file or directory)
stat("/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/sbin/tar", 0x7fffc9269bf0) = -1 ENOENT (No such file or directory)
stat("/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/bin/tar", 0x7fffc9269bf0) = -1 ENOENT (No such file or directory)
stat("/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/x86_64-linux/sbin/tar", 0x7fffc9269bf0) = -1 ENOENT (No such file or directory)
stat("/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/x86_64-linux//bin/tar", 0x7fffc9269bf0) = -1 ENOENT (No such file or directory)
stat("/home/jenkins/oe/shr-core-branches/shr-core/openembedded-core/scripts/tar", 0x7fffc9269bf0) = -1 ENOENT (No such file or directory)
stat("/home/jenkins/oe/shr-core-branches/shr-core/bitbake/bin/tar", 0x7fffc9269bf0) = -1 ENOENT (No such file or directory)
stat("/usr/local/bin/tar", 0x7fffc9269bf0) = -1 ENOENT (No such file or directory)
stat("/usr/bin/tar", 0x7fffc9269bf0)    = -1 ENOENT (No such file or directory)
stat("/bin/tar", {st_mode=S_IFREG|0755, st_size=307760, ...}) = 0
pipe([10, 11])                          = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f46963919d0) = 3068
close(11)                               = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f46963919d0) = 3069
close(10)                               = 0
close(4294967295)                       = -1 EBADF (Bad file descriptor)
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3068
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigreturn(0x11)                      = 3068
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3069
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigreturn(0x11)                      = 3069
exit_group(0)                           = ?
Process 2553 detached


> 
> 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



-- 
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/7c215eff/attachment-0002.sig>


More information about the Openembedded-core mailing list