The opentelemetry was built through CMake and imported as a cc_library with .so files into my Bazel environment.
While program termination, ForceFlush() is invoked which calls the Callback() function for GaueMetrics which ends in
Note: all my bazel tests pass, this is only an error occuring during program termination.
the program terminates normally as expected. But adding baggage (map or std::initializer_list<std::pair<opentelemetry::nostd::string_view, opentelemetry::common::AttributeValue> > ) gives virtual method called error
Thread 17 "test" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff4dfe640 (LWP 113816)]
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140737301702208) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: No such file or directory.
(gdb) bt
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737301702208) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=140737301702208) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=140737301702208, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007ffff5c42476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff5c287f3 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff60a2b9e in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff60ae20c in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#7 0x00007ffff60ae277 in std::terminate() () from /lib/x86_64-linux-gnu/libstdc++.so.6
#8 0x00007ffff60aefa5 in __cxa_pure_virtual () from /lib/x86_64-linux-gnu/libstdc++.so.6
#9 0x00007ffff6ee1ee2 in opentelemetry::v1::sdk::metrics::FilteredOrderedAttributeMap::FilteredOrderedAttributeMap(opentelemetry::v1::common::KeyValueIterable const&, opentelemetry::v1::sdk::metrics::AttributesProcessor const*)::{lambda(opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >)#1}::operator()(opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >) const ()
from /home/siyer/.cache/bazel/_bazel_siyer/3c4caa948cf49a66edd7db3c22f83b3e/execroot/_main/bazel-out/k8-fastbuild/bin/instrumentation_manager/../_solib_k8/_U_A_Aard_Uopentelemetry-cpp_S_S_Card_Uopentelemetry-cpp_Ux86_U64_Ulibs___Uopentelemetry-cpp_Ux86_Slib/libopentelemetry_metrics.so
#10 0x00007ffff6ee2126 in opentelemetry::v1::nostd::function_ref<bool (opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >)>::BindTo<opentelemetry::v1::sdk::metrics::FilteredOrderedAttributeMap::FilteredOrderedAttributeMap(opentelemetry::v1::common::KeyValueIterable const&, opentelemetry::v1::sdk::metrics::AttributesProcessor const*)::{lambda(opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >)#1}>(opentelemetry::v1::sdk::metrics::FilteredOrderedAttributeMap::FilteredOrderedAttributeMap(opentelemetry::v1::common::KeyValueIterable const&, opentelemetry::v1::sdk::metrics::AttributesProcessor const*)::{lambda(opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >)#1}&)::{lambda(void*, opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >)#1}::operator()(void*, opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >) const ()
from /home/siyer/.cache/bazel/_bazel_siyer/3c4caa948cf49a66edd7db3c22f83b3e/execroot/_main/bazel-out/k8-fastbuild/bin/instrumentation_manager/../_solib_k8/_U_A_Aard_Uopentelemetry-cpp_S_S_Card_Uopentelemetry-cpp_Ux86_U64_Ulibs___Uopentelemetry-cpp_Ux86_Slib/libopentelemetry_metrics.so
#11 0x00007ffff6ee2180 in opentelemetry::v1::nostd::function_ref<bool (opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >)>::BindTo<opentelemetry::v1::sdk::metrics::FilteredOrderedAttributeMap::FilteredOrderedAttributeMap(opentelemetry::v1::common::KeyValueIterable const&, opentelemetry::v1::sdk::metrics::AttributesProcessor const*)::{lambda(opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >)#1}>(opentelemetry::v1::sdk::metrics::FilteredOrderedAttributeMap::FilteredOrderedAttributeMap(opentelemetry::v1::common::KeyValueIterable const&, opentelemetry::v1::sdk::metrics::AttributesProcessor const*)::{lambda(opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >)#1}&)::{lambda(void*, opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >)#1}::_FUN(void*, opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >) ()
from /home/siyer/.cache/bazel/_bazel_siyer/3c4caa948cf49a66edd7db3c22f83b3e/execroot/_main/bazel-out/k8-fastbuild/bin/instrumentation_manager/../_solib_k8/_U_A_Aard_Uopentelemetry-cpp_S_S_Card_Uopentelemetry-cpp_Ux86_U64_Ulibs___Uopentelemetry-cpp_Ux86_Slib/libopentelemetry_metrics.so
#12 0x00005555555963b5 in opentelemetry::v1::common::KeyValueIterableView<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<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> > > > > >::ForEachKeyValue(opentelemetry::v1::nostd::function_ref<bool (opentelemetry::v1::nostd::string_view, absl::otel_v1::variant<bool, int, long, unsigned int, double, char const*, opentelemetry::v1::nostd::string_view, opentelemetry::v1::nostd::span<bool const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned int const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<double const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<opentelemetry::v1::nostd::string_view const, 18446744073709551615ul>, unsigned long, opentelemetry::v1::nostd::span<unsigned long const, 18446744073709551615ul>, opentelemetry::v1::nostd::span<unsigned char const, 18446744073709551615ul> >)>) const ()
#13 0x00007ffff6ee1f99 in opentelemetry::v1::sdk::metrics::FilteredOrderedAttributeMap::FilteredOrderedAttributeMap(opentelemetry::v1::common::KeyValueIterable const&, opentelemetry::v1::sdk::metrics::AttributesProcessor const*) ()
from /home/siyer/.cache/bazel/_bazel_siyer/3c4caa948cf49a66edd7db3c22f83b3e/execroot/_main/bazel-out/k8-fastbuild/bin/instrumentation_manager/../_solib_k8/_U_A_Aard_Uopentelemetry-cpp_S_S_Card_Uopentelemetry-cpp_Ux86_U64_Ulibs___Uopentelemetry-cpp_Ux86_Slib/libopentelemetry_metrics.so
#14 0x00007ffff6ee9906 in opentelemetry::v1::sdk::metrics::ObserverResultT<double>::Observe(double, opentelemetry::v1::common::KeyValueIterable const&) ()
from /home/siyer/.cache/bazel/_bazel_siyer/3c4caa948cf49a66edd7db3c22f83b3e/execroot/_main/bazel-out/k8-fastbuild/bin/instrumentation_manager/../_solib_k8/_U_A_Aard_Uopentelemetry-cpp_S_S_Card_Uopentelemetry-cpp_Ux86_U64_Ulibs___Uopentelemetry-cpp_Ux86_Slib/libopentelemetry_metrics.so
#15 0x000055555559961c in ARD::Foundation::Instrumentation::Metrics::GaugeMetric::gauge_callback(absl::otel_v1::variant<opentelemetry::v1::nostd::shared_ptr<opentelemetry::v1::metrics::ObserverResultT<long> >, opentelemetry::v1::nostd::shared_ptr<opentelemetry::v1::metrics::ObserverResultT<double> > >, void*) ()
#16 0x00007ffff6ee4ed7 in opentelemetry::v1::sdk::metrics::ObservableRegistry::Observe(opentelemetry::v1::common::SystemTimestamp) ()
from /home/siyer/.cache/bazel/_bazel_siyer/3c4caa948cf49a66edd7db3c22f83b3e/execroot/_main/bazel-out/k8-fastbuild/bin/instrumentation_manager/../_solib_k8/_U_A_Aard_Uopentelemetry-cpp_S_S_Card_Uopentelemetry-cpp_Ux86_U64_Ulibs___Uopentelemetry-cpp_Ux86_Slib/libopentelemetry_metrics.so
#17 0x00007ffff6e9611f in opentelemetry::v1::sdk::metrics::Meter::Collect(opentelemetry::v1::sdk::metrics::CollectorHandle*, opentelemetry::v1::common::SystemTimestamp) ()
The opentelemetry was built through CMake and imported as a cc_library with .so files into my Bazel environment.
Steps to reproduce
CleanUp code:
While program termination, ForceFlush() is invoked which calls the Callback() function for GaueMetrics which ends in
Note: all my bazel tests pass, this is only an error occuring during program termination.
What is the expected behavior?
If the program does not add any baggage to Gauge Callback and uses only
the program terminates normally as expected. But adding baggage (map or std::initializer_list<std::pair<opentelemetry::nostd::string_view, opentelemetry::common::AttributeValue> > ) gives virtual method called error
Additional context
Stacktrace: