Message ID | 20250217074619.3763528-1-hongxu.jia@windriver.com |
---|---|
State | Accepted, archived |
Commit | a3a2edbf7139b7f8c665c2b0b13e094a334e4441 |
Headers | show |
Series | [V3] setuptools3-base.bbclass: override default subprocess timeout | expand |
On 17 Feb 2025, at 07:46, hongxu via lists.openembedded.org <hongxu.jia=eng.windriver.com@lists.openembedded.org> wrote: > > The environment variable SETUPTOOLS_SCM_SUBPROCESS_TIMEOUT allows to override > the subprocess timeout. The default is 40 seconds and should work for most > needs.[1] However, it was not enough while using git shallow tarball and starting > multiple Yocto world builds in one host. > > | File "tmp/work/x86_64-linux/python3-scancode-native/32.1.0/recipe-sysroot- > native/usr/lib/python3.13/subprocess.py", line 1263, in _check_timeout > | raise TimeoutExpired( > | ...<2 lines>... > | stderr=b''.join(stderr_seq) if stderr_seq else None) > | subprocess.TimeoutExpired: Command '['git', '--git-dir', 'tmp/work/x86_64- > linux/python3-scancode-native/32.1.0/git/.git', 'status', '--porcelain', > '--untracked-files=no']' timed out after 40 seconds Can you define “multiple”? If a ‘git status’ is taking more than 40 seconds to complete then it sounds like your machine is being utterly hammered beyond reasonable measures. Ross
It happens occasionally, in our build farm, similar Yocto Autobuilder, the build test controller starts up multiple containers for the build on the host, and each container is allocated for the world build. It should be some kind of limit testing or stress testing for yocto build
But why should this be set in core for everyone, and to ten minutes? Your farm is misconfigured if 40 seconds is not enough got ‘git status’. Alex On Tue 18. Feb 2025 at 0.39, hongxu via lists.openembedded.org <hongxu.jia= eng.windriver.com@lists.openembedded.org> wrote: > It happens occasionally, in our build farm, similar Yocto Autobuilder, the > build test controller starts up multiple containers for the build on the > host, and each container is allocated for the world build. > It should be some kind of limit testing or stress testing for yocto build > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#211558): > https://lists.openembedded.org/g/openembedded-core/message/211558 > Mute This Topic: https://lists.openembedded.org/mt/111228031/1686489 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [ > alex.kanavin@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
diff --git a/meta/classes-recipe/setuptools3-base.bbclass b/meta/classes-recipe/setuptools3-base.bbclass index 27af6abc58..190d9e6e3a 100644 --- a/meta/classes-recipe/setuptools3-base.bbclass +++ b/meta/classes-recipe/setuptools3-base.bbclass @@ -23,6 +23,10 @@ export CCSHARED = "-fPIC -DPIC" # the python executable export LINKFORSHARED = "${SECURITY_CFLAGS} -Xlinker -export-dynamic" +# The environment variable SETUPTOOLS_SCM_SUBPROCESS_TIMEOUT allows +# to override the subprocess timeout. +export SETUPTOOLS_SCM_SUBPROCESS_TIMEOUT ??= "600" + FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}" FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
The environment variable SETUPTOOLS_SCM_SUBPROCESS_TIMEOUT allows to override the subprocess timeout. The default is 40 seconds and should work for most needs.[1] However, it was not enough while using git shallow tarball and starting multiple Yocto world builds in one host. | File "tmp/work/x86_64-linux/python3-scancode-native/32.1.0/recipe-sysroot- native/usr/lib/python3.13/subprocess.py", line 1263, in _check_timeout | raise TimeoutExpired( | ...<2 lines>... | stderr=b''.join(stderr_seq) if stderr_seq else None) | subprocess.TimeoutExpired: Command '['git', '--git-dir', 'tmp/work/x86_64- linux/python3-scancode-native/32.1.0/git/.git', 'status', '--porcelain', '--untracked-files=no']' timed out after 40 seconds Explicitly set variable SETUPTOOLS_SCM_SUBPROCESS_TIMEOUT to 600s in bbclass, and we could override it in local.conf [1] https://github.com/pypa/setuptools-scm/blob/main/docs/overrides.md Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- meta/classes-recipe/setuptools3-base.bbclass | 4 ++++ 1 file changed, 4 insertions(+)