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

Aborting socket::connect() doesn't work with iouring backend #2302

Open
xemul opened this issue Jun 25, 2024 · 1 comment
Open

Aborting socket::connect() doesn't work with iouring backend #2302

xemul opened this issue Jun 25, 2024 · 1 comment

Comments

@xemul
Copy link
Contributor

xemul commented Jun 25, 2024

There's a new test #2301 that passes on linux-aio and fails on io-uring

xemul added a commit to xemul/seastar that referenced this issue Jun 26, 2024
There are two places that can wait for undefined amount of time -- the
one that waits the connection pool to release a connection and the one
that establishes a new connection.

The former is simple, as it uses conditional variable, so just wait() on
it with the timeout and return back timeout error if it fired.

Tha latter is trickier. New connections come from factory and it's not
guaranteed that a factory obeys it (e.g. see scylladb#2302). So instead of
relying on the factory, check if connected_socket appeared soon enough
and return back timeout error if it didn't.

Signed-off-by: Pavel Emelyanov <[email protected]>
xemul added a commit to xemul/seastar that referenced this issue Jun 26, 2024
There are two places that can wait for undefined amount of time -- the
one that waits the connection pool to release a connection and the one
that establishes a new connection.

The former is simple, as it uses conditional variable, so just wait() on
it with the timeout and return back timeout error if it fired.

Tha latter is trickier. New connections come from factory and it's not
guaranteed that a factory obeys it (e.g. see scylladb#2302). So instead of
relying on the factory, check if connected_socket appeared soon enough
and return back timeout error if it didn't.

Signed-off-by: Pavel Emelyanov <[email protected]>
tchaikov added a commit to tchaikov/seastar that referenced this issue Jul 1, 2024
to workaround scylladb#2302, before it is fixed.

Refs scylladb#2302

Signed-off-by: Kefu Chai <[email protected]>
@tchaikov
Copy link
Contributor

tchaikov commented Jul 1, 2024

There's a new test #2301 that passes on linux-aio and fails on io-uring

this reminds me the discussion at #1633 (comment)

xemul pushed a commit that referenced this issue Jul 1, 2024
to workaround #2302, before it is fixed.

Refs #2302

Signed-off-by: Kefu Chai <[email protected]>

Closes #2317
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