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.
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.