Skip to content
This repository was archived by the owner on Apr 8, 2025. It is now read-only.
This repository was archived by the owner on Apr 8, 2025. It is now read-only.

Question: does download_range_to_stream have size limitation please? currently core dumps on 48M or bigger download on multithreaded app. #208

@yxiang92128

Description

@yxiang92128

Hi,
I am trying to download a blob of size 64M into a 64M buffer and it ran into the following coredump.
The only way to work around it is to set_parallelism_factor to be 1. But that limits the download speed to a crawl.

Any insight into what might have gone wrong here?

Thanks,

Yang X
(gdb) bt
#0 0x00007ffff75dd9db in raise () at /lib64/libpthread.so.0
#1 0x00007ffff7941d56 in pplx::details::_ExceptionHolder::_ExceptionHolder() (this=0x7fff980438d8, __in_chrg=)
at /usr/local/include/pplx/pplxtasks.h:945
#2 0x00007ffff796b43a in __gnu_cxx::new_allocatorpplx::details::_ExceptionHolder::destroypplx::details::_ExceptionHolder(pplx::details::_ExceptionHolder*) (this=0x7fff980438d0, __p=0x7fff980438d8) at /usr/include/c++/4.8/ext/new_allocator.h:124
#3 0x00007ffff7967c89 in std::allocator_traits<std::allocatorpplx::details::_ExceptionHolder >::_S_destroypplx::details::_ExceptionHolder(std::allocatorpplx::details::_ExceptionHolder&, pplx::details::_ExceptionHolder*) (__a=..., __p=0x7fff980438d8)
at /usr/include/c++/4.8/bits/alloc_traits.h:281
#4 0x00007ffff79649f5 in std::allocator_traits<std::allocatorpplx::details::_ExceptionHolder >::destroypplx::details::_ExceptionHolder(std::allocatorpplx::details::_ExceptionHolder&, pplx::details::_ExceptionHolder*) (__a=..., __p=0x7fff980438d8)
at /usr/include/c++/4.8/bits/alloc_traits.h:405
#5 0x00007ffff795f033 in std::_Sp_counted_ptr_inplace<pplx::details::_ExceptionHolder, std::allocatorpplx::details::_ExceptionHolder, (__gnu_cxx::_Lock_policy)2>::_M_dispose() (this=0x7fff980438c0) at /usr/include/c++/4.8/bits/shared_ptr_base.h:407
#6 0x00007ffff792d276 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (this=0x7fff980438c0)
at /usr/include/c++/4.8/bits/shared_ptr_base.h:144
#7 0x00007ffff792a7f5 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::
__shared_count() (this=0x7fffa8001cc0, __in_chrg=) at /usr/include/c++/4.8/bits/shared_ptr_base.h:546
#8 0x00007ffff7942342 in std::__shared_ptr<pplx::details::_ExceptionHolder, (__gnu_cxx::_Lock_policy)2>::__shared_ptr() (this=0x7fffa8001cb8, __in_chrg=) at /usr/include/c++/4.8/bits/shared_ptr_base.h:781
#9 0x00007ffff794235c in std::shared_ptrpplx::details::_ExceptionHolder::shared_ptr() (this=0x7fffa8001cb8, __in_chrg=) at /usr/include/c++/4.8/bits/shared_ptr.h:93
#10 0x00007ffff79425da in pplx::details::_Task_impl_base::
_Task_impl_base() (this=0x7fffa8001ca8, __in_chrg=)
at /usr/local/include/pplx/pplxtasks.h:1709
#11 0x00007ffff7964374 in pplx::details::_Task_impl::
_Task_impl() (this=0x7fffa8001ca8, __in_chrg=)
at /usr/local/include/pplx/pplxtasks.h:2412
#12 0x00007ffff796b32d in __gnu_cxx::new_allocator<pplx::details::_Task_impl >::destroy<pplx::details::_Task_impl >(pplx::details::_Task_impl) (this=0x7fffa8001ca0, __p=0x7fffa8001ca8)
at /usr/include/c++/4.8/ext/new_allocator.h:124
#13 0x00007ffff7967b17 in std::allocator_traits<std::allocator<pplx::details::_Task_impl > >::_S_destroy<pplx::details::_Task_impl >(std::allocator<pplx::details::_Task_impl >&, pplx::details::_Task_impl
) (__a=..., __p=0x7fffa8001ca8) at /usr/include/c++/4.8/bits/alloc_traits.h:281
#14 0x00007ffff7964883 in std::allocator_traits<std::allocator<pplx::details::_Task_impl > >::destroy<pplx::details::_Task_impl >(std::allocator<pplx::details::_Task_impl >&, pplx::details::_Task_impl) (__a=..., __p=0x7fffa8001ca8) at /usr/include/c++/4.8/bits/alloc_traits.h:405
#15 0x00007ffff795e9a1 in std::_Sp_counted_ptr_inplace<pplx::details::_Task_impl, std::allocator<pplx::details::_Task_impl >, (__gnu_cxx::_Lock_policy)2>::_M_dispose() (this=0x7fffa8001c90) at /usr/include/c++/4.8/bits/shared_ptr_base.h:407
#16 0x00007ffff792d276 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (this=0x7fffa8001c90)
at /usr/include/c++/4.8/bits/shared_ptr_base.h:144
#17 0x00007ffff3a74daf in pplx::task::_ContinuationTaskHandle<void, void, azure::storage::cloud_blob::download_range_to_s---Type to continue, or q to quit---
tream_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() () at /opt/teradata/tdobject/lib/libazurestorage.so.5
#18 0x00007ffff7948619 in pplx::details::_AutoDeleterpplx::details::_TaskProcHandle::
_AutoDeleter() (this=0x7fffe3b73c70, __in_chrg=) at /usr/local/include/pplx/pplx.h:99
#19 0x00007ffff794197b in pplx::details::_TaskProcHandle::_RunChoreBridge(void
) (_Parameter=0x7fffa8001db0)
at /usr/local/include/pplx/pplx.h:116
#20 0x00007ffff7349731 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) () at /opt/teradata/tdobject/lib/libcpprest.so.2.9
#21 0x00007ffff72758af in boost::asio::detail::task_io_service::run(boost::system::error_code&) ()
at /opt/teradata/tdobject/lib/libcpprest.so.2.9
#22 0x00007ffff7275c56 in crossplat::threadpool::thread_start(void*) () at /opt/teradata/tdobject/lib/libcpprest.so.2.9
#23 0x00007ffff75d5744 in start_thread () at /lib64/libpthread.so.0
#24 0x00007ffff2b3eaad in clone () at /lib64/libc.so.6
(gdb)

Metadata

Metadata

Assignees

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