Git Product home page Git Product logo

Comments (26)

zulufoxtrot avatar zulufoxtrot commented on August 18, 2024 2

Some more info:

  • The only occurence of crashes is right after mission upload.
  • The mission is uploaded and executed despite the crash.
  • This appears to happen after a few uploads (my application uploads new missions frequently) and never at first upload.

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024 1

@JonasVautherin right, so I guess we should fix both, the double output with -1 but also the crash due to the thread-unsafety (clearly that's a word!).
I'm already trying to reproduce with a log around the Writer().

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024 1

I'm already trying the mutex but now only one mission update arrives on the Python side which is odd.

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024 1

Fix coming up in: mavlink/MAVSDK#668

from mavsdk-python.

zulufoxtrot avatar zulufoxtrot commented on August 18, 2024 1

Been running for 30 minutes, about 30 uploads, no crash so far.

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024

According to https://groups.google.com/forum/#!topic/grpc-io/M84p6FD-BcE

FTR, it looks like "grpc_call_start_batch returned 8" corresponds to:

/** there is already an outstanding read/write operation on the call */

GRPC_CALL_ERROR_TOO_MANY_OPERATIONS,
That may mean that for a given call, you are not waiting for outstanding read/write operations to finish (the tag completion returned by grpc_completion_queue) before starting a new read/write operation on that call
(which is a violation of how gRPC's low level API should be used).

from mavsdk-python.

JonasVautherin avatar JonasVautherin commented on August 18, 2024

I am not sure if it is a crash in the upload. From the logs, it seems like it may come from the mission progress stream (which is, IMO, more likely to create a grpc_call_start_batch returned 8).

from mavsdk-python.

JonasVautherin avatar JonasVautherin commented on August 18, 2024

@julianoes: Did you manage to reproduce it? Would be nice to understand where that happens (e.g. in upload, start, or mission progress).

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024

Yes, trying to reproduce now.

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024

Ok, it happened:

[11:40:09|Debug] Send mission item 197 (mission_impl.cpp:1096)
[11:40:09|Debug] Send mission item 198 (mission_impl.cpp:1096)
[11:40:09|Debug] Send mission item 199 (mission_impl.cpp:1096)
[11:40:09|Info ] Mission accepted (mission_impl.cpp:165)
[11:40:09|Debug] MAVLink: info: Executing Mission (system_impl.cpp:291)
[11:40:09|Debug] current: -1, total: 100 (mission_impl.cpp:1171)
[11:40:09|Debug] current: 0, total: 100 (mission_impl.cpp:1171)
E0213 11:40:09.341707831   26159 server_cc.cc:619]           Fatal: grpc_call_start_batch returned 8
E0213 11:40:09.341729832   26159 server_cc.cc:620]           ops[0]: SEND_MESSAGE ptr=0x7fffc8000d60

Thread 3 "backend_bin" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff64da700 (LWP 26159)]
0x00007ffff763153f in raise () from /lib64/libc.so.6
(gdb) 
(gdb) 
(gdb) 
(gdb) bt
#0  0x00007ffff763153f in raise () from /lib64/libc.so.6
#1  0x00007ffff761b895 in abort () from /lib64/libc.so.6
#2  0x0000000000a7e3a3 in grpc::Server::PerformOpsOnCall (this=0x1076b80, ops=0x7fffbeffca98, call=0x7fffbeffc970)
    at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:622
#3  0x000000000092231f in grpc::internal::Call::PerformOps (this=0x7fffbeffc970, ops=0x7fffbeffca98)
    at third_party/grpc/include/grpc++/impl/codegen/call.h:692
#4  0x00000000009aa96d in grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>::Write (this=0x7fffbeffc710, msg=..., options=...)
    at third_party/grpc/include/grpc++/impl/codegen/sync_stream.h:670
#5  0x0000000000912ed1 in grpc::internal::WriterInterface<dronecode_sdk::rpc::mission::MissionProgressResponse>::Write (this=0x7fffbeffc718, msg=...)
    at third_party/grpc/include/grpc++/impl/codegen/sync_stream.h:124
#6  0x000000000090e259 in dronecode_sdk::backend::MissionServiceImpl<dronecode_sdk::Mission>::SubscribeMissionProgress(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*)::{lambda(int, int)#1}::operator()(int, int) const (this=0x106a500, current=0, total=100) at ../../backend/src/plugins/mission/mission_service_impl.h:164
#7  0x0000000000916c60 in std::_Function_handler<void (int, int), dronecode_sdk::backend::MissionServiceImpl<dronecode_sdk::Mission>::SubscribeMissionProgress(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*)::{lambda(int, int)#1}>::_M_invoke(std::_Any_data const&, int&&, std::_Any_data const&) (__functor=..., 
    __args#0=@0x7ffff64d9944: 0, __args#1=@0x7ffff64d9940: 100) at /usr/include/c++/8/bits/std_function.h:297
#8  0x00007ffff7e4826b in std::function<void (int, int)>::operator()(int, int) const (this=0x106a0d0, __args#0=0, __args#1=100)
    at /usr/include/c++/8/bits/std_function.h:687
#9  0x00007ffff7e43b0d in dronecode_sdk::MissionImpl::<lambda()>::operator()(void) const (__closure=0x7ffff64d9b90)
    at ../../plugins/mission/mission_impl.cpp:1172
#10 0x00007ffff7e45240 in std::_Function_handler<void(), dronecode_sdk::MissionImpl::report_progress()::<lambda()> >::_M_invoke(const std::_Any_data &)
    (__functor=...) at /usr/include/c++/8/bits/std_function.h:297
#11 0x00007ffff7cf5d36 in std::function<void ()>::operator()() const (this=0x7ffff64d9b90) at /usr/include/c++/8/bits/std_function.h:687
#12 0x00007ffff7d3f744 in dronecode_sdk::ThreadPool::worker (this=0x1070a98) at ../../core/thread_pool.cpp:45
#13 0x00007ffff7d4286e in std::__invoke_impl<void, void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> (
    __f=@0x1067f60: (void (dronecode_sdk::ThreadPool::*)(dronecode_sdk::ThreadPool * const)) 0x7ffff7d3f6f2 <dronecode_sdk::ThreadPool::worker()>, 
    __t=@0x1067f58: 0x1070a98) at /usr/include/c++/8/bits/invoke.h:73
#14 0x00007ffff7d424c1 in std::__invoke<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> (
    __fn=@0x1067f60: (void (dronecode_sdk::ThreadPool::*)(dronecode_sdk::ThreadPool * const)) 0x7ffff7d3f6f2 <dronecode_sdk::ThreadPool::worker()>, 
    __args#0=@0x1067f58: 0x1070a98) at /usr/include/c++/8/bits/invoke.h:95
#15 0x00007ffff7d42ddf in std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> >::_M_invoke<0ul, 1ul> (
    this=0x1067f58) at /usr/include/c++/8/thread:244
#16 0x00007ffff7d42d5a in std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> >::operator() (
    this=0x1067f58) at /usr/include/c++/8/thread:253
#17 0x00007ffff7d42bd0 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> > >::_M_run (this=0x1067f50) at /usr/include/c++/8/thread:196
#18 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#19 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#20 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

And now all threads:

Thread 19 (Thread 0x7fffbd7fa700 (LWP 27300)):
#0  0x00007ffff76f0efd in syscall () from /lib64/libc.so.6
#1  0x00007ffff7a1f5e1 in std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >) () from /lib64/libstdc++.so.6
#2  0x00000000009088a8 in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test_until (this=0x7fffac005b20, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire, __has_timeout=false, __s=..., __ns=...) at /usr/include/c++/8/bits/atomic_futex.h:102
#3  0x000000000090728f in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test (this=0x7fffac005b20, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire) at /usr/include/c++/8/bits/atomic_futex.h:122
#4  0x000000000090142b in std::__atomic_futex_unsigned<2147483648u>::_M_load_when_equal (__mo=std::memory_order_acquire, __val=1, this=0x7fffac005b20) at /usr/include/c++/8/bits/atomic_futex.h:162
#5  std::__future_base::_State_baseV2::wait (this=0x7fffac005b10) at /usr/include/c++/8/future:337
#6  0x0000000000911d3a in std::__basic_future<void>::wait (this=0x7fffbd7f93e0) at /usr/include/c++/8/future:692
#7  0x000000000090ddbf in dronecode_sdk::backend::MissionServiceImpl<dronecode_sdk::Mission>::StartMission (this=0x106a500, response=0x7fffbd7f9770) at ../../backend/src/plugins/mission/mission_service_impl.h:77
#8  0x000000000099bb82 in std::__invoke_impl<grpc::Status, grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*), dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*> (
    __f=@0x10686e8: &virtual dronecode_sdk::rpc::mission::MissionService::Service::StartMission(grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*), __t=@0x7fffbd7f9618: 0x106a500, __args#0=@0x7fffbd7f9610: 0x7fffbd7f9990, 
    __args#1=@0x7fffbd7f9608: 0x7fffbd7f97e0, __args#2=@0x7fffbd7f9600: 0x7fffbd7f9770) at /usr/include/c++/8/bits/invoke.h:73
#9  0x000000000099b17c in std::__invoke<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*), dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*> (
    __fn=@0x10686e8: &virtual dronecode_sdk::rpc::mission::MissionService::Service::StartMission(grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*), __args#0=@0x7fffbd7f9618: 0x106a500, __args#1=@0x7fffbd7f9610: 0x7fffbd7f9990, 
    __args#2=@0x7fffbd7f9608: 0x7fffbd7f97e0, __args#3=@0x7fffbd7f9600: 0x7fffbd7f9770) at /usr/include/c++/8/bits/invoke.h:96
#10 0x0000000000999d3c in std::_Mem_fn_base<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*), true>::operator()<dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*> (this=0x10686e8, __args#0=@0x7fffbd7f9618: 0x106a500, __args#1=@0x7fffbd7f9610: 0x7fffbd7f9990, __args#2=@0x7fffbd7f9608: 0x7fffbd7f97e0, __args#3=@0x7fffbd7f9600: 0x7fffbd7f9770)
    at /usr/include/c++/8/functional:114
#11 0x0000000000997809 in std::_Function_handler<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*), std::_Mem_fn<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*)> >::_M_invoke(std::_Any_data const&, dronecode_sdk::rpc::mission::MissionService::Service*&&, grpc::ServerContext*&&, dronecode_sdk::rpc::mission::StartMissionRequest const*&&, dronecode_sdk::rpc::mission::StartMissionResponse*&&) (__functor=..., __args#0=@0x7fffbd7f9618: 0x106a500, __args#1=@0x7fffbd7f9610: 0x7fffbd7f9990, __args#2=@0x7fffbd7f9608: 0x7fffbd7f97e0, __args#3=@0x7fffbd7f9600: 0x7fffbd7f9770) at /usr/include/c++/8/bits/std_function.h:283
#12 0x00000000009a49f8 in std::function<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*)>::operator()(dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::StartMissionRequest const*, dronecode_sdk::rpc::mission::StartMissionResponse*) const (this=0x10686e8, __args#0=0x106a500, __args#1=0x7fffbd7f9990, __args#2=0x7fffbd7f97e0, __args#3=0x7fffbd7f9770) at /usr/include/c++/8/bits/std_function.h:687
#13 0x00000000009a04aa in grpc::internal::RpcMethodHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::StartMissionRequest, dronecode_sdk::rpc::mission::StartMissionResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}::operator()() const (
    this=0x10686e0) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:68
#14 0x00000000009a4a2c in grpc::internal::CatchingFunctionHandler<grpc::internal::RpcMethodHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::StartMissionRequest, dronecode_sdk::rpc::mission::StartMissionResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}>(grpc::internal::RpcMethodHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::StartMissionRequest, dronecode_sdk::rpc::mission::StartMissionResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}&&) (handler=...)
    at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:47
#15 0x00000000009a0581 in grpc::internal::RpcMethodHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::StartMissionRequest, dronecode_sdk::rpc::mission::StartMissionResponse>::RunHandler (this=0x10686e0, param=...)
    at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:67
#16 0x0000000000a8015e in grpc::Server::SyncRequest::CallData::Run (this=0x7fffbd7f9950, global_callbacks=std::shared_ptr<grpc::Server::GlobalCallbacks> (use count 11, weak count 0) = {...}) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:216
#17 0x0000000000a805b1 in grpc::Server::SyncRequestThreadManager::DoWork (this=0x1076cc0, tag=0x1089250, ok=true) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:308
#18 0x0000000000a88d2a in grpc::ThreadManager::MainWorkLoop (this=0x1076cc0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:152
#19 0x0000000000a886cf in grpc::ThreadManager::WorkerThread::Run (this=0x7fffb0005b30) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:38
#20 0x0000000000a89517 in std::__invoke_impl<void, void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__f=@0x7fffb0004bf0: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, 
    __t=@0x7fffb0004be8: 0x7fffb0005b30) at /usr/include/c++/8/bits/invoke.h:73
#21 0x0000000000a89032 in std::__invoke<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__fn=@0x7fffb0004bf0: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, 
    __args#0=@0x7fffb0004be8: 0x7fffb0005b30) at /usr/include/c++/8/bits/invoke.h:95
#22 0x0000000000a89fcd in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::_M_invoke<0ul, 1ul> (this=0x7fffb0004be8) at /usr/include/c++/8/thread:244
#23 0x0000000000a89f88 in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::operator() (this=0x7fffb0004be8) at /usr/include/c++/8/thread:253
#24 0x0000000000a89f6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> > >::_M_run (this=0x7fffb0004be0) at /usr/include/c++/8/thread:196
#25 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#26 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#27 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 18 (Thread 0x7fffbdffb700 (LWP 27297)):
#0  0x00007ffff76f69d7 in epoll_wait () from /lib64/libc.so.6
#1  0x0000000000c57aa7 in pollable_epoll (p=0x7fffd8000cd0, deadline=167875) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/iomgr/ev_epollex_linux.cc:818
#2  0x0000000000c584fd in pollset_work (pollset=0x1076b00, worker_hdl=0x0, deadline=167875) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/iomgr/ev_epollex_linux.cc:1004
#3  0x0000000000c0af2b in grpc_pollset_work (pollset=0x1076b00, worker=0x0, deadline=167875) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/iomgr/ev_posix.cc:247
#4  0x0000000000be8e87 in cq_next (cq=0x10769f0, deadline=..., reserved=0x0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/surface/completion_queue.cc:925
#5  0x0000000000be92ef in grpc_completion_queue_next (cq=0x10769f0, deadline=..., reserved=0x0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/surface/completion_queue.cc:1001
#6  0x0000000000a8ea52 in grpc::CompletionQueue::AsyncNextInternal (this=0x10751b0, tag=0x7fffbdffab70, ok=0x7fffbdffab6f, deadline=...) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/common/completion_queue_cc.cc:56
#7  0x0000000000a811e6 in grpc::CompletionQueue::AsyncNext<gpr_timespec> (this=0x10751b0, tag=0x7fffbdffab70, ok=0x7fffbdffab6f, deadline=...) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/include/grpc++/impl/codegen/completion_queue.h:157
#8  0x0000000000a80435 in grpc::Server::SyncRequestThreadManager::PollForWork (this=0x1076cc0, tag=0x7fffbdffab70, ok=0x7fffbdffab6f) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:276
#9  0x0000000000a88c16 in grpc::ThreadManager::MainWorkLoop (this=0x1076cc0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:122
#10 0x0000000000a886cf in grpc::ThreadManager::WorkerThread::Run (this=0x7fffb80087c0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:38
#11 0x0000000000a89517 in std::__invoke_impl<void, void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__f=@0x7fffb4005f60: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, 
    __t=@0x7fffb4005f58: 0x7fffb80087c0) at /usr/include/c++/8/bits/invoke.h:73
#12 0x0000000000a89032 in std::__invoke<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__fn=@0x7fffb4005f60: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, 
    __args#0=@0x7fffb4005f58: 0x7fffb80087c0) at /usr/include/c++/8/bits/invoke.h:95
