Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash uploading mission items in gRPC #46

Closed
julianoes opened this issue Feb 12, 2019 · 26 comments · Fixed by mavlink/MAVSDK#668
Closed

Crash uploading mission items in gRPC #46

julianoes opened this issue Feb 12, 2019 · 26 comments · Fixed by mavlink/MAVSDK#668
Assignees
Labels

Comments

@julianoes
Copy link
Collaborator

A crash report by that needs to be investigated:

Fatal error during mission upload. Probably after several missions were uploaded. Many commands (>50). Output: https://paste.ofcode.org/qmzXxgYH2LkVpYiyXBGJ5u
Version: Not sure yet, but <0.13.0 and possibly newer versions.

https://paste.ofcode.org/qmzXxgYH2LkVpYiyXBGJ5u

@julianoes julianoes added the bug label Feb 12, 2019
@julianoes julianoes self-assigned this Feb 13, 2019
@julianoes
Copy link
Collaborator Author

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).

@JonasVautherin
Copy link
Collaborator

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).

@JonasVautherin
Copy link
Collaborator

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

@julianoes
Copy link
Collaborator Author

Yes, trying to reproduce now.

@julianoes
Copy link
Collaborator Author

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

@julianoes
Copy link
Collaborator Author

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

@JonasVautherin
Copy link
Collaborator

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?

@julianoes
Copy link
Collaborator Author

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.

@JonasVautherin
Copy link
Collaborator

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.

@zulufoxtrot
Copy link

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.

@julianoes
Copy link
Collaborator Author

julianoes commented Feb 13, 2019

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.

@JonasVautherin
Copy link
Collaborator

JonasVautherin commented Feb 13, 2019

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 :-).

@zulufoxtrot
Copy link

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)

@julianoes
Copy link
Collaborator Author

@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().

@zulufoxtrot
Copy link

@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)

@julianoes
Copy link
Collaborator Author

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.

@JonasVautherin
Copy link
Collaborator

JonasVautherin commented Feb 13, 2019

[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++? 😊

@julianoes
Copy link
Collaborator Author

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

@zulufoxtrot
Copy link

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

@JonasVautherin
Copy link
Collaborator

@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 👍.

@julianoes
Copy link
Collaborator Author

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.

@julianoes
Copy link
Collaborator Author

Fix coming up in: mavlink/MAVSDK#668

@julianoes
Copy link
Collaborator Author

julianoes commented Feb 14, 2019

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

@JonasVautherin
Copy link
Collaborator

@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 :-)

@zulufoxtrot
Copy link

Sure, I'll try and report back soon.

@zulufoxtrot
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants