getting "navigation_task_ is nullptr" error when calling "navigation_handler_->setPaused();" while action is running.
I am getting "navigation_task_ is nullptr" error when calling "navigation_handler_->setPaused();". It seems to be related to when an action is currently running.
I have tracked it down to this function in the scheduler.cpp file. But I am still unsure exactly why navigation_task_ becomes nullptr.
void Scheduler::navigationTransition(NavigationTransition transition, std::optional<Lock> lock) {
auto e_lock = this->ensureLock(std::move(lock));
getOrderLogger()->debug("Scheduler::navigationTransition(type={})", int(transition.type()));
if (this->navigation_task_ == nullptr) {
throw vda5050pp::VDA5050PPNullPointer(MK_EX_CONTEXT("navigation_task_ is nullptr"));
}
this->navigation_task_->transition(transition);
this->update(std::move(e_lock));
}
This is the order it was running.
{"headerId":139,"timestamp":"2024-09-12T12:15:46.405312","version":"2.0.0","manufacturer":"SomeCompany","serialNumber":"HIRCUS-0045","orderId":"91fbd157-9c07-47c3-a47d-90478b3013a4-n2","orderUpdateId":0,"nodes":[{"nodeId":"91fbd157-9c07-47c3-a47d-90478b3013a4-n2-s0","sequenceId":0,"released":true,"actions":[{"actionId":"91fbd157-9c07-47c3-a47d-90478b3013a4-n2-s0-n2","actionType":"startCharging","blockingType":"NONE","actionParameters":[{"key":"frameId","value":4}]}],"nodePosition":{"x":3.0919735431671143,"y":-8.45749282836914,"mapId":"floor 0","theta":0.08953819423913956}}],"edges":[]}
And here is the fill error that i get:
[2024-09-12 14:18:51.623] [order] [error] Scheduler threw an exception: VDA5050PPNullPointer @ vda5050pp::core::order::Scheduler::<not demanglable>(): navigation_task_ is nullptr
<no additional context>
StackTrace:
vda5050pp::core::common::stacktrace(unsigned long)+0x4
vda5050pp::VDA5050PPErrorContext vda5050pp::core::common::mkExceptionContext<vda5050pp::core::order::Scheduler&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&&)+0x9
vda5050pp::core::order::Scheduler::navigationTransition(vda5050pp::core::order::NavigationTransition, std::optional<std::unique_lock<std::mutex> >)+0x1b
vda5050pp::core::order::OrderEventHandler::handleNavigationControl(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)+0x5c
void std::__invoke_impl<void, void (vda5050pp::core::order::OrderEventHandler::* const&)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>), vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl> >(std::__invoke_memfun_deref, void (vda5050pp::core::order::OrderEventHandler::* const&)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>), vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&)+0xa
std::__invoke_result<void (vda5050pp::core::order::OrderEventHandler::* const&)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>), vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl> >::type std::__invoke<void (vda5050pp::core::order::OrderEventHandler::* const&)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>), vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl> >(void (vda5050pp::core::order::OrderEventHandler::* const&)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>), vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&)+0x4
decltype (std::__invoke((*this)._M_pmf, std::forward<vda5050pp::core::order::OrderEventHandler*&>({parm#1}), std::forward<std::shared_ptr<vda5050pp::events::NavigationStatusControl> >({parm#1}))) std::_Mem_fn_base<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>), true>::operator()<vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl> >(vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&) const+0x4
void std::__invoke_impl<void, std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>&, vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl> >(std::__invoke_other, std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>&, vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&)+0x4
std::__invoke_result<std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>&, vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl> >::type std::__invoke<std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>&, vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl> >(std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>&, vda5050pp::core::order::OrderEventHandler*&, std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&)+0x4
void std::_Bind<std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)> (vda5050pp::core::order::OrderEventHandler*, std::_Placeholder<1>)>::__call<void, std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&, 0ul, 1ul>(std::tuple<std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&>&&, std::_Index_tuple<0ul, 1ul>)+0x7
void std::_Bind<std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)> (vda5050pp::core::order::OrderEventHandler*, std::_Placeholder<1>)>::operator()<std::shared_ptr<vda5050pp::events::NavigationStatusControl>, void>(std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&)+0x3
void std::__invoke_impl<void, std::_Bind<std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)> (vda5050pp::core::order::OrderEventHandler*, std::_Placeholder<1>)>&, std::shared_ptr<vda5050pp::events::NavigationStatusControl> >(std::__invoke_other, std::_Bind<std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)> (vda5050pp::core::order::OrderEventHandler*, std::_Placeholder<1>)>&, std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&)+0x3
std::enable_if<is_invocable_r_v<void, std::_Bind<std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)> (vda5050pp::core::order::OrderEventHandler*, std::_Placeholder<1>)>&, std::shared_ptr<vda5050pp::events::NavigationStatusControl> >, void>::type std::__invoke_r<void, std::_Bind<std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)> (vda5050pp::core::order::OrderEventHandler*, std::_Placeholder<1>)>&, std::shared_ptr<vda5050pp::events::NavigationStatusControl> >(std::_Bind<std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)> (vda5050pp::core::order::OrderEventHandler*, std::_Placeholder<1>)>&, std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&)+0x3
std::_Function_handler<void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>), std::_Bind<std::_Mem_fn<void (vda5050pp::core::order::OrderEventHandler::*)(std::shared_ptr<vda5050pp::events::NavigationStatusControl>)> (vda5050pp::core::order::OrderEventHandler*, std::_Placeholder<1>)> >::_M_invoke(std::_Any_data const&, std::shared_ptr<vda5050pp::events::NavigationStatusControl>&&)+0x3
std::function<void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>::operator()(std::shared_ptr<vda5050pp::events::NavigationStatusControl>) const+0x5
void eventpp::ArgumentAdapter<std::function<void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>, void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>), void>::operator()<std::shared_ptr<vda5050pp::events::NavigationStatus> >(std::shared_ptr<vda5050pp::events::NavigationStatus>&&)+0x5
void std::__invoke_impl<void, eventpp::ArgumentAdapter<std::function<void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>, void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>), void>&, std::shared_ptr<vda5050pp::events::NavigationStatus> >(std::__invoke_other, eventpp::ArgumentAdapter<std::function<void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>, void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>), void>&, std::shared_ptr<vda5050pp::events::NavigationStatus>&&)+0x3
std::enable_if<is_invocable_r_v<void, eventpp::ArgumentAdapter<std::function<void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>, void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>), void>&, std::shared_ptr<vda5050pp::events::NavigationStatus> >, void>::type std::__invoke_r<void, eventpp::ArgumentAdapter<std::function<void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>, void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>), void>&, std::shared_ptr<vda5050pp::events::NavigationStatus> >(eventpp::ArgumentAdapter<std::function<void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>, void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>), void>&, std::shared_ptr<vda5050pp::events::NavigationStatus>&&)+0x3
std::_Function_handler<void (std::shared_ptr<vda5050pp::events::NavigationStatus>), eventpp::ArgumentAdapter<std::function<void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>)>, void (std::shared_ptr<vda5050pp::events::NavigationStatusControl>), void> >::_M_invoke(std::_Any_data const&, std::shared_ptr<vda5050pp::events::NavigationStatus>&&)+0x3
std::function<void (std::shared_ptr<vda5050pp::events::NavigationStatus>)>::operator()(std::shared_ptr<vda5050pp::events::NavigationStatus>) const+0x5
eventpp::internal_::CallbackListBase<void (std::shared_ptr<vda5050pp::events::NavigationStatus>), eventpp::DefaultPolicies>::operator()(std::shared_ptr<vda5050pp::events::NavigationStatus>) const+0x1a
eventpp::internal_::EventDispatcherBase<vda5050pp::events::NavigationStatusType, void (std::shared_ptr<vda5050pp::events::NavigationStatus>), eventpp::DefaultPolicies, eventpp::internal_::EventQueueBase<vda5050pp::events::NavigationStatusType, void (std::shared_ptr<vda5050pp::events::NavigationStatus>), eventpp::DefaultPolicies> >::directDispatch(vda5050pp::events::NavigationStatusType const&, std::shared_ptr<vda5050pp::events::NavigationStatus>) const+0x9
void eventpp::internal_::EventQueueBase<vda5050pp::events::NavigationStatusType, void (std::shared_ptr<vda5050pp::events::NavigationStatus>), eventpp::DefaultPolicies>::doDispatchQueuedEvent<eventpp::internal_::EventQueueBase<vda5050pp::events::NavigationStatusType, void (std::shared_ptr<vda5050pp::events::NavigationStatus>), eventpp::DefaultPolicies>::QueuedEvent_&, 0ul>(eventpp::internal_::EventQueueBase<vda5050pp::events::NavigationStatusType, void (std::shared_ptr<vda5050pp::events::NavigationStatus>), eventpp::DefaultPolicies>::QueuedEvent_&, eventpp::internal_::IndexSequence<0ul>)+0x5
<not demanglable>+0xbf7e4
vda5050pp::core::NavigationStatusManager::threadTask(vda5050pp::core::common::StopToken)+0x6
void std::__invoke_impl<void, void (vda5050pp::core::NavigationStatusManager::* const&)(vda5050pp::core::common::StopToken) noexcept, vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken>(std::__invoke_memfun_deref, void (vda5050pp::core::NavigationStatusManager::* const&)(vda5050pp::core::common::StopToken) noexcept, vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken&&)+0x9
std::__invoke_result<void (vda5050pp::core::NavigationStatusManager::* const&)(vda5050pp::core::common::StopToken) noexcept, vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken>::type std::__invoke<void (vda5050pp::core::NavigationStatusManager::* const&)(vda5050pp::core::common::StopToken) noexcept, vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken>(void (vda5050pp::core::NavigationStatusManager::* const&)(vda5050pp::core::common::StopToken) noexcept, vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken&&)+0x4
decltype (std::__invoke((*this)._M_pmf, std::forward<vda5050pp::core::NavigationStatusManager*&>({parm#1}), std::forward<vda5050pp::core::common::StopToken>({parm#1}))) std::_Mem_fn_base<void (vda5050pp::core::NavigationStatusManager::*)(vda5050pp::core::common::StopToken) noexcept, true>::operator()<vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken>(vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken&&) const+0x4
void std::__invoke_impl<void, std::_Mem_fn<void (vda5050pp::core::NavigationStatusManager::*)(vda5050pp::core::common::StopToken) noexcept>&, vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken>(std::__invoke_other, std::_Mem_fn<void (vda5050pp::core::NavigationStatusManager::*)(vda5050pp::core::common::StopToken) noexcept>&, vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken&&)+0x4
std::__invoke_result<std::_Mem_fn<void (vda5050pp::core::NavigationStatusManager::*)(vda5050pp::core::common::StopToken) noexcept>&, vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken>::type std::__invoke<std::_Mem_fn<void (vda5050pp::core::NavigationStatusManager::*)(vda5050pp::core::common::StopToken) noexcept>&, vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken>(std::_Mem_fn<void (vda5050pp::core::NavigationStatusManager::*)(vda5050pp::core::common::StopToken) noexcept>&, vda5050pp::core::NavigationStatusManager*&, vda5050pp::core::common::StopToken&&)+0x4
Please let me know if I should provide any more information on this