#13 0x0000000000a89fcd in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::_M_invoke<0ul, 1ul> (this=0x7fffb4005f58) at /usr/include/c++/8/thread:244
#14 0x0000000000a89f88 in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::operator() (this=0x7fffb4005f58) at /usr/include/c++/8/thread:253
#15 0x0000000000a89f6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> > >::_M_run (this=0x7fffb4005f50) at /usr/include/c++/8/thread:196
#16 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#17 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#18 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 17 (Thread 0x7fffbe7fc700 (LWP 26726)):
#0  0x00007ffff76f0efd in syscall () from /lib64/libc.so.6
#1  0x00007ffff7a1f5e1 in std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >) () from /lib64/libstdc++.so.6
#2  0x00000000009088a8 in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test_until (this=0x106a2c0, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire, __has_timeout=false, __s=..., __ns=...) at /usr/include/c++/8/bits/atomic_futex.h:102
#3  0x000000000090728f in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test (this=0x106a2c0, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire) at /usr/include/c++/8/bits/atomic_futex.h:122
#4  0x000000000090142b in std::__atomic_futex_unsigned<2147483648u>::_M_load_when_equal (__mo=std::memory_order_acquire, __val=1, this=0x106a2c0) at /usr/include/c++/8/bits/atomic_futex.h:162
#5  std::__future_base::_State_baseV2::wait (this=0x106a2b0) at /usr/include/c++/8/future:337
#6  0x0000000000911d3a in std::__basic_future<void>::wait (this=0x106a588) at /usr/include/c++/8/future:692
--Type <RET> for more, q to quit, c to continue without paging--c
#7  0x000000000090ca4a in dronecode_sdk::backend::TelemetryServiceImpl<dronecode_sdk::Telemetry>::SubscribeInAir (this=0x106a540, writer=0x7fffbe7fb710) at ../../backend/src/plugins/telemetry/telemetry_service_impl.h:95
#8  0x00000000009bc12e in std::__invoke_impl<grpc::Status, grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (__f=@0x106fda8: &virtual dronecode_sdk::rpc::telemetry::TelemetryService::Service::SubscribeInAir(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), __t=@0x7fffbe7fb678: 0x106a540, __args#0=@0x7fffbe7fb670: 0x7fffbe7fb990, __args#1=@0x7fffbe7fb668: 0x7fffbe7fb830, __args#2=@0x7fffbe7fb660: 0x7fffbe7fb710) at /usr/include/c++/8/bits/invoke.h:73
#9  0x00000000009bb1c4 in std::__invoke<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (__fn=@0x106fda8: &virtual dronecode_sdk::rpc::telemetry::TelemetryService::Service::SubscribeInAir(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), __args#0=@0x7fffbe7fb678: 0x106a540, __args#1=@0x7fffbe7fb670: 0x7fffbe7fb990, __args#2=@0x7fffbe7fb668: 0x7fffbe7fb830, __args#3=@0x7fffbe7fb660: 0x7fffbe7fb710) at /usr/include/c++/8/bits/invoke.h:96
#10 0x00000000009b915e in std::_Mem_fn_base<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), true>::operator()<dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (this=0x106fda8, __args#0=@0x7fffbe7fb678: 0x106a540, __args#1=@0x7fffbe7fb670: 0x7fffbe7fb990, __args#2=@0x7fffbe7fb668: 0x7fffbe7fb830, __args#3=@0x7fffbe7fb660: 0x7fffbe7fb710) at /usr/include/c++/8/functional:114
#11 0x00000000009b5b7d in std::_Function_handler<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), std::_Mem_fn<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*)> >::_M_invoke(std::_Any_data const&, dronecode_sdk::rpc::telemetry::TelemetryService::Service*&&, grpc::ServerContext*&&, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*&&, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*&&) (__functor=..., __args#0=@0x7fffbe7fb678: 0x106a540, __args#1=@0x7fffbe7fb670: 0x7fffbe7fb990, __args#2=@0x7fffbe7fb668: 0x7fffbe7fb830, __args#3=@0x7fffbe7fb660: 0x7fffbe7fb710) at /usr/include/c++/8/bits/std_function.h:283
#12 0x00000000009ca228 in std::function<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*)>::operator()(dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*) const (this=0x106fda8, __args#0=0x106a540, __args#1=0x7fffbe7fb990, __args#2=0x7fffbe7fb830, __args#3=0x7fffbe7fb710) at /usr/include/c++/8/bits/std_function.h:687
#13 0x00000000009c2380 in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}::operator()() const (this=0x106fda0) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:159
#14 0x00000000009ca25c in grpc::internal::CatchingFunctionHandler<grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}>(grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}&&) (handler=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:47
#15 0x00000000009c246a in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler (this=0x106fda0, param=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:158
#16 0x0000000000a8015e in grpc::Server::SyncRequest::CallData::Run (this=0x7fffbe7fb950, global_callbacks=std::shared_ptr<grpc::Server::GlobalCallbacks> (use count 11, weak count 0) = {...}) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:216
#17 0x0000000000a805b1 in grpc::Server::SyncRequestThreadManager::DoWork (this=0x1076cc0, tag=0x1089c50, ok=true) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:308
#18 0x0000000000a88d2a in grpc::ThreadManager::MainWorkLoop (this=0x1076cc0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:152
#19 0x0000000000a886cf in grpc::ThreadManager::WorkerThread::Run (this=0x7fffb40059d0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:38
#20 0x0000000000a89517 in std::__invoke_impl<void, void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__f=@0x7fffb4005a20: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __t=@0x7fffb4005a18: 0x7fffb40059d0) at /usr/include/c++/8/bits/invoke.h:73
#21 0x0000000000a89032 in std::__invoke<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__fn=@0x7fffb4005a20: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __args#0=@0x7fffb4005a18: 0x7fffb40059d0) at /usr/include/c++/8/bits/invoke.h:95
#22 0x0000000000a89fcd in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::_M_invoke<0ul, 1ul> (this=0x7fffb4005a18) at /usr/include/c++/8/thread:244
#23 0x0000000000a89f88 in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::operator() (this=0x7fffb4005a18) at /usr/include/c++/8/thread:253
#24 0x0000000000a89f6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> > >::_M_run (this=0x7fffb4005a10) at /usr/include/c++/8/thread:196
#25 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#26 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#27 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 16 (Thread 0x7fffbeffd700 (LWP 26724)):
#0  0x00007ffff76f0efd in syscall () from /lib64/libc.so.6
#1  0x00007ffff7a1f5e1 in std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >) () from /lib64/libstdc++.so.6
#2  0x00000000009088a8 in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test_until (this=0x7fffb8008670, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire, __has_timeout=false, __s=..., __ns=...) at /usr/include/c++/8/bits/atomic_futex.h:102
#3  0x000000000090728f in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test (this=0x7fffb8008670, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire) at /usr/include/c++/8/bits/atomic_futex.h:122
#4  0x000000000090142b in std::__atomic_futex_unsigned<2147483648u>::_M_load_when_equal (__mo=std::memory_order_acquire, __val=1, this=0x7fffb8008670) at /usr/include/c++/8/bits/atomic_futex.h:162
#5  std::__future_base::_State_baseV2::wait (this=0x7fffb8008660) at /usr/include/c++/8/future:337
#6  0x0000000000911d3a in std::__basic_future<void>::wait (this=0x7fffbeffc430) at /usr/include/c++/8/future:692
#7  0x000000000090e4db in dronecode_sdk::backend::MissionServiceImpl<dronecode_sdk::Mission>::SubscribeMissionProgress (this=0x106a500, writer=0x7fffbeffc710) at ../../backend/src/plugins/mission/mission_service_impl.h:171
#8  0x000000000099bede in std::__invoke_impl<grpc::Status, grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*> (__f=@0x1077868: &virtual dronecode_sdk::rpc::mission::MissionService::Service::SubscribeMissionProgress(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), __t=@0x7fffbeffc678: 0x106a500, __args#0=@0x7fffbeffc670: 0x7fffbeffc990, __args#1=@0x7fffbeffc668: 0x7fffbeffc830, __args#2=@0x7fffbeffc660: 0x7fffbeffc710) at /usr/include/c++/8/bits/invoke.h:73
#9  0x000000000099b4f4 in std::__invoke<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*> (__fn=@0x1077868: &virtual dronecode_sdk::rpc::mission::MissionService::Service::SubscribeMissionProgress(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), __args#0=@0x7fffbeffc678: 0x106a500, __args#1=@0x7fffbeffc670: 0x7fffbeffc990, __args#2=@0x7fffbeffc668: 0x7fffbeffc830, __args#3=@0x7fffbeffc660: 0x7fffbeffc710) at /usr/include/c++/8/bits/invoke.h:96
#10 0x000000000099a3ec in std::_Mem_fn_base<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), true>::operator()<dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*> (this=0x1077868, __args#0=@0x7fffbeffc678: 0x106a500, __args#1=@0x7fffbeffc670: 0x7fffbeffc990, __args#2=@0x7fffbeffc668: 0x7fffbeffc830, __args#3=@0x7fffbeffc660: 0x7fffbeffc710) at /usr/include/c++/8/functional:114
#11 0x0000000000998069 in std::_Function_handler<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), std::_Mem_fn<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*)> >::_M_invoke(std::_Any_data const&, dronecode_sdk::rpc::mission::MissionService::Service*&&, grpc::ServerContext*&&, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*&&, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*&&) (__functor=..., __args#0=@0x7fffbeffc678: 0x106a500, __args#1=@0x7fffbeffc670: 0x7fffbeffc990, __args#2=@0x7fffbeffc668: 0x7fffbeffc830, __args#3=@0x7fffbeffc660: 0x7fffbeffc710) at /usr/include/c++/8/bits/std_function.h:283
#12 0x00000000009a4536 in std::function<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*)>::operator()(dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*) const (this=0x1077868, __args#0=0x106a500, __args#1=0x7fffbeffc990, __args#2=0x7fffbeffc830, __args#3=0x7fffbeffc710) at /usr/include/c++/8/bits/std_function.h:687
#13 0x000000000099f84e in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}::operator()() const (this=0x1077860) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:159
#14 0x00000000009a456a in grpc::internal::CatchingFunctionHandler<grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}>(grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}&&) (handler=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:47
#15 0x000000000099f938 in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler (this=0x1077860, param=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:158
#16 0x0000000000a8015e in grpc::Server::SyncRequest::CallData::Run (this=0x7fffbeffc950, global_callbacks=std::shared_ptr<grpc::Server::GlobalCallbacks> (use count 11, weak count 0) = {...}) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:216
#17 0x0000000000a805b1 in grpc::Server::SyncRequestThreadManager::DoWork (this=0x1076cc0, tag=0x1089680, ok=true) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:308
#18 0x0000000000a88d2a in grpc::ThreadManager::MainWorkLoop (this=0x1076cc0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:152
#19 0x0000000000a886cf in grpc::ThreadManager::WorkerThread::Run (this=0x7fffb0000bd0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:38
#20 0x0000000000a89517 in std::__invoke_impl<void, void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__f=@0x7fffb0002130: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __t=@0x7fffb0002128: 0x7fffb0000bd0) at /usr/include/c++/8/bits/invoke.h:73
#21 0x0000000000a89032 in std::__invoke<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__fn=@0x7fffb0002130: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __args#0=@0x7fffb0002128: 0x7fffb0000bd0) at /usr/include/c++/8/bits/invoke.h:95
#22 0x0000000000a89fcd in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::_M_invoke<0ul, 1ul> (this=0x7fffb0002128) at /usr/include/c++/8/thread:244
#23 0x0000000000a89f88 in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::operator() (this=0x7fffb0002128) at /usr/include/c++/8/thread:253
#24 0x0000000000a89f6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> > >::_M_run (this=0x7fffb0002120) at /usr/include/c++/8/thread:196
#25 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#26 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#27 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 14 (Thread 0x7fffbffff700 (LWP 26479)):
#0  0x00007ffff76f0efd in syscall () from /lib64/libc.so.6
#1  0x00007ffff7a1f5e1 in std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >) () from /lib64/libstdc++.so.6
#2  0x00000000009088a8 in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test_until (this=0x106a2c0, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire, __has_timeout=false, __s=..., __ns=...) at /usr/include/c++/8/bits/atomic_futex.h:102
#3  0x000000000090728f in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test (this=0x106a2c0, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire) at /usr/include/c++/8/bits/atomic_futex.h:122
#4  0x000000000090142b in std::__atomic_futex_unsigned<2147483648u>::_M_load_when_equal (__mo=std::memory_order_acquire, __val=1, this=0x106a2c0) at /usr/include/c++/8/bits/atomic_futex.h:162
#5  std::__future_base::_State_baseV2::wait (this=0x106a2b0) at /usr/include/c++/8/future:337
#6  0x0000000000911d3a in std::__basic_future<void>::wait (this=0x106a588) at /usr/include/c++/8/future:692
#7  0x000000000090ca4a in dronecode_sdk::backend::TelemetryServiceImpl<dronecode_sdk::Telemetry>::SubscribeInAir (this=0x106a540, writer=0x7fffbfffe710) at ../../backend/src/plugins/telemetry/telemetry_service_impl.h:95
#8  0x00000000009bc12e in std::__invoke_impl<grpc::Status, grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (__f=@0x106fda8: &virtual dronecode_sdk::rpc::telemetry::TelemetryService::Service::SubscribeInAir(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), __t=@0x7fffbfffe678: 0x106a540, __args#0=@0x7fffbfffe670: 0x7fffbfffe990, __args#1=@0x7fffbfffe668: 0x7fffbfffe830, __args#2=@0x7fffbfffe660: 0x7fffbfffe710) at /usr/include/c++/8/bits/invoke.h:73
#9  0x00000000009bb1c4 in std::__invoke<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (__fn=@0x106fda8: &virtual dronecode_sdk::rpc::telemetry::TelemetryService::Service::SubscribeInAir(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), __args#0=@0x7fffbfffe678: 0x106a540, __args#1=@0x7fffbfffe670: 0x7fffbfffe990, __args#2=@0x7fffbfffe668: 0x7fffbfffe830, __args#3=@0x7fffbfffe660: 0x7fffbfffe710) at /usr/include/c++/8/bits/invoke.h:96
#10 0x00000000009b915e in std::_Mem_fn_base<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), true>::operator()<dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (this=0x106fda8, __args#0=@0x7fffbfffe678: 0x106a540, __args#1=@0x7fffbfffe670: 0x7fffbfffe990, __args#2=@0x7fffbfffe668: 0x7fffbfffe830, __args#3=@0x7fffbfffe660: 0x7fffbfffe710) at /usr/include/c++/8/functional:114
#11 0x00000000009b5b7d in std::_Function_handler<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), std::_Mem_fn<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*)> >::_M_invoke(std::_Any_data const&, dronecode_sdk::rpc::telemetry::TelemetryService::Service*&&, grpc::ServerContext*&&, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*&&, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*&&) (__functor=..., __args#0=@0x7fffbfffe678: 0x106a540, __args#1=@0x7fffbfffe670: 0x7fffbfffe990, __args#2=@0x7fffbfffe668: 0x7fffbfffe830, __args#3=@0x7fffbfffe660: 0x7fffbfffe710) at /usr/include/c++/8/bits/std_function.h:283
#12 0x00000000009ca228 in std::function<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*)>::operator()(dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*) const (this=0x106fda8, __args#0=0x106a540, __args#1=0x7fffbfffe990, __args#2=0x7fffbfffe830, __args#3=0x7fffbfffe710) at /usr/include/c++/8/bits/std_function.h:687
#13 0x00000000009c2380 in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}::operator()() const (this=0x106fda0) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:159
#14 0x00000000009ca25c in grpc::internal::CatchingFunctionHandler<grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}>(grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}&&) (handler=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:47
#15 0x00000000009c246a in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler (this=0x106fda0, param=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:158
#16 0x0000000000a8015e in grpc::Server::SyncRequest::CallData::Run (this=0x7fffbfffe950, global_callbacks=std::shared_ptr<grpc::Server::GlobalCallbacks> (use count 11, weak count 0) = {...}) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:216
#17 0x0000000000a805b1 in grpc::Server::SyncRequestThreadManager::DoWork (this=0x1076cc0, tag=0x1089c50, ok=true) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:308
#18 0x0000000000a88d2a in grpc::ThreadManager::MainWorkLoop (this=0x1076cc0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:152
#19 0x0000000000a886cf in grpc::ThreadManager::WorkerThread::Run (this=0x7fffd001ee10) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:38
#20 0x0000000000a89517 in std::__invoke_impl<void, void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__f=@0x7fffd0006180: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __t=@0x7fffd0006178: 0x7fffd001ee10) at /usr/include/c++/8/bits/invoke.h:73
#21 0x0000000000a89032 in std::__invoke<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__fn=@0x7fffd0006180: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __args#0=@0x7fffd0006178: 0x7fffd001ee10) at /usr/include/c++/8/bits/invoke.h:95
#22 0x0000000000a89fcd in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::_M_invoke<0ul, 1ul> (this=0x7fffd0006178) at /usr/include/c++/8/thread:244
#23 0x0000000000a89f88 in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::operator() (this=0x7fffd0006178) at /usr/include/c++/8/thread:253
#24 0x0000000000a89f6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> > >::_M_run (this=0x7fffd0006170) at /usr/include/c++/8/thread:196
#25 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#26 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#27 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 13 (Thread 0x7fffecff9700 (LWP 26178)):
#0  0x00007ffff7b3773c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000db9371 in gpr_cv_wait (cv=0x1047f00 <g_cv_wait>, mu=0x1047ec0 <_ZL4g_mu>, abs_deadline=...) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/gpr/sync_posix.cc:79
#2  0x0000000000bdb476 in wait_until (next=9223372036854775807) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/iomgr/timer_manager.cc:194
#3  0x0000000000bdb5b0 in timer_main_loop () at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/iomgr/timer_manager.cc:248
#4  0x0000000000bdb68d in timer_thread (completed_thread_ptr=0x1076860) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/iomgr/timer_manager.cc:277
#5  0x0000000000db9648 in thread_body (v=0x7fffe8000b20) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/gpr/thd_posix.cc:67
#6  0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#7  0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 12 (Thread 0x7fffed7fa700 (LWP 26176)):
#0  0x00007ffff76f0efd in syscall () from /lib64/libc.so.6
#1  0x00007ffff7a1f5e1 in std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >) () from /lib64/libstdc++.so.6
#2  0x00000000009088a8 in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test_until (this=0x106a2c0, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire, __has_timeout=false, __s=..., __ns=...) at /usr/include/c++/8/bits/atomic_futex.h:102
#3  0x000000000090728f in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test (this=0x106a2c0, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire) at /usr/include/c++/8/bits/atomic_futex.h:122
#4  0x000000000090142b in std::__atomic_futex_unsigned<2147483648u>::_M_load_when_equal (__mo=std::memory_order_acquire, __val=1, this=0x106a2c0) at /usr/include/c++/8/bits/atomic_futex.h:162
#5  std::__future_base::_State_baseV2::wait (this=0x106a2b0) at /usr/include/c++/8/future:337
#6  0x0000000000911d3a in std::__basic_future<void>::wait (this=0x106a588) at /usr/include/c++/8/future:692
#7  0x000000000090ca4a in dronecode_sdk::backend::TelemetryServiceImpl<dronecode_sdk::Telemetry>::SubscribeInAir (this=0x106a540, writer=0x7fffed7f9710) at ../../backend/src/plugins/telemetry/telemetry_service_impl.h:95
#8  0x00000000009bc12e in std::__invoke_impl<grpc::Status, grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (__f=@0x106fda8: &virtual dronecode_sdk::rpc::telemetry::TelemetryService::Service::SubscribeInAir(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), __t=@0x7fffed7f9678: 0x106a540, __args#0=@0x7fffed7f9670: 0x7fffed7f9990, __args#1=@0x7fffed7f9668: 0x7fffed7f9830, __args#2=@0x7fffed7f9660: 0x7fffed7f9710) at /usr/include/c++/8/bits/invoke.h:73
#9  0x00000000009bb1c4 in std::__invoke<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (__fn=@0x106fda8: &virtual dronecode_sdk::rpc::telemetry::TelemetryService::Service::SubscribeInAir(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), __args#0=@0x7fffed7f9678: 0x106a540, __args#1=@0x7fffed7f9670: 0x7fffed7f9990, __args#2=@0x7fffed7f9668: 0x7fffed7f9830, __args#3=@0x7fffed7f9660: 0x7fffed7f9710) at /usr/include/c++/8/bits/invoke.h:96
#10 0x00000000009b915e in std::_Mem_fn_base<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), true>::operator()<dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (this=0x106fda8, __args#0=@0x7fffed7f9678: 0x106a540, __args#1=@0x7fffed7f9670: 0x7fffed7f9990, __args#2=@0x7fffed7f9668: 0x7fffed7f9830, __args#3=@0x7fffed7f9660: 0x7fffed7f9710) at /usr/include/c++/8/functional:114
#11 0x00000000009b5b7d in std::_Function_handler<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), std::_Mem_fn<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*)> >::_M_invoke(std::_Any_data const&, dronecode_sdk::rpc::telemetry::TelemetryService::Service*&&, grpc::ServerContext*&&, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*&&, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*&&) (__functor=..., __args#0=@0x7fffed7f9678: 0x106a540, __args#1=@0x7fffed7f9670: 0x7fffed7f9990, __args#2=@0x7fffed7f9668: 0x7fffed7f9830, __args#3=@0x7fffed7f9660: 0x7fffed7f9710) at /usr/include/c++/8/bits/std_function.h:283
#12 0x00000000009ca228 in std::function<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*)>::operator()(dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*) const (this=0x106fda8, __args#0=0x106a540, __args#1=0x7fffed7f9990, __args#2=0x7fffed7f9830, __args#3=0x7fffed7f9710) at /usr/include/c++/8/bits/std_function.h:687
#13 0x00000000009c2380 in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}::operator()() const (this=0x106fda0) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:159
#14 0x00000000009ca25c in grpc::internal::CatchingFunctionHandler<grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}>(grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}&&) (handler=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:47
#15 0x00000000009c246a in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler (this=0x106fda0, param=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:158
#16 0x0000000000a8015e in grpc::Server::SyncRequest::CallData::Run (this=0x7fffed7f9950, global_callbacks=std::shared_ptr<grpc::Server::GlobalCallbacks> (use count 11, weak count 0) = {...}) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:216
#17 0x0000000000a805b1 in grpc::Server::SyncRequestThreadManager::DoWork (this=0x1076cc0, tag=0x1089c50, ok=true) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:308
#18 0x0000000000a88d2a in grpc::ThreadManager::MainWorkLoop (this=0x1076cc0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:152
#19 0x0000000000a886cf in grpc::ThreadManager::WorkerThread::Run (this=0x7fffd00059d0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:38
#20 0x0000000000a89517 in std::__invoke_impl<void, void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__f=@0x7fffd0005a20: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __t=@0x7fffd0005a18: 0x7fffd00059d0) at /usr/include/c++/8/bits/invoke.h:73
#21 0x0000000000a89032 in std::__invoke<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__fn=@0x7fffd0005a20: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __args#0=@0x7fffd0005a18: 0x7fffd00059d0) at /usr/include/c++/8/bits/invoke.h:95
#22 0x0000000000a89fcd in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::_M_invoke<0ul, 1ul> (this=0x7fffd0005a18) at /usr/include/c++/8/thread:244
#23 0x0000000000a89f88 in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::operator() (this=0x7fffd0005a18) at /usr/include/c++/8/thread:253
#24 0x0000000000a89f6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> > >::_M_run (this=0x7fffd0005a10) at /usr/include/c++/8/thread:196
#25 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#26 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#27 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 11 (Thread 0x7fffedffb700 (LWP 26174)):
#0  0x00007ffff76f0efd in syscall () from /lib64/libc.so.6
#1  0x00007ffff7a1f5e1 in std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >) () from /lib64/libstdc++.so.6
#2  0x00000000009088a8 in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test_until (this=0x7fffd0006250, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire, __has_timeout=false, __s=..., __ns=...) at /usr/include/c++/8/bits/atomic_futex.h:102
#3  0x000000000090728f in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test (this=0x7fffd0006250, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire) at /usr/include/c++/8/bits/atomic_futex.h:122
#4  0x000000000090142b in std::__atomic_futex_unsigned<2147483648u>::_M_load_when_equal (__mo=std::memory_order_acquire, __val=1, this=0x7fffd0006250) at /usr/include/c++/8/bits/atomic_futex.h:162
#5  std::__future_base::_State_baseV2::wait (this=0x7fffd0006240) at /usr/include/c++/8/future:337
#6  0x0000000000911d3a in std::__basic_future<void>::wait (this=0x7fffedffa430) at /usr/include/c++/8/future:692
#7  0x000000000090e4db in dronecode_sdk::backend::MissionServiceImpl<dronecode_sdk::Mission>::SubscribeMissionProgress (this=0x106a500, writer=0x7fffedffa710) at ../../backend/src/plugins/mission/mission_service_impl.h:171
#8  0x000000000099bede in std::__invoke_impl<grpc::Status, grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*> (__f=@0x1077868: &virtual dronecode_sdk::rpc::mission::MissionService::Service::SubscribeMissionProgress(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), __t=@0x7fffedffa678: 0x106a500, __args#0=@0x7fffedffa670: 0x7fffedffa990, __args#1=@0x7fffedffa668: 0x7fffedffa830, __args#2=@0x7fffedffa660: 0x7fffedffa710) at /usr/include/c++/8/bits/invoke.h:73
#9  0x000000000099b4f4 in std::__invoke<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*> (__fn=@0x1077868: &virtual dronecode_sdk::rpc::mission::MissionService::Service::SubscribeMissionProgress(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), __args#0=@0x7fffedffa678: 0x106a500, __args#1=@0x7fffedffa670: 0x7fffedffa990, __args#2=@0x7fffedffa668: 0x7fffedffa830, __args#3=@0x7fffedffa660: 0x7fffedffa710) at /usr/include/c++/8/bits/invoke.h:96
#10 0x000000000099a3ec in std::_Mem_fn_base<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), true>::operator()<dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*> (this=0x1077868, __args#0=@0x7fffedffa678: 0x106a500, __args#1=@0x7fffedffa670: 0x7fffedffa990, __args#2=@0x7fffedffa668: 0x7fffedffa830, __args#3=@0x7fffedffa660: 0x7fffedffa710) at /usr/include/c++/8/functional:114
#11 0x0000000000998069 in std::_Function_handler<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), std::_Mem_fn<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*)> >::_M_invoke(std::_Any_data const&, dronecode_sdk::rpc::mission::MissionService::Service*&&, grpc::ServerContext*&&, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*&&, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*&&) (__functor=..., __args#0=@0x7fffedffa678: 0x106a500, __args#1=@0x7fffedffa670: 0x7fffedffa990, __args#2=@0x7fffedffa668: 0x7fffedffa830, __args#3=@0x7fffedffa660: 0x7fffedffa710) at /usr/include/c++/8/bits/std_function.h:283
#12 0x00000000009a4536 in std::function<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*)>::operator()(dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*) const (this=0x1077868, __args#0=0x106a500, __args#1=0x7fffedffa990, __args#2=0x7fffedffa830, __args#3=0x7fffedffa710) at /usr/include/c++/8/bits/std_function.h:687
#13 0x000000000099f84e in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}::operator()() const (this=0x1077860) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:159
#14 0x00000000009a456a in grpc::internal::CatchingFunctionHandler<grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}>(grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}&&) (handler=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:47
#15 0x000000000099f938 in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler (this=0x1077860, param=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:158
#16 0x0000000000a8015e in grpc::Server::SyncRequest::CallData::Run (this=0x7fffedffa950, global_callbacks=std::shared_ptr<grpc::Server::GlobalCallbacks> (use count 11, weak count 0) = {...}) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:216
#17 0x0000000000a805b1 in grpc::Server::SyncRequestThreadManager::DoWork (this=0x1076cc0, tag=0x1089680, ok=true) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:308
#18 0x0000000000a88d2a in grpc::ThreadManager::MainWorkLoop (this=0x1076cc0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:152
#19 0x0000000000a886cf in grpc::ThreadManager::WorkerThread::Run (this=0x7fffdc000b20) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:38
#20 0x0000000000a89517 in std::__invoke_impl<void, void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__f=@0x7fffdc000b70: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __t=@0x7fffdc000b68: 0x7fffdc000b20) at /usr/include/c++/8/bits/invoke.h:73
#21 0x0000000000a89032 in std::__invoke<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__fn=@0x7fffdc000b70: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __args#0=@0x7fffdc000b68: 0x7fffdc000b20) at /usr/include/c++/8/bits/invoke.h:95
#22 0x0000000000a89fcd in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::_M_invoke<0ul, 1ul> (this=0x7fffdc000b68) at /usr/include/c++/8/thread:244
#23 0x0000000000a89f88 in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::operator() (this=0x7fffdc000b68) at /usr/include/c++/8/thread:253
#24 0x0000000000a89f6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> > >::_M_run (this=0x7fffdc000b60) at /usr/include/c++/8/thread:196
#25 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#26 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#27 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 10 (Thread 0x7fffee7fc700 (LWP 26173)):
#0  0x00007ffff76f0efd in syscall () from /lib64/libc.so.6
#1  0x00007ffff7a1f5e1 in std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >) () from /lib64/libstdc++.so.6
#2  0x00000000009088a8 in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test_until (this=0x7fffdc000fa0, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire, __has_timeout=false, __s=..., __ns=...) at /usr/include/c++/8/bits/atomic_futex.h:102
#3  0x000000000090728f in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test (this=0x7fffdc000fa0, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire) at /usr/include/c++/8/bits/atomic_futex.h:122
#4  0x000000000090142b in std::__atomic_futex_unsigned<2147483648u>::_M_load_when_equal (__mo=std::memory_order_acquire, __val=1, this=0x7fffdc000fa0) at /usr/include/c++/8/bits/atomic_futex.h:162
#5  std::__future_base::_State_baseV2::wait (this=0x7fffdc000f90) at /usr/include/c++/8/future:337
#6  0x0000000000911d3a in std::__basic_future<void>::wait (this=0x7fffee7fb430) at /usr/include/c++/8/future:692
#7  0x000000000090e4db in dronecode_sdk::backend::MissionServiceImpl<dronecode_sdk::Mission>::SubscribeMissionProgress (this=0x106a500, writer=0x7fffee7fb710) at ../../backend/src/plugins/mission/mission_service_impl.h:171
#8  0x000000000099bede in std::__invoke_impl<grpc::Status, grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*> (__f=@0x1077868: &virtual dronecode_sdk::rpc::mission::MissionService::Service::SubscribeMissionProgress(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), __t=@0x7fffee7fb678: 0x106a500, __args#0=@0x7fffee7fb670: 0x7fffee7fb990, __args#1=@0x7fffee7fb668: 0x7fffee7fb830, __args#2=@0x7fffee7fb660: 0x7fffee7fb710) at /usr/include/c++/8/bits/invoke.h:73
#9  0x000000000099b4f4 in std::__invoke<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*> (__fn=@0x1077868: &virtual dronecode_sdk::rpc::mission::MissionService::Service::SubscribeMissionProgress(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), __args#0=@0x7fffee7fb678: 0x106a500, __args#1=@0x7fffee7fb670: 0x7fffee7fb990, __args#2=@0x7fffee7fb668: 0x7fffee7fb830, __args#3=@0x7fffee7fb660: 0x7fffee7fb710) at /usr/include/c++/8/bits/invoke.h:96
#10 0x000000000099a3ec in std::_Mem_fn_base<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), true>::operator()<dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*> (this=0x1077868, __args#0=@0x7fffee7fb678: 0x106a500, __args#1=@0x7fffee7fb670: 0x7fffee7fb990, __args#2=@0x7fffee7fb668: 0x7fffee7fb830, __args#3=@0x7fffee7fb660: 0x7fffee7fb710) at /usr/include/c++/8/functional:114
#11 0x0000000000998069 in std::_Function_handler<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*), std::_Mem_fn<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*)> >::_M_invoke(std::_Any_data const&, dronecode_sdk::rpc::mission::MissionService::Service*&&, grpc::ServerContext*&&, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*&&, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*&&) (__functor=..., __args#0=@0x7fffee7fb678: 0x106a500, __args#1=@0x7fffee7fb670: 0x7fffee7fb990, __args#2=@0x7fffee7fb668: 0x7fffee7fb830, __args#3=@0x7fffee7fb660: 0x7fffee7fb710) at /usr/include/c++/8/bits/std_function.h:283
#12 0x00000000009a4536 in std::function<grpc::Status (dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*)>::operator()(dronecode_sdk::rpc::mission::MissionService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*) const (this=0x1077868, __args#0=0x106a500, __args#1=0x7fffee7fb990, __args#2=0x7fffee7fb830, __args#3=0x7fffee7fb710) at /usr/include/c++/8/bits/std_function.h:687
#13 0x000000000099f84e in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}::operator()() const (this=0x1077860) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:159
#14 0x00000000009a456a in grpc::internal::CatchingFunctionHandler<grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}>(grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}&&) (handler=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:47
#15 0x000000000099f938 in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::mission::MissionService::Service, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest, dronecode_sdk::rpc::mission::MissionProgressResponse>::RunHandler (this=0x1077860, param=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:158
#16 0x0000000000a8015e in grpc::Server::SyncRequest::CallData::Run (this=0x7fffee7fb950, global_callbacks=std::shared_ptr<grpc::Server::GlobalCallbacks> (use count 11, weak count 0) = {...}) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:216
#17 0x0000000000a805b1 in grpc::Server::SyncRequestThreadManager::DoWork (this=0x1076cc0, tag=0x1089680, ok=true) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:308
#18 0x0000000000a88d2a in grpc::ThreadManager::MainWorkLoop (this=0x1076cc0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:152
#19 0x0000000000a886cf in grpc::ThreadManager::WorkerThread::Run (this=0x7fffd8000c50) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:38
#20 0x0000000000a89517 in std::__invoke_impl<void, void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__f=@0x7fffd80068c0: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __t=@0x7fffd80068b8: 0x7fffd8000c50) at /usr/include/c++/8/bits/invoke.h:73
#21 0x0000000000a89032 in std::__invoke<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__fn=@0x7fffd80068c0: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __args#0=@0x7fffd80068b8: 0x7fffd8000c50) at /usr/include/c++/8/bits/invoke.h:95
#22 0x0000000000a89fcd in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::_M_invoke<0ul, 1ul> (this=0x7fffd80068b8) at /usr/include/c++/8/thread:244
#23 0x0000000000a89f88 in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::operator() (this=0x7fffd80068b8) at /usr/include/c++/8/thread:253
#24 0x0000000000a89f6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> > >::_M_run (this=0x7fffd80068b0) at /usr/include/c++/8/thread:196
#25 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#26 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#27 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 9 (Thread 0x7fffeeffd700 (LWP 26165)):
#0  0x00007ffff7b3b13a in recvfrom () from /lib64/libpthread.so.0
#1  0x00007ffff7d3cae4 in dronecode_sdk::UdpConnection::receive (this=0x10962d0) at ../../core/udp_connection.cpp:171
#2  0x00007ffff7d3d52c in std::__invoke_impl<void, void (dronecode_sdk::UdpConnection::*)(), dronecode_sdk::UdpConnection*> (__f=@0x10962a0: (void (dronecode_sdk::UdpConnection::*)(dronecode_sdk::UdpConnection * const)) 0x7ffff7d3ca58 <dronecode_sdk::UdpConnection::receive()>, __t=@0x1096298: 0x10962d0) at /usr/include/c++/8/bits/invoke.h:73
#3  0x00007ffff7d3cf93 in std::__invoke<void (dronecode_sdk::UdpConnection::*)(), dronecode_sdk::UdpConnection*> (__fn=@0x10962a0: (void (dronecode_sdk::UdpConnection::*)(dronecode_sdk::UdpConnection * const)) 0x7ffff7d3ca58 <dronecode_sdk::UdpConnection::receive()>, __args#0=@0x1096298: 0x10962d0) at /usr/include/c++/8/bits/invoke.h:95
#4  0x00007ffff7d3e337 in std::thread::_Invoker<std::tuple<void (dronecode_sdk::UdpConnection::*)(), dronecode_sdk::UdpConnection*> >::_M_invoke<0ul, 1ul> (this=0x1096298) at /usr/include/c++/8/thread:244
#5  0x00007ffff7d3e2f2 in std::thread::_Invoker<std::tuple<void (dronecode_sdk::UdpConnection::*)(), dronecode_sdk::UdpConnection*> >::operator() (this=0x1096298) at /usr/include/c++/8/thread:253
#6  0x00007ffff7d3e2d6 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (dronecode_sdk::UdpConnection::*)(), dronecode_sdk::UdpConnection*> > >::_M_run (this=0x1096290) at /usr/include/c++/8/thread:196
#7  0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#8  0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#9  0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 8 (Thread 0x7fffef7fe700 (LWP 26164)):
#0  0x00007ffff76f0efd in syscall () from /lib64/libc.so.6
#1  0x00007ffff7a1f5e1 in std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >) () from /lib64/libstdc++.so.6
#2  0x00000000009088a8 in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test_until (this=0x106a2c0, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire, __has_timeout=false, __s=..., __ns=...) at /usr/include/c++/8/bits/atomic_futex.h:102
#3  0x000000000090728f in std::__atomic_futex_unsigned<2147483648u>::_M_load_and_test (this=0x106a2c0, __assumed=0, __operand=1, __equal=true, __mo=std::memory_order_acquire) at /usr/include/c++/8/bits/atomic_futex.h:122
#4  0x000000000090142b in std::__atomic_futex_unsigned<2147483648u>::_M_load_when_equal (__mo=std::memory_order_acquire, __val=1, this=0x106a2c0) at /usr/include/c++/8/bits/atomic_futex.h:162
#5  std::__future_base::_State_baseV2::wait (this=0x106a2b0) at /usr/include/c++/8/future:337
#6  0x0000000000911d3a in std::__basic_future<void>::wait (this=0x106a588) at /usr/include/c++/8/future:692
#7  0x000000000090ca4a in dronecode_sdk::backend::TelemetryServiceImpl<dronecode_sdk::Telemetry>::SubscribeInAir (this=0x106a540, writer=0x7fffef7fd710) at ../../backend/src/plugins/telemetry/telemetry_service_impl.h:95
#8  0x00000000009bc12e in std::__invoke_impl<grpc::Status, grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (__f=@0x106fda8: &virtual dronecode_sdk::rpc::telemetry::TelemetryService::Service::SubscribeInAir(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), __t=@0x7fffef7fd678: 0x106a540, __args#0=@0x7fffef7fd670: 0x7fffef7fd990, __args#1=@0x7fffef7fd668: 0x7fffef7fd830, __args#2=@0x7fffef7fd660: 0x7fffef7fd710) at /usr/include/c++/8/bits/invoke.h:73
#9  0x00000000009bb1c4 in std::__invoke<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::* const&)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (__fn=@0x106fda8: &virtual dronecode_sdk::rpc::telemetry::TelemetryService::Service::SubscribeInAir(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), __args#0=@0x7fffef7fd678: 0x106a540, __args#1=@0x7fffef7fd670: 0x7fffef7fd990, __args#2=@0x7fffef7fd668: 0x7fffef7fd830, __args#3=@0x7fffef7fd660: 0x7fffef7fd710) at /usr/include/c++/8/bits/invoke.h:96
#10 0x00000000009b915e in std::_Mem_fn_base<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), true>::operator()<dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*> (this=0x106fda8, __args#0=@0x7fffef7fd678: 0x106a540, __args#1=@0x7fffef7fd670: 0x7fffef7fd990, __args#2=@0x7fffef7fd668: 0x7fffef7fd830, __args#3=@0x7fffef7fd660: 0x7fffef7fd710) at /usr/include/c++/8/functional:114
#11 0x00000000009b5b7d in std::_Function_handler<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*), std::_Mem_fn<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service::*)(grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*)> >::_M_invoke(std::_Any_data const&, dronecode_sdk::rpc::telemetry::TelemetryService::Service*&&, grpc::ServerContext*&&, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*&&, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*&&) (__functor=..., __args#0=@0x7fffef7fd678: 0x106a540, __args#1=@0x7fffef7fd670: 0x7fffef7fd990, __args#2=@0x7fffef7fd668: 0x7fffef7fd830, __args#3=@0x7fffef7fd660: 0x7fffef7fd710) at /usr/include/c++/8/bits/std_function.h:283
#12 0x00000000009ca228 in std::function<grpc::Status (dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*)>::operator()(dronecode_sdk::rpc::telemetry::TelemetryService::Service*, grpc::ServerContext*, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::telemetry::InAirResponse>*) const (this=0x106fda8, __args#0=0x106a540, __args#1=0x7fffef7fd990, __args#2=0x7fffef7fd830, __args#3=0x7fffef7fd710) at /usr/include/c++/8/bits/std_function.h:687
#13 0x00000000009c2380 in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}::operator()() const (this=0x106fda0) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:159
#14 0x00000000009ca25c in grpc::internal::CatchingFunctionHandler<grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}>(grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&)::{lambda()#1}&&) (handler=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:47
#15 0x00000000009c246a in grpc::internal::ServerStreamingHandler<dronecode_sdk::rpc::telemetry::TelemetryService::Service, dronecode_sdk::rpc::telemetry::SubscribeInAirRequest, dronecode_sdk::rpc::telemetry::InAirResponse>::RunHandler (this=0x106fda0, param=...) at third_party/grpc/include/grpc++/impl/codegen/method_handler_impl.h:158
#16 0x0000000000a8015e in grpc::Server::SyncRequest::CallData::Run (this=0x7fffef7fd950, global_callbacks=std::shared_ptr<grpc::Server::GlobalCallbacks> (use count 11, weak count 0) = {...}) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:216
#17 0x0000000000a805b1 in grpc::Server::SyncRequestThreadManager::DoWork (this=0x1076cc0, tag=0x1089c50, ok=true) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:308
#18 0x0000000000a88d2a in grpc::ThreadManager::MainWorkLoop (this=0x1076cc0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:152
#19 0x0000000000a886cf in grpc::ThreadManager::WorkerThread::Run (this=0x1095e70) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/thread_manager/thread_manager.cc:38
#20 0x0000000000a89517 in std::__invoke_impl<void, void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__f=@0x108b230: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __t=@0x108b228: 0x1095e70) at /usr/include/c++/8/bits/invoke.h:73
#21 0x0000000000a89032 in std::__invoke<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> (__fn=@0x108b230: (void (grpc::ThreadManager::WorkerThread::*)(grpc::ThreadManager::WorkerThread * const)) 0xa886b4 <grpc::ThreadManager::WorkerThread::Run()>, __args#0=@0x108b228: 0x1095e70) at /usr/include/c++/8/bits/invoke.h:95
#22 0x0000000000a89fcd in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::_M_invoke<0ul, 1ul> (this=0x108b228) at /usr/include/c++/8/thread:244
#23 0x0000000000a89f88 in std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> >::operator() (this=0x108b228) at /usr/include/c++/8/thread:253
#24 0x0000000000a89f6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (grpc::ThreadManager::WorkerThread::*)(), grpc::ThreadManager::WorkerThread*> > >::_M_run (this=0x108b220) at /usr/include/c++/8/thread:196
#25 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#26 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#27 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7fffeffff700 (LWP 26163)):
#0  0x00007ffff7b37b28 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000db93be in gpr_cv_wait (cv=0x1047f00 <g_cv_wait>, mu=0x1047ec0 <_ZL4g_mu>, abs_deadline=...) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/gpr/sync_posix.cc:89
#2  0x0000000000bdb476 in wait_until (next=158095) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/iomgr/timer_manager.cc:194
#3  0x0000000000bdb5b0 in timer_main_loop () at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/iomgr/timer_manager.cc:248
#4  0x0000000000bdb68d in timer_thread (completed_thread_ptr=0x1076840) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/iomgr/timer_manager.cc:277
#5  0x0000000000db9648 in thread_body (v=0x1076860) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/gpr/thd_posix.cc:67
#6  0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#7  0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7ffff4cd7700 (LWP 26162)):
#0  0x00007ffff7b3773c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000db9371 in gpr_cv_wait (cv=0x10755a8, mu=0x1075580, abs_deadline=...) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/gpr/sync_posix.cc:79
#2  0x0000000000bd549f in executor_thread (arg=0x1075580) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/iomgr/executor.cc:158
#3  0x0000000000db9648 in thread_body (v=0x10752c0) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/core/lib/gpr/thd_posix.cc:67
#4  0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#5  0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7ffff54d8700 (LWP 26161)):
#0  0x00007ffff7b3773c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffff7a1b690 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib64/libstdc++.so.6
#2  0x00007ffff7d3fc98 in dronecode_sdk::SafeQueue<std::function<void ()> >::dequeue() (this=0x1070ab8) at ../../core/safe_queue.h:35
#3  0x00007ffff7d3f728 in dronecode_sdk::ThreadPool::worker (this=0x1070a98) at ../../core/thread_pool.cpp:43
#4  0x00007ffff7d4286e in std::__invoke_impl<void, void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> (__f=@0x1077a10: (void (dronecode_sdk::ThreadPool::*)(dronecode_sdk::ThreadPool * const)) 0x7ffff7d3f6f2 <dronecode_sdk::ThreadPool::worker()>, __t=@0x1077a08: 0x1070a98) at /usr/include/c++/8/bits/invoke.h:73
#5  0x00007ffff7d424c1 in std::__invoke<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> (__fn=@0x1077a10: (void (dronecode_sdk::ThreadPool::*)(dronecode_sdk::ThreadPool * const)) 0x7ffff7d3f6f2 <dronecode_sdk::ThreadPool::worker()>, __args#0=@0x1077a08: 0x1070a98) at /usr/include/c++/8/bits/invoke.h:95
#6  0x00007ffff7d42ddf in std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> >::_M_invoke<0ul, 1ul> (this=0x1077a08) at /usr/include/c++/8/thread:244
#7  0x00007ffff7d42d5a in std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> >::operator() (this=0x1077a08) at /usr/include/c++/8/thread:253
#8  0x00007ffff7d42bd0 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> > >::_M_run (this=0x1077a00) at /usr/include/c++/8/thread:196
#9  0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#10 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#11 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7ffff5cd9700 (LWP 26160)):
#0  0x00007ffff7b3773c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffff7a1b690 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib64/libstdc++.so.6
#2  0x00007ffff7d3fc98 in dronecode_sdk::SafeQueue<std::function<void ()> >::dequeue() (this=0x1070ab8) at ../../core/safe_queue.h:35
#3  0x00007ffff7d3f728 in dronecode_sdk::ThreadPool::worker (this=0x1070a98) at ../../core/thread_pool.cpp:43
#4  0x00007ffff7d4286e in std::__invoke_impl<void, void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> (__f=@0x10664c0: (void (dronecode_sdk::ThreadPool::*)(dronecode_sdk::ThreadPool * const)) 0x7ffff7d3f6f2 <dronecode_sdk::ThreadPool::worker()>, __t=@0x10664b8: 0x1070a98) at /usr/include/c++/8/bits/invoke.h:73
#5  0x00007ffff7d424c1 in std::__invoke<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> (__fn=@0x10664c0: (void (dronecode_sdk::ThreadPool::*)(dronecode_sdk::ThreadPool * const)) 0x7ffff7d3f6f2 <dronecode_sdk::ThreadPool::worker()>, __args#0=@0x10664b8: 0x1070a98) at /usr/include/c++/8/bits/invoke.h:95
#6  0x00007ffff7d42ddf in std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> >::_M_invoke<0ul, 1ul> (this=0x10664b8) at /usr/include/c++/8/thread:244
#7  0x00007ffff7d42d5a in std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> >::operator() (this=0x10664b8) at /usr/include/c++/8/thread:253
#8  0x00007ffff7d42bd0 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> > >::_M_run (this=0x10664b0) at /usr/include/c++/8/thread:196
#9  0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#10 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#11 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7ffff64da700 (LWP 26159)):
#0  0x00007ffff763153f in raise () from /lib64/libc.so.6
#1  0x00007ffff761b895 in abort () from /lib64/libc.so.6
#2  0x0000000000a7e3a3 in grpc::Server::PerformOpsOnCall (this=0x1076b80, ops=0x7fffbeffca98, call=0x7fffbeffc970) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:622
#3  0x000000000092231f in grpc::internal::Call::PerformOps (this=0x7fffbeffc970, ops=0x7fffbeffca98) at third_party/grpc/include/grpc++/impl/codegen/call.h:692
#4  0x00000000009aa96d in grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>::Write (this=0x7fffbeffc710, msg=..., options=...) at third_party/grpc/include/grpc++/impl/codegen/sync_stream.h:670
#5  0x0000000000912ed1 in grpc::internal::WriterInterface<dronecode_sdk::rpc::mission::MissionProgressResponse>::Write (this=0x7fffbeffc718, msg=...) at third_party/grpc/include/grpc++/impl/codegen/sync_stream.h:124
#6  0x000000000090e259 in dronecode_sdk::backend::MissionServiceImpl<dronecode_sdk::Mission>::SubscribeMissionProgress(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*)::{lambda(int, int)#1}::operator()(int, int) const (this=0x106a500, current=0, total=100) at ../../backend/src/plugins/mission/mission_service_impl.h:164
#7  0x0000000000916c60 in std::_Function_handler<void (int, int), dronecode_sdk::backend::MissionServiceImpl<dronecode_sdk::Mission>::SubscribeMissionProgress(grpc::ServerContext*, dronecode_sdk::rpc::mission::SubscribeMissionProgressRequest const*, grpc::ServerWriter<dronecode_sdk::rpc::mission::MissionProgressResponse>*)::{lambda(int, int)#1}>::_M_invoke(std::_Any_data const&, int&&, std::_Any_data const&) (__functor=..., __args#0=@0x7ffff64d9944: 0, __args#1=@0x7ffff64d9940: 100) at /usr/include/c++/8/bits/std_function.h:297
#8  0x00007ffff7e4826b in std::function<void (int, int)>::operator()(int, int) const (this=0x106a0d0, __args#0=0, __args#1=100) at /usr/include/c++/8/bits/std_function.h:687
#9  0x00007ffff7e43b0d in dronecode_sdk::MissionImpl::<lambda()>::operator()(void) const (__closure=0x7ffff64d9b90) at ../../plugins/mission/mission_impl.cpp:1172
#10 0x00007ffff7e45240 in std::_Function_handler<void(), dronecode_sdk::MissionImpl::report_progress()::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/8/bits/std_function.h:297
#11 0x00007ffff7cf5d36 in std::function<void ()>::operator()() const (this=0x7ffff64d9b90) at /usr/include/c++/8/bits/std_function.h:687
#12 0x00007ffff7d3f744 in dronecode_sdk::ThreadPool::worker (this=0x1070a98) at ../../core/thread_pool.cpp:45
#13 0x00007ffff7d4286e in std::__invoke_impl<void, void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> (__f=@0x1067f60: (void (dronecode_sdk::ThreadPool::*)(dronecode_sdk::ThreadPool * const)) 0x7ffff7d3f6f2 <dronecode_sdk::ThreadPool::worker()>, __t=@0x1067f58: 0x1070a98) at /usr/include/c++/8/bits/invoke.h:73
#14 0x00007ffff7d424c1 in std::__invoke<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> (__fn=@0x1067f60: (void (dronecode_sdk::ThreadPool::*)(dronecode_sdk::ThreadPool * const)) 0x7ffff7d3f6f2 <dronecode_sdk::ThreadPool::worker()>, __args#0=@0x1067f58: 0x1070a98) at /usr/include/c++/8/bits/invoke.h:95
#15 0x00007ffff7d42ddf in std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> >::_M_invoke<0ul, 1ul> (this=0x1067f58) at /usr/include/c++/8/thread:244
#16 0x00007ffff7d42d5a in std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> >::operator() (this=0x1067f58) at /usr/include/c++/8/thread:253
#17 0x00007ffff7d42bd0 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (dronecode_sdk::ThreadPool::*)(), dronecode_sdk::ThreadPool*> > >::_M_run (this=0x1067f50) at /usr/include/c++/8/thread:196
#18 0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#19 0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#20 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7ffff6cdb700 (LWP 26158)):
#0  0x00007ffff7b3b4c0 in nanosleep () from /lib64/libpthread.so.0
#1  0x00007ffff7fc147d in std::this_thread::sleep_for<long, std::ratio<1l, 1000l> > (__rtime=...) at /usr/include/c++/8/thread:379
#2  0x00007ffff7cfd2d5 in dronecode_sdk::SystemImpl::system_thread (this=0x1070710) at ../../core/system_impl.cpp:317
#3  0x00007ffff7d0627c in std::__invoke_impl<void, void (dronecode_sdk::SystemImpl::*)(), dronecode_sdk::SystemImpl*> (__f=@0x1077950: (void (dronecode_sdk::SystemImpl::*)(dronecode_sdk::SystemImpl * const)) 0x7ffff7cfd1d4 <dronecode_sdk::SystemImpl::system_thread()>, __t=@0x1077948: 0x1070710) at /usr/include/c++/8/bits/invoke.h:73
#4  0x00007ffff7d0357c in std::__invoke<void (dronecode_sdk::SystemImpl::*)(), dronecode_sdk::SystemImpl*> (__fn=@0x1077950: (void (dronecode_sdk::SystemImpl::*)(dronecode_sdk::SystemImpl * const)) 0x7ffff7cfd1d4 <dronecode_sdk::SystemImpl::system_thread()>, __args#0=@0x1077948: 0x1070710) at /usr/include/c++/8/bits/invoke.h:95
#5  0x00007ffff7d1027b in std::thread::_Invoker<std::tuple<void (dronecode_sdk::SystemImpl::*)(), dronecode_sdk::SystemImpl*> >::_M_invoke<0ul, 1ul> (this=0x1077948) at /usr/include/c++/8/thread:244
#6  0x00007ffff7d10172 in std::thread::_Invoker<std::tuple<void (dronecode_sdk::SystemImpl::*)(), dronecode_sdk::SystemImpl*> >::operator() (this=0x1077948) at /usr/include/c++/8/thread:253
#7  0x00007ffff7d0ff72 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (dronecode_sdk::SystemImpl::*)(), dronecode_sdk::SystemImpl*> > >::_M_run (this=0x1077940) at /usr/include/c++/8/thread:196
#8  0x00007ffff7a21943 in ?? () from /lib64/libstdc++.so.6
#9  0x00007ffff7b3158e in start_thread () from /lib64/libpthread.so.0
#10 0x00007ffff76f66a3 in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7ffff6cdc980 (LWP 26157)):
#0  0x00007ffff7b3773c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffff7a1b690 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib64/libstdc++.so.6
#2  0x0000000000a7e277 in grpc::Server::Wait (this=0x1076b80) at /home/julianoes/src/DronecodeSDK/build/default/third_party/grpc/build/grpc/src/grpc/src/cpp/server/server_cc.cc:607
#3  0x000000000091fe89 in dronecode_sdk::backend::GRPCServer::wait (this=0x106a380) at ../../backend/src/grpc_server.cpp:31
#4  0x0000000000905cd8 in dronecode_sdk::backend::DronecodeSDKBackend::Impl::wait (this=0x10706c0) at ../../backend/src/backend.cpp:29
#5  0x0000000000900d58 in dronecode_sdk::backend::DronecodeSDKBackend::wait (this=0x7fffffffdad8) at ../../backend/src/backend.cpp:50
#6  0x0000000000900c2c in runBackend (mavlink_listen_port=14540, onServerStarted=0x0, context=0x0) at ../../backend/src/backend_api.cpp:15
#7  0x0000000000900bc9 in main (argc=1, argv=0x7fffffffdbe8) at ../../backend/src/dronecode_sdk_server.cpp:5

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024

@JonasVautherin could this be a leak given we have multiple threads subscribed to mission progress and also multiple for the in-air status?

from mavsdk-python.

JonasVautherin avatar JonasVautherin commented on August 18, 2024

So it happens in SubscribeMissionProgress, right?

could this be a leak given we have multiple threads subscribed to mission progress and also multiple for the in-air status?

Looking at the code, I don't think we leak. If we register multiple times, the old callbacks will never be called so the stream will be hanging there until the caller cancels the call, but that's not exactly a leak. gRPC supports having multiple calls on the same function.

What could happen, maybe, is that two threads could be trying to writer->Write at the same time, because two events were emitted almost at the same time:

[11:40:09|Debug] current: -1, total: 100 (mission_impl.cpp:1171)
[11:40:09|Debug] current: 0, total: 100 (mission_impl.cpp:1171)

Could that be that they aren't called on the same thread on our C++ side?

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024

What could happen, maybe, is that two threads could be trying to writer->Write at the same time, because two events were emitted almost at the same time:

Right I noticed that it only happens in the case where updates are fired at (almost) the same time.

Could that be that they aren't called on the same thread on our C++ side?

Do they need to be called on the same thread? They might be on the thread pool in which case it might be different threads from the pool.

from mavsdk-python.

JonasVautherin avatar JonasVautherin commented on August 18, 2024

Do they need to be called on the same thread? They might be on the thread pool in which case it might be different threads from the pool.

In which case we need a mutex on the shared writer, which we do for the camera. That was not propagated everywhere, and I am hoping that the auto-generation will prevent those kinds of issues in the future.

My question would then be: does it make sense to call them on different threads (as in: "couldn't it happen that the order is not preserved?")? And of course, maybe it is not so easy to make sure they are called on the same thread, which is possibly why we added the mutex in the camera.

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024

https://github.com/Dronecode/DronecodeSDK/blob/91ed9c2478adf6b18704d2cd127623bc30d1eb46/plugins/mission/mission_impl.cpp#L1125

The question is why we have two reports in short succession, that's also odd.

from mavsdk-python.

JonasVautherin avatar JonasVautherin commented on August 18, 2024

https://github.com/Dronecode/DronecodeSDK/blob/91ed9c2478adf6b18704d2cd127623bc30d1eb46/plugins/mission/mission_impl.cpp#L1125

What's your point there? 😅

The question is why we have two reports in short succession, that's also odd.

Yes. And what does -1 mean? Is it related to @zulufoxtrot's first point: "The only occurence of crashes is right after mission upload."? Like... I don't know, when a new mission overwrites an older one, then somehow -1 is emitted and directly 0 after that?

When playing with the python examples, I was also feeling like sometimes I receive the 0 event, and sometimes the first one is 1.

@zulufoxtrot: Thanks for those points, that's super constructive 👍! Very good bug report :-).

from mavsdk-python.

zulufoxtrot avatar zulufoxtrot commented on August 18, 2024

New full output, crash at second upload:

./build/default/backend/src/backend_bin
[03:12:12|Info ] DronecodeSDK version: 0.14.1 (dronecode_sdk_impl.cpp:25)
[03:12:12|Debug] New: System ID: 0 Comp ID: 0 (dronecode_sdk_impl.cpp:285)
[03:12:12|Info ] Server set to listen on 0.0.0.0:50051 (grpc_server.cpp:41)
[03:12:12|Info ] Server started (grpc_server.cpp:25)
[03:12:12|Info ] Waiting to discover system... (connection_initiator.h:57)
[03:12:12|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:200)
[03:12:12|Debug] Component Autopilot (1) added. (system_impl.cpp:381)
[03:12:12|Debug] Discovered 1 component(s) (UUID: 4294967298) (system_impl.cpp:540)
[03:12:12|Info ] System discovered [UUID: 4294967298] (connection_initiator.h:61)
[03:12:13|Debug] MAVLink: info: data link #1 lost (system_impl.cpp:292)
[03:12:13|Debug] MAVLink: info: Mission finished, loitering. (system_impl.cpp:292)
[03:12:13|Debug] MAVLink: info: data link #1 regained (system_impl.cpp:292)
[03:12:14|Debug] Send mission item 0 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 1 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 2 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 3 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 4 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 5 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 6 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 7 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 8 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 9 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 10 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 11 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 12 (mission_impl.cpp:1098)
[03:12:14|Debug] Send mission item 13 (mission_impl.cpp:1098)
[03:12:14|Info ] Mission accepted (mission_impl.cpp:167)
[03:12:14|Debug] MAVLink: info: Executing Mission (system_impl.cpp:292)
[03:13:23|Debug] MAVLink: info: Mission finished, loitering. (system_impl.cpp:292)
[03:14:37|Debug] current: 14, total: 14 (mission_impl.cpp:1173)
[03:18:46|Debug] Send mission item 0 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 1 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 2 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 3 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 4 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 5 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 6 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 7 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 8 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 9 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 10 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 11 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 12 (mission_impl.cpp:1098)
[03:18:46|Debug] Send mission item 13 (mission_impl.cpp:1098)
[03:18:46|Info ] Mission accepted (mission_impl.cpp:167)
[03:18:46|Debug] MAVLink: info: Executing Mission (system_impl.cpp:292)
[03:18:46|Debug] current: 1, total: 14 (mission_impl.cpp:1173)
[03:18:46|Debug] current: -1, total: 14 (mission_impl.cpp:1173)
E0213 15:18:46.158610307   12604 server_cc.cc:619]           Fatal: grpc_call_start_batch returned 8
E0213 15:18:46.158645495   12604 server_cc.cc:620]           ops[0]: SEND_INITIAL_METADATA(nil)
E0213 15:18:46.158664340   12604 server_cc.cc:620]           ops[1]: SEND_MESSAGE ptr=0x7faed4000d60
Aborted (core dumped)

from mavsdk-python.

zulufoxtrot avatar zulufoxtrot commented on August 18, 2024

@julianoes thanks, you guys are doing all the hard work :)

Now I just got a crash at first upload. However the output is different:

./build/default/backend/src/backend_bin
[03:21:29|Info ] DronecodeSDK version: 0.14.1 (dronecode_sdk_impl.cpp:25)
[03:21:29|Debug] New: System ID: 0 Comp ID: 0 (dronecode_sdk_impl.cpp:285)
[03:21:29|Info ] Server set to listen on 0.0.0.0:50051 (grpc_server.cpp:41)
[03:21:29|Info ] Server started (grpc_server.cpp:25)
[03:21:29|Info ] Waiting to discover system... (connection_initiator.h:57)
[03:21:29|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:200)
[03:21:29|Debug] Component Autopilot (1) added. (system_impl.cpp:381)
[03:21:29|Debug] Discovered 1 component(s) (UUID: 4294967298) (system_impl.cpp:540)
[03:21:29|Info ] System discovered [UUID: 4294967298] (connection_initiator.h:61)
[03:21:30|Debug] MAVLink: info: data link #1 lost (system_impl.cpp:292)
[03:21:30|Debug] MAVLink: info: Mission finished, loitering. (system_impl.cpp:292)
[03:21:30|Debug] MAVLink: info: data link #1 regained (system_impl.cpp:292)
[03:21:32|Debug] current: -1, total: 0 (mission_impl.cpp:1173)
[03:21:47|Debug] Send mission item 0 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 1 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 2 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 3 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 4 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 5 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 6 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 7 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 8 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 9 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 10 (mission_impl.cpp:1098)
[03:21:47|Debug] current: 13, total: 21 (mission_impl.cpp:1173)
[03:21:47|Debug] Send mission item 11 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 12 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 13 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 14 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 15 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 16 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 17 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 18 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 19 (mission_impl.cpp:1098)
[03:21:47|Debug] Send mission item 20 (mission_impl.cpp:1098)
[03:21:47|Info ] Mission accepted (mission_impl.cpp:167)
[03:21:47|Debug] MAVLink: info: Executing Mission (system_impl.cpp:292)
[03:21:47|Debug] current: -1, total: 21 (mission_impl.cpp:1173)
[03:21:47|Debug] current: 1, total: 21 (mission_impl.cpp:1173)
Segmentation fault (core dumped)

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024

Interesting, this time it's not the Fatal: grpc_call_start_batch returned 8. This would mean it's probably not actually that gRPC error but rather undefined behaviour that we're seeing.

from mavsdk-python.

JonasVautherin avatar JonasVautherin commented on August 18, 2024
[03:18:46|Debug] current: 1, total: 14 (mission_impl.cpp:1173)
[03:18:46|Debug] current: -1, total: 14 (mission_impl.cpp:1173)

Wrong order here 😅. That's generally not an issue, but we should keep that in mind.

Interesting, this time it's not the Fatal: grpc_call_start_batch returned 8.

Or sometimes it ends up with a segv. I could imagine that, too.

so I guess we should fix both, the double output with -1 but also the crash due to the thread-unsafety (clearly that's a word!).

@julianoes: What about you take the -1, and I take the mutex? Or @zulufoxtrot do you want to contribute to that fix in C++? 😊

from mavsdk-python.

zulufoxtrot avatar zulufoxtrot commented on August 18, 2024

@JonasVautherin I wish I could, but I'm non proficient in C++.

from mavsdk-python.

JonasVautherin avatar JonasVautherin commented on August 18, 2024

@JonasVautherin I wish I could, but I'm non proficient in C++.

No worries, reporting and testing is already super helpful! Thanks a lot for that 👍.

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024

Yet another one:

[03:55:45|Info ] Mission accepted (mission_impl.cpp:165)
[03:55:45|Debug] MAVLink: info: Executing Mission (system_impl.cpp:292)
[03:55:45|Debug] current: -1, total: 100 (mission_impl.cpp:1173)
[03:55:45|Debug] current: 0, total: 100 (mission_impl.cpp:1173)
E0213 15:55:45.823407871   19347 byte_stream.cc:53]          assertion failed: stream->cursor < stream->backing_buffer->count

Thread 3 "backend_bin" received signal SIGABRT, Aborted.

from mavsdk-python.

julianoes avatar julianoes commented on August 18, 2024

@JonasVautherin should we release v0.14.2 for to include this fix?

from mavsdk-python.

JonasVautherin avatar JonasVautherin commented on August 18, 2024

@zulufoxtrot: would you mind testing your code against the latest develop branch before we release the patch? Otherwise we can directly release, but it would be nicer if you confirm the fix first :-)

from mavsdk-python.

zulufoxtrot avatar zulufoxtrot commented on August 18, 2024

Sure, I'll try and report back soon.

from mavsdk-python.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.