[ 
https://issues.apache.org/jira/browse/KUDU-1910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Percy updated KUDU-1910:
-----------------------------
    Description: 
It is possible to receive a SIGPIPE when writing to a closed TLS socket. At the 
time of writing, Kudu doesn't explicitly ignore SIGPIPE early in the startup 
process. Even after we change that, the problem will exist for user programs 
utilizing the Kudu C++ client for the same reason.

Some potential workarounds for the client issue:

1. Implicitly set the disposition of SIGPIPE to SIG_IGN from a library for the 
whole client program. We could put this behind a KuduClientBuilder option.
2. Use the OpenSSL BIO API (https://wiki.openssl.org/index.php/BIO) to set 
flags to avoid the generation of PIPE signals.
3. Document that clients must ignore the PIPE signal in programs that use the 
Kudu C++ Client API.

  was:
It is possible to receive a SIGPIPE when writing to a closed TLS socket. At the 
time of writing, Kudu doesn't explicitly ignore SIGPIPE early in the startup 
process. Even after we change that, the problem will exist for user programs 
utilizing the Kudu C++ client for the same reason.

Some potential workarounds for the client issue:

1. Implicitly set the disposition of SIGPIPE to SIG_IGN from a library for the 
whole client program. We could put this behind a KuduClientBuilder option.
2. Use the [OpenSSL BIO API](https://wiki.openssl.org/index.php/BIO) to set 
flags to avoid the generation of PIPE signals.
3. Document that clients must ignore or block the PIPE signal in threads that 
use the Kudu C++ Client API.


> Crash when writing to a closed TLS socket before squeasel startup
> -----------------------------------------------------------------
>
>                 Key: KUDU-1910
>                 URL: https://issues.apache.org/jira/browse/KUDU-1910
>             Project: Kudu
>          Issue Type: Bug
>    Affects Versions: 1.3.0
>            Reporter: Mike Percy
>            Priority: Critical
>
> It is possible to receive a SIGPIPE when writing to a closed TLS socket. At 
> the time of writing, Kudu doesn't explicitly ignore SIGPIPE early in the 
> startup process. Even after we change that, the problem will exist for user 
> programs utilizing the Kudu C++ client for the same reason.
> Some potential workarounds for the client issue:
> 1. Implicitly set the disposition of SIGPIPE to SIG_IGN from a library for 
> the whole client program. We could put this behind a KuduClientBuilder option.
> 2. Use the OpenSSL BIO API (https://wiki.openssl.org/index.php/BIO) to set 
> flags to avoid the generation of PIPE signals.
> 3. Document that clients must ignore the PIPE signal in programs that use the 
> Kudu C++ Client API.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to