diff mbox series

[scarthgap,v2,2/2] setuptools3-base.bbclass: override default subprocess timeout

Message ID 20250218133736.2113804-2-hongxu.jia@windriver.com
State Rejected
Delegated to: Steve Sakoman
Headers show
Series [scarthgap,v2,1/2] python3-setuptools-scm: add subprocess timeout control env var | expand

Commit Message

Hongxu Jia Feb. 18, 2025, 1:37 p.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

Alexander Kanavin Feb. 18, 2025, 1:47 p.m. UTC | #1
On Tue, 18 Feb 2025 at 14:37, hongxu via lists.openembedded.org
<hongxu.jia=eng.windriver.com@lists.openembedded.org> wrote:
> Explicitly set variable SETUPTOOLS_SCM_SUBPROCESS_TIMEOUT to 600s in bbclass,
> and we could override it in local.conf

This hasn't been accepted in master yet. And there's a strong
opposition, as this is felt to be something needed for misconfigured
CIs that get I/O load beyond all reason. Can this be kept as your
local tweak?

Alex
Ross Burton Feb. 18, 2025, 2:47 p.m. UTC | #2
On 18 Feb 2025, at 13:37, 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

Is this specific to the python3-scancode-native recipe, or can you replicate it across a number of recipes?

If it’s specific to the recipe (due to it being huge, or having LFS, or something) then I suggest the assignment could be done in there instead.

Ross
Hongxu Jia Feb. 19, 2025, 2:28 a.m. UTC | #3
On 2/18/25 21:47, Alexander Kanavin wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
> On Tue, 18 Feb 2025 at 14:37, hongxu via lists.openembedded.org
> <hongxu.jia=eng.windriver.com@lists.openembedded.org> wrote:
>> Explicitly set variable SETUPTOOLS_SCM_SUBPROCESS_TIMEOUT to 600s in bbclass,
>> and we could override it in local.conf
> This hasn't been accepted in master yet. And there's a strong
> opposition, as this is felt to be something needed for misconfigured
> CIs that get I/O load beyond all reason. Can this be kept as your
> local tweak?

Sure, we kept it as local patch

//Hongxu

> Alex
Alexander Kanavin Feb. 19, 2025, 9:20 a.m. UTC | #4
On Wed, 19 Feb 2025 at 03:28, Hongxu Jia <hongxu.jia@windriver.com> wrote:
> > This hasn't been accepted in master yet. And there's a strong
> > opposition, as this is felt to be something needed for misconfigured
> > CIs that get I/O load beyond all reason. Can this be kept as your
> > local tweak?
>
> Sure, we kept it as local patch

Well, it has actually landed in master at about same time I wrote that
:) https://git.yoctoproject.org/poky/commit/?h=master&id=a4ba090f61484ea7cf8014c232ebec6f195f54a3

I'm not asking for a revert, but can the default be reset from 600 to
upstream's 40?

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