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

All I/O _must_ happen through recvmsg, with room for a cmsg #24

Closed
fasterthanlime opened this issue Jun 14, 2023 · 1 comment
Closed

Comments

@fasterthanlime
Copy link
Collaborator

I think that explains the mysterious ERRNO=5 Input/Output errors we've all been seeing intermittently.

It's that little load-bearing sentence from the Linux kTLS docs:

If no cmsg buffer is provided, an error is returned if a control message is received.

I'm going to test my theory but for now I believe if a control message is received (such as a TLS 1.3 session ticket) then we get this error:

--- STDERR:              ktls::integration_test ktls_client_rustls_server_tls_1_3_aes_256_gcm ---
thread 'ktls_client_rustls_server_tls_1_3_aes_256_gcm' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 5, kind: Uncategorized, message: "Input/output error" }', tests/integration_test.rs:346:39
stack backtrace:

However if we configure the server not to send session tickets, like so:

    server_config.send_tls13_tickets = 0;

Then the same test passes. The logs show that four tickets are sent by default:

image

And Wireshark confirms that:

image
@fasterthanlime
Copy link
Collaborator Author

This was closed by #28

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

1 participant