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

Update to h2 v0.3.13 #1

Closed
wants to merge 27 commits into from
Closed

Conversation

nightkr
Copy link
Member

@nightkr nightkr commented May 10, 2022

Looks like there is finally some movement on letting us unfork (hyperium#612), but it's not in yet.

This should not be squash-merged, since that will make future upgrades painful.

seanmonstar and others added 25 commits November 23, 2021 10:32
…#586)

This makes reading the logs way easier on the eyes.
We have reports of runtime panics (linkerd/linkerd2#7748) that sound a
lot like rust-lang/rust#86470. We don't have any evidence that these
panics originate in h2, but there is one use of `Instant::sub` that
could panic in this way.

Even though this is almost definitely a bug in Rust, it seems most
prudent to actively avoid the uses of `Instant` that are prone to this
bug. These fixes should ultimately be made in the standard library, but
this change lets us avoid this problem while we wait for those fixes.

This change replaces uses of `Instant::elapsed` and `Instant::sub` with
calls to `Instant::saturating_duration_since` to prevent this class of
panic.

See also hyperium/hyper#2746
…h decoded

Decoding error when processing continuation header which contains normal
header name at boundary
## Motivation

Currently, the `tracing` spans for the client and server handshakes
contain the name of the I/O type. In some cases, where nested I/O types
are in use, these names can be quite long; for example, in Linkerd, we
see log lines like this:

```
2022-03-07T23:38:15.322506670Z [ 10533.916262s] DEBUG ThreadId(01) inbound:accept{client.addr=192.168.1.9:1227}:server{port=4143}:direct:gateway{dst=server.echo.svc.cluster.local:8080}:server_handshake{io=hyper::common::io::rewind::Rewind<linkerd_io::either::EitherIo<linkerd_io::sensor::SensorIo<linkerd_io::prefixed::PrefixedIo<linkerd_io::either::EitherIo<tokio_rustls::server::TlsStream<linkerd_io::either::EitherIo<linkerd_io::scoped::ScopedIo<tokio::net::tcp::stream::TcpStream>, linkerd_io::prefixed::PrefixedIo<linkerd_io::scoped::ScopedIo<tokio::net::tcp::stream::TcpStream>>>>, linkerd_io::either::EitherIo<linkerd_io::scoped::ScopedIo<tokio::net::tcp::stream::TcpStream>, linkerd_io::prefixed::PrefixedIo<linkerd_io::scoped::ScopedIo<tokio::net::tcp::stream::TcpStream>>>>>, linkerd_transport_metrics::sensor::Sensor>, linkerd_io::sensor::SensorIo<linkerd_io::either::EitherIo<tokio_rustls::server::TlsStream<linkerd_io::either::EitherIo<linkerd_io::scoped::ScopedIo<tokio::net::tcp::stream::TcpStream>, linkerd_io::prefixed::PrefixedIo<linkerd_io::scoped::ScopedIo<tokio::net::tcp::stream::TcpStream>>>>, linkerd_io::either::EitherIo<linkerd_io::scoped::ScopedIo<tokio::net::tcp::stream::TcpStream>, linkerd_io::prefixed::PrefixedIo<linkerd_io::scoped::ScopedIo<tokio::net::tcp::stream::TcpStream>>>>, linkerd_transport_metrics::sensor::Sensor>>>}:FramedWrite::buffer{frame=Settings { flags: (0x0), initial_window_size: 65535, max_frame_size: 16384 }}: h2::codec::framed_write: send frame=Settings { flags: (0x0), initial_window_size: 65535, max_frame_size: 16384 }
```

which is kinda not great.

## Solution

This branch removes the IO type's type name from the spans for the
server and client handshakes. In practice, these are not particularly
useful, because a given server or client instance is parameterized over
the IO types and will only serve connections of that type.
# 0.3.12 (March 9, 2022)

* Avoid time operations that can panic (hyperium#599)
* Bump MSRV to Rust 1.49 (hyperium#606)
* Fix header decoding error when a header name is contained at a continuation
  header boundary (hyperium#589)
* Remove I/O type names from handshake `tracing` spans (hyperium#608)
@nightkr nightkr requested a review from a team May 10, 2022 08:40
@nightkr nightkr self-assigned this May 10, 2022
@stackable-bot
Copy link

stackable-bot commented May 10, 2022

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 7 committers have signed the CLA.

✅ djc
❌ seanmonstar
❌ hikaricai
❌ nox
❌ olix0r
❌ hawkw
❌ LPardue
You have signed the CLA already but the status is still pending? Let us recheck it.

@nightkr
Copy link
Member Author

nightkr commented May 10, 2022

I don't believe CLA bot is relevant here since this is just a project we depend on under the regular MIT license, not a Stackable project that we own.

bors bot pushed a commit to stackabletech/secret-operator that referenced this pull request May 11, 2022
## Description

Upgrades everything except h2, which is blocked by stackabletech/h2#1.
@nightkr
Copy link
Member Author

nightkr commented May 8, 2024

Superseded by #2 and now #3.

@nightkr nightkr closed this May 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants