You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Rocco Corsi (JIRA)" <ji...@apache.org> on 2019/07/04 17:59:00 UTC

[jira] [Commented] (THRIFT-4885) TSSLSocket crash during write

    [ https://issues.apache.org/jira/browse/THRIFT-4885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16878834#comment-16878834 ] 

Rocco Corsi commented on THRIFT-4885:
-------------------------------------

I work with @op on this issue.

Regarding some comments from https://issues.apache.org/jira/browse/THRIFT-4888, I have the following additional information.

Ignoring of the SIGPIPE has been part of our code for a long time, so it is not that.

Testing with 0.12.0 will occur hopefully soon, so will have a better idea if that helps or not.

Our solution has traffic only in ONEWAY calls, from client to server and server to client.

Suspect the failure is occurring if the client is attempting to shutdown the connection and at the same time the server is sending a ONEWAY call to the client.  So the close (due to client) and write (due to server sending) are happening in overlapping way inside the server.

Would be interesting to know if your tests cover such a race condition regarding client and server interactions.

 

Hope to get back to you soon with results from 0.12.0 testing.

>  TSSLSocket crash during write
> ------------------------------
>
>                 Key: THRIFT-4885
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4885
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 0.10.0
>            Reporter: op
>            Priority: Major
>         Attachments: patch.txt
>
>
> It happens that a race condition between TSSLSocket::write and TSSLSocket::close causes the application to crash. This issue has also been detected by Valgrind.
>  
> This is the core dump backtrace
> #1  0x00007f08549b2291 in BIO_write () from /lib64/libcrypto.so.1.0.0
> #2  0x00007f084fdbbb62 in ?? () from /lib64/libssl.so.1.0.0
> #3  0x00007f084fdbc256 in ?? () from /lib64/libssl.so.1.0.0
> #4  0x00007f085466657c in apache::thrift::transport::TSSLSocket::(write (this=0x7f07a0001060, buf=0x7f07a4b6d1ac "", len=4) at src/thrift/transport/TSSLSocket.cpp:387
>  
> See the patch in attachment.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)