smartdevicelink / sdl_core

SmartDeviceLink In-Vehicle Software and Sample HMI
BSD 3-Clause "New" or "Revised" License
240 stars 245 forks source link

Video streaming crash on IGNITION_OFF after PTU #3878

Closed jacobkeeler closed 2 years ago

jacobkeeler commented 2 years ago

Bug Report

A crash can occur during the shutdown process if IGNITION_OFF is sent during video streaming, specifically if the video streaming app is included in a previous PTU.

Backtrace

std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release(std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2> * const this) (/usr/include/c++/9/bits/shared_ptr_base.h:155)
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(std::__shared_count<(__gnu_cxx::_Lock_policy)2> * const this) (/usr/include/c++/9/bits/shared_ptr_base.h:730)
std::__shared_ptr<application_manager::commands::Command, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr(std::__shared_ptr<application_manager::commands::Command, (__gnu_cxx::_Lock_policy)2> * const this) (/usr/include/c++/9/bits/shared_ptr_base.h:1169)
std::shared_ptr<application_manager::commands::Command>::~shared_ptr(std::shared_ptr<application_manager::commands::Command> * const this) (/usr/include/c++/9/bits/shared_ptr.h:103)
__gnu_cxx::new_allocator<std::_List_node<std::shared_ptr<application_manager::commands::Command> > >::destroy<std::shared_ptr<application_manager::commands::Command> >(__gnu_cxx::new_allocator<std::_List_node<std::shared_ptr<application_manager::commands::Command> > > * const this, std::shared_ptr<application_manager::commands::Command> * __p) (/usr/include/c++/9/ext/new_allocator.h:153)
std::allocator_traits<std::allocator<std::_List_node<std::shared_ptr<application_manager::commands::Command> > > >::destroy<std::shared_ptr<application_manager::commands::Command> >(std::allocator_traits<std::allocator<std::_List_node<std::shared_ptr<application_manager::commands::Command> > > >::allocator_type & __a, std::shared_ptr<application_manager::commands::Command> * __p) (/usr/include/c++/9/bits/alloc_traits.h:497)
std::__cxx11::_List_base<std::shared_ptr<application_manager::commands::Command>, std::allocator<std::shared_ptr<application_manager::commands::Command> > >::_M_clear(std::__cxx11::_List_base<std::shared_ptr<application_manager::commands::Command>, std::allocator<std::shared_ptr<application_manager::commands::Command> > > * const this) (/usr/include/c++/9/bits/list.tcc:77)
std::__cxx11::_List_base<std::shared_ptr<application_manager::commands::Command>, std::allocator<std::shared_ptr<application_manager::commands::Command> > >::~_List_base(std::__cxx11::_List_base<std::shared_ptr<application_manager::commands::Command>, std::allocator<std::shared_ptr<application_manager::commands::Command> > > * const this) (/usr/include/c++/9/bits/stl_list.h:495)
std::__cxx11::list<std::shared_ptr<application_manager::commands::Command>, std::allocator<std::shared_ptr<application_manager::commands::Command> > >::~list(std::__cxx11::list<std::shared_ptr<application_manager::commands::Command>, std::allocator<std::shared_ptr<application_manager::commands::Command> > > * const this) (/usr/include/c++/9/bits/stl_list.h:823)
application_manager::request_controller::RequestControllerImpl::~RequestControllerImpl(application_manager::request_controller::RequestControllerImpl * const this) (/home/jacobkeeler/sdl_core/src/components/application_manager/src/request_controller_impl.cc:72)
application_manager::request_controller::RequestControllerImpl::~RequestControllerImpl(application_manager::request_controller::RequestControllerImpl * const this) (/home/jacobkeeler/sdl_core/src/components/application_manager/src/request_controller_impl.cc:75)
std::default_delete<application_manager::request_controller::RequestController>::operator()(const std::default_delete<application_manager::request_controller::RequestController> * const this, application_manager::request_controller::RequestController * __ptr) (/usr/include/c++/9/bits/unique_ptr.h:81)
std::unique_ptr<application_manager::request_controller::RequestController, std::default_delete<application_manager::request_controller::RequestController> >::~unique_ptr(std::unique_ptr<application_manager::request_controller::RequestController, std::default_delete<application_manager::request_controller::RequestController> > * const this) (/usr/include/c++/9/bits/unique_ptr.h:292)
application_manager::ApplicationManagerImpl::~ApplicationManagerImpl(application_manager::ApplicationManagerImpl * const this) (/home/jacobkeeler/sdl_core/src/components/application_manager/src/application_manager_impl.cc:232)
application_manager::ApplicationManagerImpl::~ApplicationManagerImpl(application_manager::ApplicationManagerImpl * const this) (/home/jacobkeeler/sdl_core/src/components/application_manager/src/application_manager_impl.cc:261)
main_namespace::LifeCycleImpl::StopComponents(main_namespace::LifeCycleImpl * const this) (/home/jacobkeeler/sdl_core/src/appMain/life_cycle_impl.cc:410)
main(int32_t argc, char ** argv) (/home/jacobkeeler/sdl_core/src/appMain/main.cc:218)
Reproduction Steps
  1. Connect navigation app
  2. Perform PTU which includes connected navigation app
  3. Activate navigation app and start video streaming
  4. Send IGNITION_OFF from HMI when video streaming starts
Expected Behavior

Core shuts down normally

Observed Behavior

SIGSEGV occurs during shutdown

OS & Version Information