diff mbox series

[V3] setuptools3-base.bbclass: override default subprocess timeout

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

Commit Message

Hongxu Jia Feb. 17, 2025, 7:46 a.m. UTC
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(+)

Comments

Ross Burton Feb. 17, 2025, 3:40 p.m. UTC | #1
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
hongxu Feb. 17, 2025, 11:39 p.m. UTC | #2
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
Alexander Kanavin Feb. 18, 2025, 4:25 a.m. UTC | #3
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 mbox series

Patch

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"