@dlb http_archive fetch fails with HTTP 202 from downloadmirror.intel.com, blocking all builds of //contrib/exe:envoy-static
Description
The Bazel external repository @dlb (registered in bazel/repositories.bzl) is
pinned to:
# bazel/repository_locations.bzl
dlb = dict(
version = "8.8.0",
sha256 = "564534254ef32bfed56e0a464c53fca0907e446b30929c253210e2c3d6de58b9",
urls = ["https://downloadmirror.intel.com/819078/dlb_linux_src_release_8.8.0.txz"],
),
downloadmirror.intel.com is currently returning HTTP 202 Accepted to
requests for this asset (no body). Bazel's HTTP downloader treats any non-2xx
OK status as fatal:
WARNING: Download from https://downloadmirror.intel.com/819078/dlb_linux_src_release_8.8.0.txz failed:
class com.google.devtools.build.lib.bazel.repository.downloader.UnrecoverableHttpException
GET returned 202 Accepted
ERROR: An error occurred during the fetch of repository 'dlb':
Error in download_and_extract: java.io.IOException: Error downloading
[https://downloadmirror.intel.com/819078/dlb_linux_src_release_8.8.0.txz]: GET returned 202 Accepted
ERROR: no such package '@@dlb//': ... GET returned 202 Accepted
ERROR: //contrib/dlb/source:dlb depends on @@dlb//:libdlb in repository @@dlb which failed to fetch.
ERROR: Analysis of target '//contrib/exe:envoy-static' failed; build aborted: Analysis failed
This breaks any build that pulls in //contrib/exe:envoy-static (and
presumably any release pipeline producing the contrib variant).
Affected versions
Reproduced on v1.38.0 and v1.38.1 (the DLB pin is unchanged between
them and across many prior releases). Likely affects all Envoy versions back
to when DLB was added to contrib.
Steps to reproduce
git clone https://github.com/envoyproxy/envoy
cd envoy
git checkout v1.38.1
bazel build //contrib/exe:envoy-static
Or, isolating the failing fetch:
$ for i in $(seq 1 20); do
curl -s -o /dev/null -w "attempt %02d: %{http_code} %{time_total}s\n" -I -L \
"https://downloadmirror.intel.com/819078/dlb_linux_src_release_8.8.0.txz"
sleep 5
done
attempt 01: 202 1.015s
attempt 02: 202 1.002s
attempt 03: 202 1.152s
... (20 / 20 returned 202 over ~100s, response times all ~1s)
Direct TLS verification confirms the response is genuinely from Intel
(certificate subject O=Intel Corporation, CN=downloadmirror.intel.com,
issuer Sectigo) — no corporate proxy interception involved:
subject: C=US; ST=California; O=Intel Corporation; CN=downloadmirror.intel.com
issuer: C=GB; O=Sectigo Limited; CN=Sectigo Public Server Authentication CA OV R36
SSL certificate verify ok.
Impact
- All builders behind proxies, in CI, or hitting cold edge-CDN POPs will see
this fail.
- The dependency is required transitively by
//contrib/exe:envoy-static
because of contrib/contrib_build_config.bzl's entry
"envoy.network.connection_balance.dlb": "//contrib/dlb/source:connection_balancer".
Excluding the contrib build is the only way to avoid @dlb.
- The 202 has been observed both as transient (a few 202s then 200) and as
persistent (20 / 20 over ~100s), suggesting the upstream behaviour is not
just CDN warm-up - downloadmirror.intel.com may have changed its
asset-serving semantics for this URL.
Environment
|
|
| Envoy version |
v1.38.1 (and v1.38.0) |
| Bazel |
7.7.1 (per .bazelversion) |
| OS |
Linux x86_64 |
@dlbhttp_archive fetch fails with HTTP 202 from downloadmirror.intel.com, blocking all builds of//contrib/exe:envoy-staticDescription
The Bazel external repository
@dlb(registered inbazel/repositories.bzl) ispinned to:
downloadmirror.intel.comis currently returning HTTP 202 Accepted torequests for this asset (no body). Bazel's HTTP downloader treats any non-2xx
OK status as fatal:
This breaks any build that pulls in
//contrib/exe:envoy-static(andpresumably any release pipeline producing the contrib variant).
Affected versions
Reproduced on v1.38.0 and v1.38.1 (the DLB pin is unchanged between
them and across many prior releases). Likely affects all Envoy versions back
to when DLB was added to contrib.
Steps to reproduce
git clone https://github.com/envoyproxy/envoy cd envoy git checkout v1.38.1 bazel build //contrib/exe:envoy-staticOr, isolating the failing fetch:
Direct TLS verification confirms the response is genuinely from Intel
(certificate subject
O=Intel Corporation, CN=downloadmirror.intel.com,issuer Sectigo) — no corporate proxy interception involved:
Impact
this fail.
//contrib/exe:envoy-staticbecause of
contrib/contrib_build_config.bzl's entry"envoy.network.connection_balance.dlb": "//contrib/dlb/source:connection_balancer".Excluding the contrib build is the only way to avoid
@dlb.persistent (20 / 20 over ~100s), suggesting the upstream behaviour is not
just CDN warm-up -
downloadmirror.intel.commay have changed itsasset-serving semantics for this URL.
Environment
.bazelversion)