wget.py: use a longer timeout in checkstatus()

Message ID 20220209214018.363691-1-alex@linutronix.de
State New
Headers show
Series wget.py: use a longer timeout in checkstatus() | expand

Commit Message

Alexander Kanavin Feb. 9, 2022, 9:40 p.m. UTC
The addition of 30 second timeout is recent [1], and has
proved not long enough with the AB server when mass-checking
for sstate item availability, resulting in timeout errors with
extensible SDKs[2].

[1]
https://git.yoctoproject.org/poky/commit/?id=2c46245f449d2716566ef668da0bf48f2109643a
[2]
https://autobuilder.yoctoproject.org/typhoon/#/builders/53/builds/4710/steps/16/logs/stdio

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 bitbake/lib/bb/fetch2/wget.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Richard Purdie Feb. 9, 2022, 9:47 p.m. UTC | #1
On Wed, 2022-02-09 at 22:40 +0100, Alexander Kanavin wrote:
> The addition of 30 second timeout is recent [1], and has
> proved not long enough with the AB server when mass-checking
> for sstate item availability, resulting in timeout errors with
> extensible SDKs[2].
> 
> [1]
> https://git.yoctoproject.org/poky/commit/?id=2c46245f449d2716566ef668da0bf48f2109643a
> [2]
> https://autobuilder.yoctoproject.org/typhoon/#/builders/53/builds/4710/steps/16/logs/stdio
> 
> Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> ---
>  bitbake/lib/bb/fetch2/wget.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/bitbake/lib/bb/fetch2/wget.py b/bitbake/lib/bb/fetch2/wget.py
> index 253cabce75..2a7592ae5f 100644
> --- a/bitbake/lib/bb/fetch2/wget.py
> +++ b/bitbake/lib/bb/fetch2/wget.py
> @@ -366,7 +366,7 @@ class Wget(FetchMethod):
>                  except (TypeError, ImportError, IOError, netrc.NetrcParseError):
>                      pass
>  
> -                with opener.open(r, timeout=30) as response:
> +                with opener.open(r, timeout=300) as response:
>                      pass
>              except urllib.error.URLError as e:
>                  if try_again:


We need to fix the servers. I doubt that at 300s it would work much better but
the user experience would be horrible with builds hanging at startup for 5
minutes.

Cheers,

Richard
Alexander Kanavin Feb. 9, 2022, 10:01 p.m. UTC | #2
On Wed, 9 Feb 2022 at 22:47, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:

> We need to fix the servers. I doubt that at 300s it would work much better but
> the user experience would be horrible with builds hanging at startup for 5
> minutes.

The tracebacks are showing both straightforward timeouts, and timeouts
while handling a server 503 error (presumably urllib has a built-in
retry mechanism which is thwarted by the 30 sec timeout). I guess I
mostly wanted to see if bumping the timeout value resolves those
errors, and in at least in my a-full they did not show up.

Checking the server logs would be helpful: they probably do say
something useful when issuing 503.

Alex

Patch

diff --git a/bitbake/lib/bb/fetch2/wget.py b/bitbake/lib/bb/fetch2/wget.py
index 253cabce75..2a7592ae5f 100644
--- a/bitbake/lib/bb/fetch2/wget.py
+++ b/bitbake/lib/bb/fetch2/wget.py
@@ -366,7 +366,7 @@  class Wget(FetchMethod):
                 except (TypeError, ImportError, IOError, netrc.NetrcParseError):
                     pass
 
-                with opener.open(r, timeout=30) as response:
+                with opener.open(r, timeout=300) as response:
                     pass
             except urllib.error.URLError as e:
                 if try_again: