smartdevicelink / sdl_core

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

Core crash during app activation #3798

Closed iCollin closed 3 years ago

iCollin commented 3 years ago

Bug Report

Core crashes when activating an application.

Caused by changes in https://github.com/smartdevicelink/sdl_core/pull/3796

Reproduction Steps
  1. Start Core & SDL HMI
  2. In SDL HMI app store, select Hello Webengine 3, change enabled to true, set app properties
  3. Activate Hello Webengine 3 from app list
Expected Behavior

App launches successfully

Observed Behavior

Core crashes

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff4f20921 in __GI_abort () at abort.c:79
#2  0x00007ffff4f1048a in __assert_fail_base (fmt=0x7ffff5097750 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x555557504bc8 "(it_states != hmi_states_map_.end())", 
    file=file@entry=0x5555575046a0 "/home/collin/core/builds/eight0/sdl_core/src/components/application_manager/src/application_state.cc", 
    line=line@entry=292, 
    function=function@entry=0x555557505360 <application_manager::ApplicationState::CurrentHmiState(int) const::__PRETTY_FUNCTION__> "application_manager::HmiStatePtr application_manager::ApplicationState::CurrentHmiState(application_manager::WindowID) const") at assert.c:92
#3  0x00007ffff4f10502 in __GI___assert_fail (assertion=0x555557504bc8 "(it_states != hmi_states_map_.end())", 
    file=0x5555575046a0 "/home/collin/core/builds/eight0/sdl_core/src/components/application_manager/src/application_state.cc", line=292, 
    function=0x555557505360 <application_manager::ApplicationState::CurrentHmiState(int) const::__PRETTY_FUNCTION__> "application_manager::HmiStatePtr application_manager::ApplicationState::CurrentHmiState(application_manager::WindowID) const") at assert.c:101
#4  0x000055555645d818 in application_manager::ApplicationState::CurrentHmiState (this=0x7fffc000a8b0, window_id=0)
    at /home/collin/core/builds/eight0/sdl_core/src/components/application_manager/src/application_state.cc:292
#5  0x0000555556458c30 in application_manager::ApplicationState::GetState (this=0x7fffc000a8b0, window_id=0, 
    state_id=application_manager::HmiState::STATE_ID_CURRENT)
    at /home/collin/core/builds/eight0/sdl_core/src/components/application_manager/src/application_state.cc:131
#6  0x00005555564411ec in application_manager::ApplicationImpl::CurrentHmiState (this=0x7fffc000a0e0, window_id=0)
    at /home/collin/core/builds/eight0/sdl_core/src/components/application_manager/src/application_impl.cc:337
#7  0x00007fffa9217b62 in sdl_rpc_plugin::commands::SDLActivateAppRequest::Run (this=0x7fffc0025f70)
    at /home/collin/core/builds/eight0/sdl_core/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc:221
#8  0x00005555563b8ce6 in application_manager::rpc_service::RPCServiceImpl::ManageHMICommand (this=0x555557d9e840, 
    message=std::shared_ptr<ns_smart_device_link::ns_smart_objects::SmartObject> (use count 3, weak count 0) = {...}, 
    source=application_manager::commands::Command::SOURCE_HMI, warning_info="")
    at /home/collin/core/builds/eight0/sdl_core/src/components/application_manager/src/rpc_service_impl.cc:403
#9  0x000055555638630f in application_manager::rpc_handler::RPCHandlerImpl::ProcessMessageFromHMI (this=0x555557dba070, 
    message=std::shared_ptr<application_manager::Message> (use count 3, weak count 0) = {...})
    at /home/collin/core/builds/eight0/sdl_core/src/components/application_manager/src/rpc_handler_impl.cc:202
#10 0x00005555563876d8 in application_manager::rpc_handler::RPCHandlerImpl::Handle (this=0x555557dba070, message=...)
    at /home/collin/core/builds/eight0/sdl_core/src/components/application_manager/src/rpc_handler_impl.cc:239
#11 0x000055555639ac01 in threads::MessageLoopThread<utils::PrioritizedQueue<application_manager::rpc_handler::impl::MessageFromHmi> >::LoopThreadDelegate::DrainQue (this=0x5555581180f0) at /home/collin/core/builds/eight0/sdl_core/src/components/include/utils/threads/message_loop_thread.h:201
#12 0x000055555639a8bd in threads::MessageLoopThread<utils::PrioritizedQueue<application_manager::rpc_handler::impl::MessageFromHmi> >::LoopThreadDelegate::threadMain (this=0x5555581180f0) at /home/collin/core/builds/eight0/sdl_core/src/components/include/utils/threads/message_loop_thread.h:184
---Type <return> to continue, or q <return> to quit---
#13 0x00005555573a1bc7 in threads::Thread::<lambda(threads::Thread*)>::operator()(threads::Thread *) const (__closure=0x7fffd8ff8ba1, thread=0x55555828d770)
    at /home/collin/core/builds/eight0/sdl_core/src/components/utils/src/threads/thread_posix.cc:76
#14 0x00005555573a2351 in threads::Thread::threadFunc (arg=0x55555828d770)
    at /home/collin/core/builds/eight0/sdl_core/src/components/utils/src/threads/thread_posix.cc:106
#15 0x00007ffff7bbb6db in start_thread (arg=0x7fffd8ff9700) at pthread_create.c:463
#16 0x00007ffff500171f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
OS & Version Information

Possible Fix

Adding a nullptr check to this line would fix the behavior for release mode but would not get around the DCHECK in debug mode.

dboltovskyi commented 3 years ago

Looks like this issue is related to https://github.com/smartdevicelink/sdl_core/issues/3797 and may have the same root cause

iCollin commented 3 years ago

Fixed via https://github.com/smartdevicelink/sdl_core/pull/3799