[OE-core] Connectivity check uris

Jean-Marie LEMETAYER jean-marie.lemetayer at savoirfairelinux.com
Thu Jan 23 14:22:21 UTC 2020


On Jan 23, 2020, at 2:26 PM, Richard Purdie richard.purdie at linuxfoundation.org wrote:
> On Thu, 2020-01-23 at 08:14 -0500, Jean-Marie LEMETAYER wrote:
>> Hi folks,
>> 
>> I have noticed some hang-ups at the beginning of my builds on the
>> master branch.
>> I have search a little and discovered that the connectivity check
>> made by poky
>> was the root cause. In fact connectivity check use the
>> CONNECTIVITY_CHECK_URIS
>> variable which is by default set to "https://www.example.com/".
>> 
>> So I have made some tests with a little script which gets the URI 100
>> times:
>> 
>> 	$ cat connectivity_check.sh
>> 	#!/bin/sh
>> 	connectivity_check()
>> 	{
>> 		local ok=0
>> 		for i in $(seq 100)
>> 		do
>> 			$@ > /dev/null && ok=$(($ok + 1))
>> 		done
>> 		echo $ok $@
>> 	}
>> 	connectivity_check wget -qO- --timeout=1 --tries=1 $1
>> 	connectivity_check curl -s --connect-timeout 1 $1
>> 
>> Note that in the script, I use wget and curl to see if there are any
>> differences
>> but I don't think that's a thing.
>> 
>> Here are the results:
>> 	$ time ./connectivity_check.sh https://example.com
>> 	45 wget -qO- --timeout=1 --tries=1 https://example.com
>> 	45 curl -s --connect-timeout 1 https://example.com
>> 
>> 	real	2m23.595s
>> 	user	0m3.352s
>> 	sys	0m1.834s
>> 
>> 	$ time ./connectivity_check.sh https://openembedded.org
>> 	100 wget -qO- --timeout=1 --tries=1 https://openembedded.org
>> 	100 curl -s --connect-timeout 1 https://openembedded.org
>> 
>> 	real	4m36.188s
>> 	user	0m3.853s
>> 	sys	0m1.761s
>> 
>> 	$ time ./connectivity_check.sh https://google.com
>> 	100 wget -qO- --timeout=1 --tries=1 https://google.com
>> 	100 curl -s --connect-timeout 1 https://google.com
>> 
>> 	real	0m36.328s
>> 	user	0m4.265s
>> 	sys	0m2.028s
>> 
>> So "example.com" is clearly not a good domain to do connectivity
>> checks.
>> 
>> The "openembedded.org" domain is good but have a slow response time.
>> 
>> And finally "google.com" which have all sort of speedy networking
>> stuff is very
>> efficient.
>> 
>> ---
>> 
>> I think the CONNECTIVITY_CHECK_URIS variable must be updated and not
>> use the
>> "example.com" domain anymore. Using "google.com" may be the best
>> option. But
>> eetting up a custom domain like "connectivitycheck.openembedded.org"
>> could be
>> another idea.
>> 
>> Any ideas
> 
> I think if you look at the history we did use google.com however that
> caused problems for people in geos where that is blocked (e.g. PRC).
> 
> We may want to move the default back given the performance isse, not
> sure...

I understand the issue with blocked domains this is why I suggest the
custom domain "connectivitycheck.openembedded.org".

But I dont know if it could be an option. Can OE have a sub-domain like
that? maybe using some cdn to handle the load?

Another option will be to provide multiple URIs:
    CONNECTIVITY_CHECK_URIS ?= " \
        https://google.com \
        https://www.bing.com \
        https://www.baidu.com \
    "

Best regards,
Jean-Marie


More information about the Openembedded-core mailing list