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

S3 API's handling of SIGPIPE is incorrect for the iRODS connection pool #120

Closed
korydraughn opened this issue Sep 25, 2024 · 0 comments
Closed
Assignees
Labels
bug Something isn't working
Milestone

Comments

@korydraughn
Copy link
Collaborator

Bug Report

The S3 API uses Boost.Asio to ignore SIGPIPE. However, the iRODS connection pool (if enabled) is created before SIGPIPE is registered. This results in the connection pool not being able to detect and handle broken socket connections.

To fix this issue, we just need to call std::signal(SIGPIPE, SIG_IGN) before the connection pool is created.

@korydraughn korydraughn added the bug Something isn't working label Sep 25, 2024
@korydraughn korydraughn added this to the 0.3.0 milestone Sep 25, 2024
@korydraughn korydraughn self-assigned this Sep 25, 2024
korydraughn added a commit to korydraughn/irods_client_s3_api that referenced this issue Sep 25, 2024
This commit makes it so that the SIGPIPE signal is ignored before any
sockets are created. This change allows the iRODS connection pool to
detect broken sockets and re-establish connections without a restart of
the S3 API.
alanking pushed a commit that referenced this issue Sep 25, 2024
This commit makes it so that the SIGPIPE signal is ignored before any
sockets are created. This change allows the iRODS connection pool to
detect broken sockets and re-establish connections without a restart of
the S3 API.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant