Thanks for getting back to me at this. Please see my stack trace from valgrind:
==287419== Memcheck, a memory error detector
==287419== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==287419== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==287419== Command: /home/atran/codes/workflow_client/dist/workflow/job_client_cli --job-type slam
==287419== Parent PID: 287418
==287419==
==287419== Conditional jump or move depends on uninitialised value(s)
==287419== at 0x91743A: void** NextStackFrame<true, false>(void**, void const*, unsigned long, unsigned long) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x916F98: int UnwindImpl<false, false>(void**, int*, int, int, void const*, int*) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x916D8D: absl::lts_20211102::GetStackTrace(void**, int, int) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x90F27C: absl::lts_20211102::(anonymous namespace)::GetStack(void**, int) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x924569: absl::lts_20211102::synchronization_internal::GraphCycles::UpdateStackTrace(absl::lts_20211102::synchronization_internal::GraphId, int, int (*)(void**, int)) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x90F342: absl::lts_20211102::DeadlockCheck(absl::lts_20211102::Mutex*) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x90F84C: absl::lts_20211102::DebugOnlyDeadlockCheck(absl::lts_20211102::Mutex*) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x90FB6E: absl::lts_20211102::Mutex::Lock() (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x8A3AD0: gpr_mu_lock (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x7DFA25: begin_worker(grpc_pollset*, grpc_pollset_worker*, grpc_pollset_worker**, long) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x7DFFDA: pollset_work(grpc_pollset*, grpc_pollset_worker**, long) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x7716F4: pollset_work(grpc_pollset*, grpc_pollset_worker**, long) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== Uninitialised value was created by a stack allocation
==287419== at 0x1C3FD0: Emesent::GRPCQueue::Stub::Register(grpc::ClientContext*, Emesent::Empty const&, Emesent::RegistrationResponse*) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419==
==287419== Thread 7 grpcpp_sync_ser:
==287419== Conditional jump or move depends on uninitialised value(s)
==287419== at 0x916F7F: int UnwindImpl<false, false>(void**, int*, int, int, void const*, int*) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x916D8D: absl::lts_20211102::GetStackTrace(void**, int, int) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x90F27C: absl::lts_20211102::(anonymous namespace)::GetStack(void**, int) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x924569: absl::lts_20211102::synchronization_internal::GraphCycles::UpdateStackTrace(absl::lts_20211102::synchronization_internal::GraphId, int, int (*)(void**, int)) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x90F342: absl::lts_20211102::DeadlockCheck(absl::lts_20211102::Mutex*) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x90F84C: absl::lts_20211102::DebugOnlyDeadlockCheck(absl::lts_20211102::Mutex*) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x90FB6E: absl::lts_20211102::Mutex::Lock() (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x8A3AD0: gpr_mu_lock (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x5121A4: grpc_cq_begin_op(grpc_completion_queue*, void*) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x5199C4: grpc_core::Server::ShutdownAndNotify(grpc_completion_queue*, void*) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x51CD63: grpc_server_shutdown_and_notify (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== by 0x231AA2: grpc::Server::ShutdownInternal(gpr_timespec) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419== Uninitialised value was created by a stack allocation
==287419== at 0x1D37E0: std::_Function_handler<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), workflow_client::GRPCIcomm::start_and_wait()::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/atran/codes/workflow_client/dist/workflow/job_client_cli)
==287419==
In case this is interesting, this is how I start my server and wait until shutdown:
std::string server_addr_and_port = base_address_ + ":" + id_;
grpc::ServerBuilder server_builder;
server_builder.AddListeningPort(server_addr_and_port, grpc::InsecureServerCredentials());
GRPCQueueImpl grpc_queue_service;
server_builder.RegisterService(&grpc_queue_service);
server_ = server_builder.BuildAndStart();
server_->Wait();