summaryrefslogtreecommitdiffstats
path: root/bitbake/HEADER
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2017-07-17 15:25:10 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-21 09:26:37 +0100
commitc8f64501ad9198572d0a7815928068989ccff556 (patch)
tree9eac07d904ccc3b4b4e456b9e48ee2ae889e804f /bitbake/HEADER
parent882e85cd83affed95b747473b248aba99ccd25d6 (diff)
downloadpoky-c8f64501ad9198572d0a7815928068989ccff556.tar.gz
bitbake: fetch2/wget.py: improve error handling during sstate check
When the sstate is accessed via HTTP, the existence check can fail due to network issues, in which case bitbake silently continues without sstate. One such network issue is an HTTP server like Python's own SimpleHTTP which closes the TCP connection despite an explicit "Keep-Alive" in the HTTP request header. The server does that without a "close" in the HTTP response header, so the socket remains in the connection cache, leading to "urlopen failed: <urlopen error [Errno 9] Bad file descriptor>" (only visible in "bitbake -D -D" output) when trying to use the cached connection again. The connection might also get closed for other reasons (proxy, timeouts, etc.), so this is something that the client should be able to handle. This is achieved by checking for the error, removing the bad connection, and letting the check_status() method try again with a new connection. It is necessary to let the second attempt fail permanently, because bad proxy setups have been observed to also lead to such broken connections. In that case, we need to abort for real after trying twice, otherwise a build would just hang forever. [YOCTO #11782] (Bitbake rev: 6fa07752bbd3ac345cd8617da49a70e0b2dd565f) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/HEADER')
0 files changed, 0 insertions, 0 deletions