Skip to content

core dumps when destructing ContinuatioTaskHandle #944

Closed
@yxiang92128

Description

@yxiang92128

Anybody had observed the following core dump when using the library along with azure storage sdk?
Thread 21 "test_azure" received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7fffe8e6a700 (LWP 6014)]
0x00007ffff7bcb269 in raise (sig=5) at ../sysdeps/unix/sysv/linux/pt-raise.c:35
35 ../sysdeps/unix/sysv/linux/pt-raise.c: No such file or directory.
(gdb) bt
#0 0x00007ffff7bcb269 in raise (sig=5) at ../sysdeps/unix/sysv/linux/pt-raise.c:35
#1 0x00000000004d09b4 in pplx::details::_ExceptionHolder::~_ExceptionHolder (this=0x7a6c20, __in_chrg=) at /usr/local/include/pplx/pplxtasks.h:965
#2 0x00000000004f8a32 in __gnu_cxx::new_allocatorpplx::details::_ExceptionHolder::destroypplx::details::_ExceptionHolder (this=0x7a6c20, __p=0x7a6c20)
at /usr/include/c++/5/ext/new_allocator.h:124
#3 0x00000000004f361f in std::allocator_traits<std::allocatorpplx::details::_ExceptionHolder >::destroypplx::details::_ExceptionHolder (__a=..., __p=0x7a6c20)
at /usr/include/c++/5/bits/alloc_traits.h:542
#4 0x00000000004eae87 in std::_Sp_counted_ptr_inplace<pplx::details::_ExceptionHolder, std::allocatorpplx::details::_ExceptionHolder, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x7a6c10) at /usr/include/c++/5/bits/shared_ptr_base.h:531
#5 0x00000000004da364 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x7a6c10) at /usr/include/c++/5/bits/shared_ptr_base.h:150
#6 0x00000000004d639f in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x7fffc801b5c8, __in_chrg=)
at /usr/include/c++/5/bits/shared_ptr_base.h:659
#7 0x00000000004d0ff0 in std::__shared_ptr<pplx::details::_ExceptionHolder, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x7fffc801b5c0, __in_chrg=)
at /usr/include/c++/5/bits/shared_ptr_base.h:925
#8 0x00000000004d1028 in std::shared_ptrpplx::details::_ExceptionHolder::~shared_ptr (this=0x7fffc801b5c0, __in_chrg=)
at /usr/include/c++/5/bits/shared_ptr.h:93
#9 0x00000000004d126c in pplx::details::_Task_impl_base::~_Task_impl_base (this=0x7fffc801b5b0, __in_chrg=) at /usr/local/include/pplx/pplxtasks.h:1729
#10 0x00000000004f306e in pplx::details::_Task_impl::~_Task_impl (this=0x7fffc801b5b0, __in_chrg=)
at /usr/local/include/pplx/pplxtasks.h:2432
#11 0x00000000004f89a9 in __gnu_cxx::new_allocator<pplx::details::_Task_impl >::destroy<pplx::details::_Task_impl > (this=0x7fffc801b5b0,
__p=0x7fffc801b5b0) at /usr/include/c++/5/ext/new_allocator.h:124
#12 0x00000000004f355f in std::allocator_traits<std::allocator<pplx::details::_Task_impl > >::destroy<pplx::details::_Task_impl > (__a=...,
__p=0x7fffc801b5b0) at /usr/include/c++/5/bits/alloc_traits.h:542
#13 0x00000000004ea97d in std::_Sp_counted_ptr_inplace<pplx::details::_Task_impl, std::allocator<pplx::details::_Task_impl >, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x7fffc801b5a0) at /usr/include/c++/5/bits/shared_ptr_base.h:531
#14 0x00007ffff6a86732 in pplx::task::_ContinuationTaskHandle<void, void, azure::storage::cloud_blob::download_range_to_stream_async(Concurrency::streams::basic_ostream, unsigned long, unsigned long, azure::storage::access_condition const&, azure::storage::blob_request_options const&, azure::storage::operation_context)::{lambda(pplx::task)#1}::operator()(pplx::task) const::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const::{lambda(pplx::task)#1}, std::integral_constant<bool, true>, pplx::details::_TypeSelectorNoAsync>::~_ContinuationTaskHandle() () from /usr/local/lib/libazurestorage.so.5
#15 0x00000000004d6ae5 in pplx::details::_AutoDeleterpplx::details::_TaskProcHandle::~_AutoDeleter (this=0x7fffe8e69bb0, __in_chrg=)
at /usr/local/include/pplx/pplx.h:99
#16 0x00000000004d03b6 in pplx::details::_TaskProcHandle::_RunChoreBridge (_Parameter=0x7fffc801b6c0) at /usr/local/include/pplx/pplx.h:115
#17 0x00007ffff76e25c2 in boost::asio::detail::completion_handler<boost::_bi::bind_t<void, void ()(void), boost::_bi::list1<boost::_bi::value<void*> > > >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) ()
from /usr/local/lib/libcpprest.so.2.10
#18 0x00007ffff76e3921 in boost::asio::detail::posix_thread::func<(anonymous namespace)::threadpool_impl::add_thread()::{lambda()#1}>::run() ()
from /usr/local/lib/libcpprest.so.2.10
#19 0x00007ffff7669284 in boost_asio_detail_posix_thread_function () from /usr/local/lib/libcpprest.so.2.10
#20 0x00007ffff7bc16ba in start_thread (arg=0x7fffe8e6a700) at pthread_create.c:333
#21 0x00007ffff5dfe41d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
(gdb)

I can consistently reproduce the crash.

Any hints where I should look would be highly appreciated.

Thanks,

Yang

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions