Skip to content

Commit 78bcbb0

Browse files
committed
Download the GCC artifacts from the HTTP server instead of FTP server.
The former seems much more stable, in case the cache becomes invalidated.
1 parent c19264f commit 78bcbb0

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/ci/docker/dist-i686-linux/build-gcc.sh

+17
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,23 @@ GCC=4.8.5
1717

1818
curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.bz2 | tar xjf -
1919
cd gcc-$GCC
20+
21+
# FIXME(#49246): Remove the `sed` below.
22+
#
23+
# On 2018 March 21st, two Travis builders' cache for Docker are suddenly invalidated. Normally this
24+
# is fine, because we just need to rebuild the Docker image. However, it reveals a network issue:
25+
# downloading from `ftp://gcc.gnu.org/` from Travis (using passive mode) often leads to "Connection
26+
# timed out" error, and even when the download completed, the file is usually corrupted. This causes
27+
# nothing to be landed that day.
28+
#
29+
# We observed that the `gcc-4.8.5.tar.bz2` above can be downloaded successfully, so as a stability
30+
# improvement we try to download from the HTTPS mirror instead. Turns out this uncovered the third
31+
# bug: the host `gcc.gnu.org` and `cygwin.com` share the same IP, and the TLS certificate of the
32+
# latter host is presented to `wget`! Therefore, we choose to download from the insecure HTTP server
33+
# instead here.
34+
#
35+
sed -i'' 's|ftp://gcc\.gnu\.org/|http://gcc.gnu.org/|g' ./contrib/download_prerequisites
36+
2037
./contrib/download_prerequisites
2138
mkdir ../gcc-build
2239
cd ../gcc-build

src/ci/docker/dist-x86_64-linux/build-gcc.sh

+17
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,23 @@ GCC=4.8.5
1717

1818
curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.bz2 | tar xjf -
1919
cd gcc-$GCC
20+
21+
# FIXME(#49246): Remove the `sed` below.
22+
#
23+
# On 2018 March 21st, two Travis builders' cache for Docker are suddenly invalidated. Normally this
24+
# is fine, because we just need to rebuild the Docker image. However, it reveals a network issue:
25+
# downloading from `ftp://gcc.gnu.org/` from Travis (using passive mode) often leads to "Connection
26+
# timed out" error, and even when the download completed, the file is usually corrupted. This causes
27+
# nothing to be landed that day.
28+
#
29+
# We observed that the `gcc-4.8.5.tar.bz2` above can be downloaded successfully, so as a stability
30+
# improvement we try to download from the HTTPS mirror instead. Turns out this uncovered the third
31+
# bug: the host `gcc.gnu.org` and `cygwin.com` share the same IP, and the TLS certificate of the
32+
# latter host is presented to `wget`! Therefore, we choose to download from the insecure HTTP server
33+
# instead here.
34+
#
35+
sed -i'' 's|ftp://gcc\.gnu\.org/|http://gcc.gnu.org/|g' ./contrib/download_prerequisites
36+
2037
./contrib/download_prerequisites
2138
mkdir ../gcc-build
2239
cd ../gcc-build

0 commit comments

Comments
 (0)