-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
[C++] S3FS can sometimes send sigpipe signals to the application #44695
Comments
Hey, thanks for your report!
I looked at the original PR and I don't think there was a motivating reason outside of scope in reducing the number of exposed global options. Maybe @pitrou can comment? A PR would be appreciated either way but I think you can go ahead and open the flood gates :D |
I'm curious, why don't you simply ignore SIGPIPE signals by yourself? It should be as easy as: signal(SIGPIPE, SIG_IGN); IMHO, it doesn't seem useful to expose an option for something you can trivially do yourself. Except perhaps to document the existence of this issue. |
Is there a reason not to expose the options? I doubt that they change constantly and create a lot of maintenance work? |
Do you mean expose additional individual options in |
hm I guess allowing |
Well, the problem is that allowing So, if there are any important options there, we should provide an abstraction around them. |
This is mostly convenience for people who don't want to install their own signal handler, though the SDK will also log incoming signals.
Our application uses many instances running arrow in parallel on linux. Occasionally we will get a SIGPIPE signal from our calls to the s3 filesystem (for both reads and writes). We believe these are coming from the S3 api thats being embedded by arrow. Since arrow is multithreaded, handling these signals around the scope of our arrow api calls is ineffective.
AWS exposes an option to install their own handler
in SDKOptions.HttpOptions.installSigPipeHandler
https://github.com/aws/aws-sdk-cpp/blob/a154acd5893e2b2c913844e312648149d12a12d1/src/aws-cpp-sdk-core/include/aws/core/Aws.h#L103
but arrow has no way to set this. S3GlobalOptions only exposes the s3 log level and number of event loop threads, and the rest of the options are kept private within arrow.
Arrow needs a way to pass this (and probably other AWS options). So I'm opening this bug report.
if the community is okay with adding the installSigPipeHandler option to S3GlobalOptions I'd be happy to contribute.... though I wonder why we don't open the floodgates to let the user set s3 options directly at will?
version: 13.0.0
platform: rhel 8
Component(s)
C++
The text was updated successfully, but these errors were encountered: