Skip to content

Tests fail for core http3-preview for crate s2n-quic-h3 #2877

Closed
@shjohnson-pi

Description

@shjohnson-pi

Rocket Version

3bf9ef0

Operating System

FreeBSD 14.1-RELEASE-p5 amd64

Rust Toolchain Version

rustc 1.81.0 (f54dd915b 2024-09-02)

What happened?

I cloned master and went to run tests, but it's unable to compile s2n-quic-h3 for the core: http3-preview test set.

$ ./scripts/test.sh --core
...
:: Building and checking core [http3-preview]...
   Compiling s2n-quic-h3 v0.1.0 (https://github.com/SergioBenitez/s2n-quic-h3.git?rev=6613956#66139567)
error[E0277]: the trait bound `s2n_quic::application::Error: From<s2n_quic_core::varint::VarInt>` is not satisfied
   --> /home/sjohnson/.cargo/git/checkouts/s2n-quic-h3-159cf9a157ac9cd2/6613956/src/s2n_quic.rs:181:49
...
error[E0277]: the trait bound `s2n_quic::application::Error: From<s2n_quic_core::varint::VarInt>` is not satisfied
   --> /home/sjohnson/.cargo/git/checkouts/s2n-quic-h3-159cf9a157ac9cd2/6613956/src/s2n_quic.rs:464:73
...

Test Case

N/A

Log Output

$ ./scripts/test.sh --core
...
:: Building and checking core [http3-preview]...
   Compiling s2n-quic-h3 v0.1.0 (https://github.com/SergioBenitez/s2n-quic-h3.git?rev=6613956#66139567)
error[E0277]: the trait bound `s2n_quic::application::Error: From<s2n_quic_core::varint::VarInt>` is not satisfied
   --> /home/sjohnson/.cargo/git/checkouts/s2n-quic-h3-159cf9a157ac9cd2/6613956/src/s2n_quic.rs:181:49
    |
181 |                 .unwrap_or_else(|_| VarInt::MAX.into()),
    |                                                 ^^^^ the trait `From<s2n_quic_core::varint::VarInt>` is not implemented for `s2n_quic::application::Error`, which is required by `s2n_quic_core::varint::VarInt: Into<_>`
    |
    = help: the following other types implement trait `From<T>`:
              `s2n_quic::application::Error` implements `From<s2n_quic_core::varint::VarInt>`
              `s2n_quic::application::Error` implements `From<u16>`
              `s2n_quic::application::Error` implements `From<u32>`
              `s2n_quic::application::Error` implements `From<u8>`
    = note: required for `s2n_quic_core::varint::VarInt` to implement `Into<s2n_quic::application::Error>`

error[E0277]: the trait bound `s2n_quic::application::Error: From<s2n_quic_core::varint::VarInt>` is not satisfied
   --> /home/sjohnson/.cargo/git/checkouts/s2n-quic-h3-159cf9a157ac9cd2/6613956/src/s2n_quic.rs:464:73
    |
464 |             .reset(reset_code.try_into().unwrap_or_else(|_| VarInt::MAX.into()));
    |                                                                         ^^^^ the trait `From<s2n_quic_core::varint::VarInt>` is not implemented for `s2n_quic::application::Error`, which is required by `s2n_quic_core::varint::VarInt: Into<_>`
    |
    = help: the following other types implement trait `From<T>`:
              `s2n_quic::application::Error` implements `From<s2n_quic_core::varint::VarInt>`
              `s2n_quic::application::Error` implements `From<u16>`
              `s2n_quic::application::Error` implements `From<u32>`
              `s2n_quic::application::Error` implements `From<u8>`
    = note: required for `s2n_quic_core::varint::VarInt` to implement `Into<s2n_quic::application::Error>`

For more information about this error, try `rustc --explain E0277`.
error: could not compile `s2n-quic-h3` (lib) due to 2 previous errors

Additional Context

I believe one way to fix this, is to merge in upstream fix from aws/s2n-quic#2313 (comment) into https://github.com/SergioBenitez/s2n-quic-h3 and then update the revision in core/lib/Cargo.toml

References:

Final Notes:

  • This is my first issue for Rocket, so definitely point out any mistakes I've made
  • This was on FreeBSD, but I believe this problem would still exist on other OSs

System Checks

  • My bug report relates to functionality.
  • I have tested against the latest Rocket release or a recent git commit.
  • I have tested against the latest stable rustc toolchain.
  • I was unable to find this issue previously reported.

Metadata

Metadata

Assignees

No one assigned

    Labels

    deficiencySomething doesn't work as well as it could

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions