Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cargo download dependency failed "send: no filter connected" #12202

Closed
yuyang-ok opened this issue May 30, 2023 · 37 comments · Fixed by #12234
Closed

Cargo download dependency failed "send: no filter connected" #12202

yuyang-ok opened this issue May 30, 2023 · 37 comments · Fixed by #12234
Labels
A-networking Area: networking issues, curl, etc. C-bug Category: bug S-needs-info Status: Needs more info, such as a reproduction or more background for a feature request.

Comments

@yuyang-ok
Copy link

yuyang-ok commented May 30, 2023

Problem

Cargo download dependency failed

This issue I filed on rust forum before, But I didn't get enough useful information.


Edited by a maintainer

The error may look like:

% cargo t -v

**error****:** failed to download from `https://crates.io/api/v1/crates/zstd-sys/2.0.7+zstd.1.5.4/download`

Caused by:

[2] Failed initialization ([CONN-1-0] send: no filter connected)

This is due to a bug in some bad versions of libcurl, whose HTTP/2 multiplexing is not compatible with http proxy settings. The affected versions are:

  • 7.87.0
  • 7.88.0
  • 7.88.1

If you're on macOS and your system libcurl is included, we suggest

  • either using Rust version 1.71, beta-2023-06-09, nightly-2023-06-11 or newer
  • or disabling http.multiplexing manually in .cargo/config.toml or CARGO_HTTP_MULTIPLEXING=false.
@yuyang-ok yuyang-ok added C-bug Category: bug S-triage Status: This issue is waiting on initial triage. labels May 30, 2023
@weihanglo
Copy link
Member

Hello. Looks like you're using Rust 1.68.2. Can you try the prerelease stable version to see if the issue persists? We had some significant problems with curl 7.87 and 7.88. In Rust 1.70.0, we bumped curl to 8.0.1.

@weihanglo weihanglo added S-needs-info Status: Needs more info, such as a reproduction or more background for a feature request. and removed S-triage Status: This issue is waiting on initial triage. labels May 30, 2023
@yuyang-ok
Copy link
Author

@weihanglo Thanks , but the rust toolchain configuration is written via rust-toolchain.toml in a lot open source project .

yuyang@yuyangdeMacBook-Pro deno % cat rust-toolchain.toml 
[toolchain]
channel = "1.68.2"
components = ["rustfmt", "clippy"]

I think it is hard to modify this file.

@weihanglo
Copy link
Member

Could you provide a minimal reproducible example for it? I am a bit astray without any actual example 😅. It would also be better if you could share the full version info via cargo -vV. Thank you!

@yuyang-ok
Copy link
Author

@weihanglo sure

yuyang@yuyangdeMacBook-Pro wasmtime % cargo -vV 
cargo 1.70.0 (ec8a8a0ca 2023-04-25)
release: 1.70.0
commit-hash: ec8a8a0cabb0e0cadef58902470f6c7ee7868bdc
commit-date: 2023-04-25
host: x86_64-apple-darwin
libgit2: 1.6.3 (sys:0.17.0 vendored)
libcurl: 7.88.1 (sys:0.4.61+curl-8.0.1 system ssl:(SecureTransport) LibreSSL/3.3.6)
os: Mac OS 13.4.0 [64-bit]

@weihanglo
Copy link
Member

Sorry I am a bit confused.

  • With which version you encountered this issue?
  • Have configured Cargo somewhere in your system? Can you share the output from cargo +nightly -Z unstable-options config get? (Note that I might contain sensitive data)
  • Also, Could you provide a minimal reproducible example?

@yuyang-ok
Copy link
Author

yuyang@yuyangdeMacBook-Pro wasmtime % cargo +nightly -Z unstable-options config get
incremental = true
target.x86_64-apple-darwin.rustflags = ["-C", "link-arg=-fuse-ld=lld"]
# The following environment variables may affect the loaded values.
# CARGO_HOME=/Users/yuyang/.cargo

@yuyang-ok
Copy link
Author

yuyang-ok commented Jun 2, 2023

Also, Could you provide a minimal reproducible example?

I try to minimal a project to reproduce this, But this problem is gone.


yuyang@yuyangdeMacBook-Pro abc-rust % cargo b 
warning: version requirement `2.0.7+zstd.1.5.4` for dependency `zstd-sys` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
    Finished dev [unoptimized + debuginfo] target(s) in 0.05s
yuyang@yuyangdeMacBook-Pro abc-rust % cat Cargo.toml 
[package]
name = "abc-rust"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
zstd-sys="2.0.7+zstd.1.5.4"

I have a Cargo project works fine past days , I don't know what happened to my toolchain make it not working again.
A little wried to me too.

@yuyang-ok
Copy link
Author

This comes from a big open source project , I didn't know how to minimal it.

@weihanglo

@yuyang-ok
Copy link
Author

more project have this issue now on my local machine.
I just clone the RustPython project.

yuyang@yuyangdeMacBook-Pro RustPython % cargo check 
error: failed to download from `https://crates.io/api/v1/crates/xml-rs/0.8.4/download`

Caused by:
  [2] Failed initialization ([CONN-1-0] send: no filter connected)

@weihanglo
Copy link
Member

Have you ever configured any HTTP Proxies like https_proxy? See #11746. It should already be fixed in the current stable (1.70.0). Could you give in a shot again?
Sorry I was confused since you posted #12202 (comment) saying 1.70.0 is in use.

@yuyang-ok
Copy link
Author

yuyang@yuyangdeMacBook-Pro RustPython % cat ~/.cargo/config.toml 

#[http]
#proxy = "127.0.0.1:7890"

#[https]
#proxy = "127.0.0.1:7890"

incremental = true

[target.x86_64-apple-darwin]
rustflags = [
    "-C", "link-arg=-fuse-ld=lld",
]
yuyang@yuyangdeMacBook-Pro RustPython % echo $https_proxy

yuyang@yuyangdeMacBook-Pro RustPython % echo $http_proxy 

yuyang@yuyangdeMacBook-Pro RustPython % 

I think I have not define proxy server.

@weihanglo
Copy link
Member

Can you verify which version of Cargo you're using. Perhaps run cargo +stable -vV and cargo +stable install mdbook to forced override the toolchain you use.

@yuyang-ok
Copy link
Author


yuyang@yuyangdeMacBook-Pro RustPython %  cargo +stable -vV
cargo 1.70.0 (ec8a8a0ca 2023-04-25)
release: 1.70.0
commit-hash: ec8a8a0cabb0e0cadef58902470f6c7ee7868bdc
commit-date: 2023-04-25
host: x86_64-apple-darwin
libgit2: 1.6.3 (sys:0.17.0 vendored)
libcurl: 7.88.1 (sys:0.4.61+curl-8.0.1 system ssl:(SecureTransport) LibreSSL/3.3.6)
os: Mac OS 13.4.0 [64-bit]
yuyang@yuyangdeMacBook-Pro RustPython % cargo +stable install mdbook
    Updating crates.io index
  Downloaded mdbook v0.4.30
  Downloaded 1 crate (1.5 MB) in 8.44s
  Installing mdbook v0.4.30
    Updating crates.io index
error: failed to compile `mdbook v0.4.30`, intermediate artifacts can be found at `/var/folders/t7/3ycnpkws3d99q3dr1jtp9m280000gn/T/cargo-installQZEtpx`

Caused by:
  failed to download from `https://crates.io/api/v1/crates/warp/0.3.5/download`

Caused by:
  [2] Failed initialization ([CONN-1-0] send: no filter connected)
yuyang@yuyangdeMacBook-Pro RustPython % 

@weihanglo
Copy link
Member

weihanglo commented Jun 2, 2023

Something from the previous issue #11746 that could help the investigation.

  • Logs with CARGO_HTTP_DEBUG=true and CARGO_LOG=cargo::ops::registry=trace and attach the log here as a zip or on a gist.github.com post (see http.debug)
  • Set CARGO_HTTP_MULTIPLEXING=false and try it again.
  • Was your toolchain installed from https://rustup.rs? If not could you try installing from there and try it agakn?
  • Check or HTTPS_PROXY or HTTP_PROXY as well.
  • I still suspect it's curl's issue. Could you try different versions of curl, say 7.87, 7.88.1 (contains some bugs), 8.0.1 (the current) and 8.1.2 (this PR), to see if the works correctly under the same environment?

@weihanglo weihanglo added the A-networking Area: networking issues, curl, etc. label Jun 2, 2023
@yuyang-ok
Copy link
Author

abc.log.txt
abc2.log.txt

Was your toolchain installed from https://rustup.rs/? If not could you try installing from there and try it agakn?

I installed toolchain from here.

Hello. Looks like you're using Rust 1.68.2. Can you try the prerelease stable version to see if the issue persists? We had some significant problems with curl 7.87 and 7.88. In Rust 1.70.0, we bumped curl to 8.0.1.

yuyang@yuyangdeMacBook-Pro RustPython % echo $HTTPS_PROXY     

yuyang@yuyangdeMacBook-Pro RustPython % echo $HTTP_PROXY 

yuyang@yuyangdeMacBook-Pro RustPython % 

@yuyang-ok
Copy link
Author

yuyang-ok commented Jun 2, 2023

I still suspect it's curl's issue. Could you try different versions of curl, say 7.87, 7.88.1 (contains some bugs), 8.0.1 (the current) and 8.1.2 (this PR), to see if the works correctly under the same environment?

How can I try another version of curl,curl is ship with cargo?

@weihanglo
Copy link
Member

Download them and try something like curl -L -v https://crates.io/api/v1/crates/empty-library/1.0.0/download to see if it suffers from the same issue.

@yuyang-ok
Copy link
Author

yuyang@yuyangdeMacBook-Pro RustPython % curl -L -v https://crates.io/api/v1/crates/empty-library/1.0.0/download
*   Trying [2600:9000:2251:1800:c:7ed3:240:93a1]:443...
*   Trying 108.157.14.24:443...
* Connected to crates.io (2600:9000:2251:1800:c:7ed3:240:93a1) port 443 (#0)
* ALPN: offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-AES128-GCM-SHA256
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=crates.io
*  start date: Jan 25 00:00:00 2023 GMT
*  expire date: Feb 23 23:59:59 2024 GMT
*  subjectAltName: host "crates.io" matched cert's "crates.io"
*  issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M02
*  SSL certificate verify ok.
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /api/v1/crates/empty-library/1.0.0/download]
* h2h3 [:scheme: https]
* h2h3 [:authority: crates.io]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x7f9dca009200)
> GET /api/v1/crates/empty-library/1.0.0/download HTTP/2
> Host: crates.io
> user-agent: curl/7.88.1
> accept: */*
> 
< HTTP/2 302 
< content-length: 0
< location: https://static.crates.io/crates/empty-library/empty-library-1.0.0.crate
< server: nginx
< date: Fri, 02 Jun 2023 07:45:15 GMT
< x-content-type-options: nosniff
< x-frame-options: SAMEORIGIN
< x-xss-protection: 0
< content-security-policy: default-src 'self'; connect-src 'self' *.ingest.sentry.io https://docs.rs https://play.rust-lang.org https://static.crates.io; script-src 'self' 'unsafe-eval' 'sha256-n1+BB7Ckjcal1Pr7QNBh/dKRTtBQsIytFodRiIosXdE='; style-src 'self' 'unsafe-inline' https://code.cdn.mozilla.net; font-src https://code.cdn.mozilla.net; img-src *; object-src 'none'
< access-control-allow-origin: *
< strict-transport-security: max-age=31536000; includeSubDomains
< via: 1.1 vegur, 1.1 231be1c97cc722fa08b64d21072ebfac.cloudfront.net (CloudFront)
< vary: Accept,Accept-Encoding,Cookie
< x-cache: Miss from cloudfront
< x-amz-cf-pop: FRA60-P3
< x-amz-cf-id: L5uW-Di7z0ZpVTFY2GulO4kKeNKm-rbK1c3xMqdlbATxXdyhKRz1Lg==
< 
* Connection #0 to host crates.io left intact
* Issue another request to this URL: 'https://static.crates.io/crates/empty-library/empty-library-1.0.0.crate'
*   Trying [2600:9000:2490:7e00:1b:d7a6:ee00:93a1]:443...
*   Trying 108.138.7.56:443...
* Connected to static.crates.io (2600:9000:2490:7e00:1b:d7a6:ee00:93a1) port 443 (#1)
* ALPN: offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-AES128-GCM-SHA256
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=crates.io
*  start date: Jan 25 00:00:00 2023 GMT
*  expire date: Feb 23 23:59:59 2024 GMT
*  subjectAltName: host "static.crates.io" matched cert's "static.crates.io"
*  issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M02
*  SSL certificate verify ok.
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /crates/empty-library/empty-library-1.0.0.crate]
* h2h3 [:scheme: https]
* h2h3 [:authority: static.crates.io]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x7f9dca009200)
> GET /crates/empty-library/empty-library-1.0.0.crate HTTP/2
> Host: static.crates.io
> user-agent: curl/7.88.1
> accept: */*
> 
< HTTP/2 200 
< content-type: application/x-tar
< content-length: 694
< date: Wed, 12 Apr 2023 08:51:59 GMT
< last-modified: Fri, 12 Jun 2020 11:21:04 GMT
< etag: "defba09aab9605c8d20b730209098f8e"
< cache-control: public,max-age=31536000,immutable
< x-amz-version-id: kP7vb86ei24Mtjw9SfuiZNLL5ulPgya2
< accept-ranges: bytes
< server: AmazonS3
< x-cache: Hit from cloudfront
< via: 1.1 bb5a1c03f2335d92378a3e68542733da.cloudfront.net (CloudFront)
< x-amz-cf-pop: FRA56-P6
< x-amz-cf-id: wyGAGOzg6QxfRfJswCYqatAnCOLd3NBVduEM1Ugx9Jq_xPj65jFUIA==
< age: 4402397
< 
Warning: Binary output can mess up your terminal. Use "--output -" to tell 
Warning: curl to output it to your terminal anyway, or consider "--output 
Warning: <FILE>" to save to a file.
* Failure writing output to destination
* Connection #1 to host static.crates.io left intact
yuyang@yuyangdeMacBook-Pro RustPython % 

@yuyang-ok
Copy link
Author

@weihanglo Sorry more projects not working now.

yuyang@yuyangdeMacBook-Pro move % cargo check 
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /Volumes/sanDisk/projects/move/language/move-analyzer/Cargo.toml
workspace: /Volumes/sanDisk/projects/move/Cargo.toml
error: failed to download from `https://crates.io/api/v1/crates/zeroize_derive/1.2.0/download`

Caused by:
  [2] Failed initialization ([CONN-1-0] send: no filter connected)
yuyang@yuyangdeMacBook-Pro move % 

@weihanglo
Copy link
Member

weihanglo commented Jun 3, 2023

Looking into your log provided here. You were still using a proxy perhaps.

*   Trying 127.0.0.1:7890...
* Connected to 127.0.0.1 (127.0.0.1) port 7890 (#0)
* allocate connect buffer
* Establish HTTP proxy tunnel to index.crates.io:443
> CONNECT index.crates.io:443 HTTP/1.1
> Host: index.crates.io:443
> User-Agent: cargo 1.70.0 (ec8a8a0ca 2023-04-25)
> Proxy-Connection: Keep-Alive

...

* Found bundle for host: 0x6000021df9c0 [can multiplex]
* client side MAX_CONCURRENT_STREAMS reached, skip (100)
* Multiplexed connection found
* Re-using existing connection #1 with proxy 127.0.0.1
* Transfer was pending, now try another
* [CONN-1-0] send: no filter connected
* Failed sending HTTP request

Could you try again with either

Please share what you find after your attempts.

@CLaSLoVe
Copy link

CLaSLoVe commented Jun 4, 2023

I experienced the same problem after using cargo add [email protected]. I tried proxy and different sources, but it doesn't work.

@yuyang-ok
Copy link
Author

When I quit my proxy server clash .
I get this error.

warning: spurious network error (1 tries remaining): [7] Couldn't connect to server (Failed to connect to 127.0.0.1 port 7890 after 0 ms: Couldn't connect to server)
warning: spurious network error (1 tries remaining): [7] Couldn't connect to server (Failed to connect to 127.0.0.1 port 7890 after 0 ms: Couldn't connect to server)
warning: spurious network error (1 tries remaining): [7] Couldn't connect to server (Failed to connect to 127.0.0.1 port 7890 after 0 ms: Couldn't connect to server)
warning: spurious network error (1 tries remaining): [7] Couldn't connect to server (Failed to connect to 127.0.0.1 port 7890 after 0 ms: Couldn't connect to server)
warning: spurious network error (1 tries remaining): [7] Couldn't connect to serve

I checked my config.toml I have remove the proxy setttings.

yuyang@yuyangdeMacBook-Pro wasmtime % cargo +nightly -Z unstable-options config get
incremental = true
target.x86_64-apple-darwin.rustflags = ["-C", "link-arg=-fuse-ld=lld"]
# The following environment variables may affect the loaded values.
# CARGO_HOME=/Users/yuyang/.cargo

@yuyang-ok
Copy link
Author

yuyang-ok commented Jun 4, 2023

Set CARGO_HTTP_MULTIPLEXING=false as I #12202 (comment)
1573277607

Sorry.

abc.log.txt

@CLaSLoVe
Copy link

CLaSLoVe commented Jun 4, 2023

I set the mirror source:
`[source.crates-io]
replace-with = 'ustc'

[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"`

and finally solve the problem with unset proxy in zsh (registry ustc):
`export http_proxy=

export https_proxy=`

and

`export HTTP_PROXY=

export HTTPS_PROXY=`

maybe this will help.

@XOR-op
Copy link

XOR-op commented Jun 4, 2023

It looks like a bug mostly for macOS since it's shipped with curl v7.88.1 on the latest Ventura 13.4. And curl v7.88.1 has some bugs mentioned in #11746. For me CARGO_HTTP_MULTIPLEXING=false solves the problem.

@yuyang-ok
Copy link
Author

@XOR-op @weihanglo Thanks, CARGO_HTTP_MULTIPLEXING=false worked.

@mouse07410
Copy link

mouse07410 commented Jun 5, 2023

I'm on the latest MacOS, and observe the same problem. It manifest itself with a few crates, but not with all of them - which is surprising to me.

I have correctly configured proxy, which works for Git and everything else. My curl is 8.1.2 - latest stable, installed via Macports.

I haven't tried yet CARGO_HTTP_MULTIPLEXING=false

@XOR-op
Copy link

XOR-op commented Jun 5, 2023

@mouse07410 That is because you have added the PATH of curl 8.1.2 to your shell. However, for libcurl, I doubt whether cargo will follow any of the environment variable suggests. I guess it uses the OS-default curl directly, whose version is 7.88.1.

@weihanglo
Copy link
Member

It manifest itself with a few crates, but not with all of them - which is surprising to me.

It might also be some crates are already cached.

@mouse07410
Copy link

It manifest itself with a few crates, but not with all of them - which is surprising to me.

It might also be some crates are already cached.

I hear you - but I doubt that updated crates being installed via cargo install-update would've been already present in the local cache...

That is because you have added the PATH of curl 8.1.2 to your shell. However, for libcurl, I doubt whether cargo will follow any of the environment variable suggests. I guess it uses the OS-default curl directly, whose version is 7.88.1.

That's rather unpleasant. Is there anything we (I - via local config, or you - via cargo sources) can do to remedy this?

@weihanglo
Copy link
Member

I hear you - but I doubt that updated crates being installed via cargo install-update would've been already present in the local cache...

It depends. Some .crate files might be downloaded already and stored in ~/.cargo/registry/cache

Is there anything we (I - via local config, or you - via cargo sources) can do to remedy this?

I am collecting information and working on a possible workaround. Please help confirm whether CARGO_HTTP_MULTIPLEXING=false works for you.

@mouse07410
Copy link

It depends.

I understand, but:

Some .crate files might be downloaded already and stored in ~/.cargo/registry/cache

I fail to see how, if a crate on the server got updated since my last refresh, and I'm trying to upgrade my local set, that updated crate would somehow be already downloaded to my machine.

Please help confirm whether CARGO_HTTP_MULTIPLEXING=false works for you.

Would be happy to. Two obstacles, however:

  1. I don't know how to test it until the next update of any relevant crate at https://crates.io happens.
  2. Since only some crates cause the above error, it's unclear that even a successful next update would be a conclusive proof that this workaround indeed works.

@weihanglo
Copy link
Member

Hi, all!

The beta backport of #12234 just got merged — rust-lang/rust#112421. If everything goes well, rustc 1.71.0-beta.3 or some version should include that fix. I'll let you know once it comes to live. Thank you!

@yuyang-ok
Copy link
Author

@weihanglo Thanks.

@weihanglo
Copy link
Member

Hello everyone. The fix should be available in beta-2023-06-09. Please rustup install beta-2023-06-09 and test it with cargo +beta-2023-06-09 <subcommand>. Thanks :)

@lcmgh
Copy link

lcmgh commented Jun 12, 2023

Hello everyone. The fix should be available in beta-2023-06-09. Please rustup install beta-2023-06-09 and test it with cargo +beta-2023-06-09 . Thanks :)

This fixed the issue on my side.

@weihanglo weihanglo changed the title Cargo download dependency failed Cargo download dependency failed "send: no filter connected" Jun 12, 2023
@mouse07410
Copy link

OK, my (final) feedback on the released (1.70..0) toolchain:

  • adding provider = "git" to ~/.cargo/config did not help;
  • setting env var CARGO_HTTP_MULTIPLEXING=false helped.

Looking forward to seeing 1.71.0 released. ;-)

NiklasRosenstein added a commit to kraken-build/kraken that referenced this issue Jul 13, 2023
…ked via the Cargo auth proxy task. This is to work around an issue with Cargo HTTP/2 multi-plexing (see rust-lang/cargo#12202).
NiklasRosenstein added a commit to kraken-build/kraken that referenced this issue Jul 13, 2023
…ked via the Cargo auth proxy task. This is to work around an issue with Cargo HTTP/2 multi-plexing (see rust-lang/cargo#12202). (#75)

* kraken-std/: improvement: Add `--no-http2` to the mitmproxy when invoked via the Cargo auth proxy task. This is to work around an issue with Cargo HTTP/2 multi-plexing (see rust-lang/cargo#12202).

* Updated PR references in 0 changelogs.

skip-checks: true

---------

Co-authored-by: GitHub Action <[email protected]>
openstack-mirroring pushed a commit to openstack/charm-octavia-diskimage-retrofit that referenced this issue Oct 2, 2023
This is a work-around for charm build failures resulting in:
"Cargo download dependency failed "send: no filter connected".

This is documented in the following upstream issue:
rust-lang/cargo#12202

This affects lunar builds where the curl version is 7.88.1.

Thanks to Colin Watson for help with figuring this out.

Closes-Bug: #2037589
Change-Id: I8d48de1e7f7c9f517f6759139610b2451c131c80
openstack-mirroring pushed a commit to openstack/openstack that referenced this issue Oct 2, 2023
* Update charm-octavia-diskimage-retrofit from branch 'master'
  to bbd0e0e253de88bce458ca297495eb7005d2479c
  - Work-around for Cargo download dependency failed
    
    This is a work-around for charm build failures resulting in:
    "Cargo download dependency failed "send: no filter connected".
    
    This is documented in the following upstream issue:
    rust-lang/cargo#12202
    
    This affects lunar builds where the curl version is 7.88.1.
    
    Thanks to Colin Watson for help with figuring this out.
    
    Closes-Bug: #2037589
    Change-Id: I8d48de1e7f7c9f517f6759139610b2451c131c80
Lctrs added a commit to Lctrs/composer that referenced this issue Nov 22, 2024
I'm behind a corporate proxy and was hitting a `Curl 2 (...) [CONN-1-0] send: no filter connected` error when trying to download some packages.

Some google research led me to rust-lang/cargo#12202 and its fix rust-lang/cargo#12234.

This PR backports this fix to composer.

> In certain versions of libcurl when proxy is in use with HTTP/2
multiplexing, connections will continue stacking up. This was
fixed in libcurl 8.0.0 in curl/curl@821f6e2
Lctrs added a commit to Lctrs/composer that referenced this issue Nov 22, 2024
I'm behind a corporate proxy and was hitting a `Curl 2 (...) [CONN-1-0] send: no filter connected` error when trying to download some packages.

Some google research led me to rust-lang/cargo#12202 and its fix rust-lang/cargo#12234.

This PR backports this fix to composer.

> In certain versions of libcurl when proxy is in use with HTTP/2
multiplexing, connections will continue stacking up. This was
fixed in libcurl 8.0.0 in curl/curl@821f6e2
Seldaek pushed a commit to composer/composer that referenced this issue Nov 25, 2024
* disable multiplexing for some versions of curl

I'm behind a corporate proxy and was hitting a `Curl 2 (...) [CONN-1-0] send: no filter connected` error when trying to download some packages.

Some google research led me to rust-lang/cargo#12202 and its fix rust-lang/cargo#12234.

This PR backports this fix to composer.

> In certain versions of libcurl when proxy is in use with HTTP/2
multiplexing, connections will continue stacking up. This was
fixed in libcurl 8.0.0 in curl/curl@821f6e2

* fix has proxy condition
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-networking Area: networking issues, curl, etc. C-bug Category: bug S-needs-info Status: Needs more info, such as a reproduction or more background for a feature request.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants