any idea on this? your help is very much appreciated.

On Mon, Feb 4, 2013 at 10:26 AM, Isuru Haththotuwa <isurulu...@gmail.com>wrote:

> Hi all,
>
> I have a C++ client which uses thrift to publish data to a remote server.
> When the remote server shut down, I catch an exception to see if I can
> re-connect to it periodically. However, in deallocating memory before
> re-initializing a client again, the client code always crashes. I debugged
> the issue and got the following stack trace:
>
> (gdb) backtrace
> #0  0x00007ffff713891d in write () at ../sysdeps/unix/syscall-template.S:82
> #1  0x00007ffff68e4c95 in ?? () from
> /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
> #2  0x00007ffff68e2ae7 in BIO_write () from
> /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
> #3  0x00007ffff6bf9a50 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0
> #4  0x00007ffff6bfb483 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0
> #5  0x00007ffff6bf7b62 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0
> *#6  0x00007ffff7ba632a in apache::thrift::transport::TSSLSocket::close
> (this=0x67cc30) at src/transport/TSSLSocket.cpp:145
> #7  0x00007ffff7ba647c in
> apache::thrift::transport::TSSLSocket::~TSSLSocket (this=0x67cc30,
> __in_chrg=<optimized out>) at src/transport/TSSLSocket.cpp:100
> #8  0x00007ffff7ba6559 in
> apache::thrift::transport::TSSLSocket::~TSSLSocket (this=0x67cc30,
> __in_chrg=<optimized out>) at src/transport/TSSLSocket.cpp:101*
> #9  0x00007ffff7bace0a in release (this=0x6825c0) at
> /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:145
> #10 ~shared_count (this=0x682190, __in_chrg=<optimized out>) at
> /usr/include/boost/smart_ptr/detail/shared_count.hpp:217
> #11 ~shared_ptr (this=0x682188, __in_chrg=<optimized out>) at
> /usr/include/boost/smart_ptr/shared_ptr.hpp:168
> #12 ~TBufferedTransport (this=0x682160, __in_chrg=<optimized out>) at
> ./src/transport/TBufferTransports.h:191
> #13 apache::thrift::transport::TBufferedTransport::~TBufferedTransport
> (this=0x682160, __in_chrg=<optimized out>) at
> ./src/transport/TBufferTransports.h:191
> #14 0x000000000042d487 in
> boost::checked_delete<apache::thrift::transport::TBufferedTransport>
> (x=0x682160) at /usr/include/boost/checked_delete.hpp:34
> #15 0x000000000042e1e4 in
> boost::detail::sp_counted_impl_p<apache::thrift::transport::TBufferedTransport>::dispose
> (this=0x67df80)
>     at /usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:78
>
>
> Please note that I have only added the relevant part of the stack trace. I
> have attached the complete one.
>
> In analyzing what is happening here, what I could grasp is that after the
> connection to the server is terminated, if socket::close method gets called
> the application crashes. Is this the expected behavior? Since this is
> happening implicitly because of the memory cleanup, how to handle this
> issue?
>
>
> --
> Thanks and Regards,
> Isuru
>



-- 
Thanks and Regards,
Isuru

Reply via email to