Skip to content

@dlb http_archive fetch fails with HTTP 202 from downloadmirror.intel.com, blocking all builds of //contrib/exe:envoy-static #45491

Closed

Description

@izanami-01

@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

Activity

  1. agrawroh commented on Jun 7, 2026

    @agrawroh
    Member

    I'm seeing the same issue and had to disable this extension to get past it.

    cc @phlax as well.

  2. phlax commented on Jun 7, 2026

    @phlax
    Member

    yeah - i think we might have to disable this for now - not sure what usage is like

  3. bmv126 commented on Jun 8, 2026

    @bmv126

    Quick work around will be to download the tgz locally and then provide the path via --distdir option to bazel

  4. izanami-01 commented on Jun 8, 2026

    @izanami-01
    Author

    Workaround A: disable envoy.network.connection_balance.dlb (no DLB needed)

     X86_SKIP_CONTRIB_TARGETS = [
         "envoy.tls.key_providers.kae",
         "envoy.network.connection_balance.dlb"
     ]
    

    Workaround B: vendor the tarball in-tree, feed Bazel via --distdir

    1. download the URL pinned in bazel/repository_locations.bzl's dlb block and save the .txz
    2. The vendored file at distfiles/ must match upstream's pin for dlb in bazel/repository_locations.bzl sha256sum dlb_linux_src_release_8.8.0.txz -> EXPECTED_TXZ == EXPECTED_SHA
    3. Pass the dir to every bazel build invocation : --distdir=distfiles
  5. KBaichoo commented on Jun 9, 2026

    @KBaichoo
    Contributor

    I think the issue here is that there's now an AWS WAF infront that our mechanism doesn't work with.

    Given that we don't ship any other tarball in the codebase I think the solution is either:

    1. We host the mirror pinned somewhere else? Not sure where.
    2. We disable this extension for now until we can get in touch with some of the Intel folks

    cc @phlax WDYT?

  6. added
    contribPRs for contrig
    and removed
    triageIssue requires triage
    on Jun 9, 2026
  7. phlax commented on Jun 10, 2026

    @phlax
    Member

    as said offline - i think we need to disable this extension as a first step

    then open an issue - and invite either the intel devs or any users to pipe up

    if we can capture the bin and host it before next release we could reenable - but honestly this feels like abandonware

  8. added a commit that references this issue on Jun 11, 2026
    43ab2f6
  9. added a commit that references this issue on Jun 16, 2026
    3f94e03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions