On Tue, May 21, 2019 at 03:15:17PM +0300, Ilya Maximets wrote:
> On 21.05.2019 2:13, Ben Pfaff wrote:
> > On Mon, May 20, 2019 at 04:29:38PM +0300, Ilya Maximets wrote:
> >> Sometimes it takes to long for CDN to reply in case of downloading
> >> of not frequently used kernels.
> >> For example, even on my local PC it fails to download linux-4.19.29
> >> at the first try:
> >>
> >>   $ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.29.tar.xz
> >>   Resolving cdn.kernel.org (cdn.kernel.org)... 151.101.1.176
> >>   Connecting to cdn.kernel.org |151.101.1.176|:443... connected.
> >>   HTTP request sent, awaiting response... 503 first byte timeout
> >>
> >> Example from TravisCI:
> >>   https://travis-ci.org/openvswitch/ovs/jobs/530247589
> >>
> >> It seems that CDN downloads the tar for that time to the nearby
> >> server and instant retry usually succeeds immediately.
> >>
> >> 503 is not a "fatal error" for wget and, unfortunately, wget on
> >> TravisCI is too old and we can't just use "--retry-on-http-error=503"
> >> to avoid failures in this case. So, let's just retry unconditionally.
> >> Fallback to the direct download if CDN fails twice.
> >>
> >> Fixes: ae6e4f12fcab ("travis: Speed up linux kernel downloads.")
> >> Signed-off-by: Ilya Maximets <[email protected]>
> >> ---
> >>  .travis/linux-build.sh | 6 +++++-
> >>  1 file changed, 5 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
> >> index d869713f7..c8c9748ac 100755
> >> --- a/.travis/linux-build.sh
> >> +++ b/.travis/linux-build.sh
> >> @@ -19,7 +19,11 @@ function install_kernel()
> >>          PREFIX="v2.6/longterm/v2.6.32"
> >>      fi
> >>  
> >> -    wget 
> >> https://cdn.kernel.org/pub/linux/kernel/${PREFIX}/linux-${1}.tar.xz
> >> +    cdn="https://cdn.";
> >> +    direct="https://www.";
> >> +    link="kernel.org/pub/linux/kernel/${PREFIX}/linux-${1}.tar.xz"
> >> +    # Download kernel sources. Try direct link on CDN failure.
> >> +    wget ${cdn}${link} || wget ${cdn}${link} || wget ${direct}${link}
> >>      tar xvf linux-${1}.tar.xz > /dev/null
> >>      cd linux-${1}
> >>      make allmodconfig
> > 
> > Acked-by: Ben Pfaff <[email protected]>
> > 
> > Since this is a bash-only script, the bash hacker in me wants to write
> > it something like:
> > 
> > url=https://cdn.kernel.org/pub/linux/kernel/${PREFIX}/linux-${1}.tar.xz
> > wget $url || wget $url || wget ${url/cdn/www}
> > 
> > Maybe that is too clever though.
> 
> I like your version. It's shorter and doesn't require additional variables.
> I updated the patch with that suggestion and pushed to master. Thanks.

OK, now I feel clever in a good way ;-)
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to