-
Notifications
You must be signed in to change notification settings - Fork 501
Description
I am using opentelemetry as a shared library in my project. It is working perfectly when I am linking it dynamically in a exe but new std::thread is crashing when I am using it inside a shared library project.
Built opentelemetry and shared library(.so) project with c++ 17 dialect . Using a otlp http exporter
Attaching call stack when calling end on a simple span processor.
#0 0x0000000000000000 in ?? ()
#1 0x00007ffff78f8e89 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_deletestd::thread::_State >, void ()())
() from /lib64/libstdc++.so.6
#2 0x00007ffff4121c80 in std::thread::thread<opentelemetry::v1::ext::http::client::curl::HttpClient::MaybeSpawnBackgroundThread()::<lambda(opentelemetry::v1::ext::http::client::curl::HttpClient)>, opentelemetry::v1::ext::http::client::curl::HttpClient*>(opentelemetry::v1::ext::http::client::curl::HttpClient::<lambda(opentelemetry::v1::ext::http::client::curl::HttpClient*)> &&) (this=0x7ffefc00da00, __f=...) at /usr/include/c++/8/thread:131
#3 0x00007ffff4120bfc in opentelemetry::v1::ext::http::client::curl::HttpClient::MaybeSpawnBackgroundThread (this=0x7192d0)
at /home/bharat/open-tele/opentelemetry-cpp/ext/src/http/client/curl/http_client_curl.cc:630
#4 0x00007ffff411f83d in opentelemetry::v1::ext::http::client::curl::Session::SendRequest (this=0x7ffefc008810,
callback=std::shared_ptropentelemetry::v1::ext::http::client::EventHandler (use count 4, weak count 0) = {...})
at /home/bharat/open-tele/opentelemetry-cpp/ext/src/http/client/curl/http_client_curl.cc:231
#5 0x00007ffff0aad43c in opentelemetry::v1::exporter::otlp::OtlpHttpClient::addSession (this=0x718f20, session_data=...)
at /home/bharat/open-tele/opentelemetry-cpp/exporters/otlp/src/otlp_http_client.cc:1029
#6 0x00007ffff0aabb02 in opentelemetry::v1::exporter::otlp::OtlpHttpClient::Export(google::protobuf::Message const&, std::function<bool (opentelemetry::v1::sdk::common::ExportResult)>&&, unsigned long) (this=0x718f20, message=..., result_callback=..., max_running_requests=0)
at /home/bharat/open-tele/opentelemetry-cpp/exporters/otlp/src/otlp_http_client.cc:760
#7 0x00007ffff0aab956 in opentelemetry::v1::exporter::otlp::OtlpHttpClient::Export (this=0x718f20, message=...)
at /home/bharat/open-tele/opentelemetry-cpp/exporters/otlp/src/otlp_http_client.cc:726
#8 0x00007ffff3e8858d in opentelemetry::v1::exporter::otlp::OtlpHttpExporter::Export (this=0x77bc90, spans=...)
at /home/bharat/open-tele/opentelemetry-cpp/exporters/otlp/src/otlp_http_exporter.cc:191
#9 0x00007ffff3c12e55 in opentelemetry::v1::sdk::trace::SimpleSpanProcessor::OnEnd (this=0x782b90, span=...)
at /home/bharat/open-tele/opentelemetry-cpp/sdk/include/opentelemetry/sdk/trace/simple_processor.h:59
#10 0x00007ffff3bc6337 in opentelemetry::v1::sdk::trace::MultiSpanProcessor::OnEnd (this=0x718e80, span=...)
at /home/bharat/open-tele/opentelemetry-cpp/sdk/include/opentelemetry/sdk/trace/multi_span_processor.h:103
#11 0x00007ffff3c0a87c in opentelemetry::v1::sdk::trace::Span::End (this=0x7ffefc002e80, options=...)
at /home/bharat/open-tele/opentelemetry-cpp/sdk/src/trace/span.cc:221
The below call stack is when creating a batch span processor
#0 0x0000000000000000 in ?? ()
#1 0x00007ffff78f8e89 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_deletestd::thread::_State >, void ()())
() from /lib64/libstdc++.so.6
#2 0x00007ffff3c0ed26 in std::thread::thread<void (opentelemetry::v1::sdk::trace::BatchSpanProcessor::)(), opentelemetry::v1::sdk::trace::BatchSpanProcessor*, void> (this=0x7fffffffc710,
__f=@0x7fffffffc720: (void (opentelemetry::v1::sdk::trace::BatchSpanProcessor::*)(opentelemetry::v1::sdk::trace::BatchSpanProcessor * const)) 0x7ffff3c0d516 opentelemetry::v1::sdk::trace::BatchSpanProcessor::DoBackgroundWork()) at /usr/include/c++/8/thread:131
#3 0x00007ffff3c0cd50 in opentelemetry::v1::sdk::trace::BatchSpanProcessor::BatchSpanProcessor (this=0x77ee90, exporter=..., options=...,
runtime_options=...) at /home/bharat/open-tele/opentelemetry-cpp/sdk/src/trace/batch_span_processor.cc:69
#4 0x00007ffff3c12b36 in opentelemetry::v1::sdk::trace::BatchSpanProcessorFactory::Create (exporter=..., options=..., runtime_options=...)
at /home/bharat/open-tele/opentelemetry-cpp/sdk/src/trace/batch_span_processor_factory.cc:35
#5 0x00007ffff3c12ab2 in opentelemetry::v1::sdk::trace::BatchSpanProcessorFactory::Create (exporter=..., options=...)
at /home/bharat/open-tele/opentelemetry-cpp/sdk/src/trace/batch_span_processor_factory.cc:26