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

HTTP3 interop test with Kwik client fails #1461

Open
ptrd opened this issue Aug 18, 2022 · 1 comment
Open

HTTP3 interop test with Kwik client fails #1461

ptrd opened this issue Aug 18, 2022 · 1 comment

Comments

@ptrd
Copy link

ptrd commented Aug 18, 2022

Problem:

The HTTP3 interop (https://interop.seemann.io/) test with Kwik client fails. See for example
https://interop.seemann.io/logs/2022-08-18T00:39/s2n-quic_kwik/http3/

Solution:

I analysed an earlier instance of this error (https://interop.seemann.io/logs/2022-08-17T08:08/s2n-quic_kwik/http3/server/logs.txt), and it's clear the handshake succeeds and also server seems to receive the stream frames containing the HTTP requests, given these log statements:
1.475277847s s2n_quic:server:conn: frame_received: packet_header=OneRtt { number: 1 } path=Path { local_addr: [::ffff:193.167.100.100]:443, local_cid: 0x32c3d6bed6eafa3d7dddca0d86178bf1, remote_addr: [::ffff:193.167.0.100]:37317, remote_cid: 0xb17bdd76a0bb381f, id: 0, is_active: true } frame=Stream { id: 2, offset: 1, len: 6, is_fin: false } [3mid[0m[2m=[0m0
1.475371748s s2n_quic:server:conn: frame_received: packet_header=OneRtt { number: 1 } path=Path { local_addr: [::ffff:193.167.100.100]:443, local_cid: 0x32c3d6bed6eafa3d7dddca0d86178bf1, remote_addr: [::ffff:193.167.0.100]:37317, remote_cid: 0xb17bdd76a0bb381f, id: 0, is_active: true } frame=Stream { id: 4, offset: 0, len: 32, is_fin: true } [3mid[0m[2m=[0m0
1.475487949s s2n_quic:server:conn: frame_received: packet_header=OneRtt { number: 1 } path=Path { local_addr: [::ffff:193.167.100.100]:443, local_cid: 0x32c3d6bed6eafa3d7dddca0d86178bf1, remote_addr: [::ffff:193.167.0.100]:37317, remote_cid: 0xb17bdd76a0bb381f, id: 0, is_active: true } frame=Stream { id: 8, offset: 0, len: 32, is_fin: true } [3mid[0m[2m=[0m0
1.475573050s s2n_quic:server:conn: frame_received: packet_header=OneRtt { number: 1 } path=Path { local_addr: [::ffff:193.167.100.100]:443, local_cid: 0x32c3d6bed6eafa3d7dddca0d86178bf1, remote_addr: [::ffff:193.167.0.100]:37317, remote_cid: 0xb17bdd76a0bb381f, id: 0, is_active: true } frame=Stream { id: 12, offset: 0, len: 32, is_fin: true } [3mid[0m[2m=[0m0

Furthermore, on the client side i see the client receiving an Ack for the stream frames, so from the perspective of the client everything is ok and a server response is being expected. However, server does not send stream frames for the HTTP request streams (4, 8, 12).

Requirements / Acceptance Criteria:

Out of scope:

@WesleyRosenblum
Copy link
Contributor

Thanks Peter. I dug into this, and haven't been able to find any issue with the s2n-quic server itself. I've opened an issue to hyperium/h3, which is the HTTP/3 implementation we use for this interop test.

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

No branches or pull requests

2 participants