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

Add API for poisoning connections #121

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

Conversation

rcoh
Copy link
Contributor

@rcoh rcoh commented May 8, 2024

This is a port of https://github.com/hyperium/hyper/pull/3145/files + a test.

It introduces a PoisonPill atomic onto connection info. When set to true, this prevents the connection from being returned to the pool.

@seanmonstar
Copy link
Member

It at least looks like the failed test is relevant. Dropping a client should close its idle connections.

@rcoh
Copy link
Contributor Author

rcoh commented May 14, 2024

Yeah I agree. I tried pretty hard to reproduce it on a number of different environments but I haven't been able yet. I'll transition this to Draft in the interim

@rcoh rcoh marked this pull request as draft May 14, 2024 17:30
@Velfi
Copy link

Velfi commented May 23, 2024

I tried running these tests in Docker and in my dev desktop but couldn't reproduce. :(

Running clippy on the tests shows that we're holding a std::sync::Mutex across await points in a few places. Could that be related to the test failure?

I also see that read is used in a few tests but we're not checking to see if it read the whole thing. Switching to read_exact causes a bunch of new test failures. (read 1: Os { code: 35, kind: WouldBlock, message: "Resource temporarily unavailable" })

@seanmonstar
Copy link
Member

I just retried CI, and it's red this time too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants