diff mbox series

[buildroot-test] scripts/autobuild-run: extend timeout from 120 to 180 minutes

Message ID 20210930231424.249681-1-giulio.benetti@benettiengineering.com
State Rejected
Headers show
Series [buildroot-test] scripts/autobuild-run: extend timeout from 120 to 180 minutes | expand

Commit Message

Giulio Benetti Sept. 30, 2021, 11:14 p.m. UTC
During the last months some package started to timeout, but this is not due
to toolchain infinite loop. I think it's due to the increase of the source
code files' length and to complexity of toolchains or even slow compiling
time. For example python-uvloop and python-lxml only take long time to
build with -Os optimization and this makes it seem a TIMEOUT but it's not.
So let's extend timeout setting from 120 to 180 minutes to avoid false
TIMEOUTs.

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
 scripts/autobuild-run | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Thomas Petazzoni Jan. 1, 2022, 10:50 a.m. UTC | #1
Hello Giulio,

On Fri,  1 Oct 2021 01:14:24 +0200
Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:

> During the last months some package started to timeout, but this is not due
> to toolchain infinite loop. I think it's due to the increase of the source
> code files' length and to complexity of toolchains or even slow compiling
> time. For example python-uvloop and python-lxml only take long time to
> build with -Os optimization and this makes it seem a TIMEOUT but it's not.
> So let's extend timeout setting from 120 to 180 minutes to avoid false
> TIMEOUTs.
> 
> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>

Do you have a specific example where you have seen a failure? Please
note that this HUNG_BUILD_TIMEOUT value is the per-step timeout: it
verifies that one step of one particular package doesn't take more than
120 minutes.

Unless you have a specific example where you have seen this timeout
causing false positives, I'm not really keen on applying such a patch
as it would cause situations where the build is really stuck to be
stuck for 3 hours instead of 2.

Did you identify that the python-uvloop and python-lxml packages really
took more than 2 hours to build? I did see at
http://autobuild.buildroot.net/?status=TIMEOUT those timeouts dating
back from ~November. Did you reproduce the issue, and verified that the
build indeed completes at some point? In general, if a simple package
such as python-uvloop or python-lxml takes more than 2 hours to build,
it means that the compiler (or linker) has gone crazy in an infinite
loop, and the build will in fact never finish.

Best regards,

Thomas
Giulio Benetti Jan. 1, 2022, 3:10 p.m. UTC | #2
Hi Thomas,

On 01/01/22 11:50, Thomas Petazzoni wrote:
> Hello Giulio,
> 
> On Fri,  1 Oct 2021 01:14:24 +0200
> Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
> 
>> During the last months some package started to timeout, but this is not due
>> to toolchain infinite loop. I think it's due to the increase of the source
>> code files' length and to complexity of toolchains or even slow compiling
>> time. For example python-uvloop and python-lxml only take long time to
>> build with -Os optimization and this makes it seem a TIMEOUT but it's not.
>> So let's extend timeout setting from 120 to 180 minutes to avoid false
>> TIMEOUTs.
>>
>> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> 
> Do you have a specific example where you have seen a failure?

Not anymore, it's been only in September. 2 days ago I was right 
thinking about dropping this patch when checking patchwork.

> Please
> note that this HUNG_BUILD_TIMEOUT value is the per-step timeout: it
> verifies that one step of one particular package doesn't take more than
> 120 minutes.

Ah, I thought the entire build, but that makes no sense since some build 
can take way more than 2 hours.

> Unless you have a specific example where you have seen this timeout
> causing false positives, I'm not really keen on applying such a patch
> as it would cause situations where the build is really stuck to be
> stuck for 3 hours instead of 2.

Yes, I see you've already marked it as rejected.

> Did you identify that the python-uvloop and python-lxml packages really
> took more than 2 hours to build? I did see at
> http://autobuild.buildroot.net/?status=TIMEOUT those timeouts dating
> back from ~November. Did you reproduce the issue, and verified that the
> build indeed completes at some point? In general, if a simple package
> such as python-uvloop or python-lxml takes more than 2 hours to build,
> it means that the compiler (or linker) has gone crazy in an infinite
> loop, and the build will in fact never finish.

It was only my suspicious as specified in commit log. I couldn't 
reproduce it and I thought it was due to the autobuilder's host.

And yes, now that I know it's a per-step timeout it doesn't make sense 
at all for such little packages.

Thank you
Best regards
Thomas Petazzoni Jan. 1, 2022, 8:09 p.m. UTC | #3
Hello,

On Sat, 1 Jan 2022 16:10:09 +0100
Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:

> > Please
> > note that this HUNG_BUILD_TIMEOUT value is the per-step timeout: it
> > verifies that one step of one particular package doesn't take more than
> > 120 minutes.  
> 
> Ah, I thought the entire build, but that makes no sense since some build 
> can take way more than 2 hours.

There used to be a global timeout for the build, but we had false
positives when really large configurations were built. Due to this,
commit 86892c63f754b4f6c9a4a517fde30160127b3506 change to a more fine
grained timeout: we monitor the file build-time.log (which gets
appended everytime the step of a package starts or ends), and we time
out after HUNG_BUILD_TIMEOUT minutes if that file hasn't changed;

> > Did you identify that the python-uvloop and python-lxml packages really
> > took more than 2 hours to build? I did see at
> > http://autobuild.buildroot.net/?status=TIMEOUT those timeouts dating
> > back from ~November. Did you reproduce the issue, and verified that the
> > build indeed completes at some point? In general, if a simple package
> > such as python-uvloop or python-lxml takes more than 2 hours to build,
> > it means that the compiler (or linker) has gone crazy in an infinite
> > loop, and the build will in fact never finish.  
> 
> It was only my suspicious as specified in commit log. I couldn't 
> reproduce it and I thought it was due to the autobuilder's host.
> 
> And yes, now that I know it's a per-step timeout it doesn't make sense 
> at all for such little packages.

Yes, for such small packages, it clearly hints at a compiler/linker bug
that stays stuck in an infinite loop.

Thomas
Giulio Benetti Jan. 1, 2022, 8:43 p.m. UTC | #4
On 01/01/22 21:09, Thomas Petazzoni wrote:
> Hello,
> 
> On Sat, 1 Jan 2022 16:10:09 +0100
> Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
> 
>>> Please
>>> note that this HUNG_BUILD_TIMEOUT value is the per-step timeout: it
>>> verifies that one step of one particular package doesn't take more than
>>> 120 minutes.
>>
>> Ah, I thought the entire build, but that makes no sense since some build
>> can take way more than 2 hours.
> 
> There used to be a global timeout for the build, but we had false
> positives when really large configurations were built. Due to this,
> commit 86892c63f754b4f6c9a4a517fde30160127b3506 change to a more fine
> grained timeout: we monitor the file build-time.log (which gets
> appended everytime the step of a package starts or ends), and we time
> out after HUNG_BUILD_TIMEOUT minutes if that file hasn't changed;

Thank you for the explanation

>>> Did you identify that the python-uvloop and python-lxml packages really
>>> took more than 2 hours to build? I did see at
>>> http://autobuild.buildroot.net/?status=TIMEOUT those timeouts dating
>>> back from ~November. Did you reproduce the issue, and verified that the
>>> build indeed completes at some point? In general, if a simple package
>>> such as python-uvloop or python-lxml takes more than 2 hours to build,
>>> it means that the compiler (or linker) has gone crazy in an infinite
>>> loop, and the build will in fact never finish.
>>
>> It was only my suspicious as specified in commit log. I couldn't
>> reproduce it and I thought it was due to the autobuilder's host.
>>
>> And yes, now that I know it's a per-step timeout it doesn't make sense
>> at all for such little packages.
> 
> Yes, for such small packages, it clearly hints at a compiler/linker bug
> that stays stuck in an infinite loop.

Yes, that was the reason I was looking for in the beginning :-)

Best regards
diff mbox series

Patch

diff --git a/scripts/autobuild-run b/scripts/autobuild-run
index 346928f..0636368 100755
--- a/scripts/autobuild-run
+++ b/scripts/autobuild-run
@@ -176,7 +176,7 @@  else:
 
 # A number of packages can take > 60mins of build time (e.g
 # gst-ffmpeg, qt5webkit, mimic)
-HUNG_BUILD_TIMEOUT = 120 # mins
+HUNG_BUILD_TIMEOUT = 180 # mins
 VERSION = 1
 
 def rm_ro(f, p, _):