Skip to content

Fix opentracing tests to be typesafe #34321

@alyssawilk

Description

@alyssawilk

see CI failures on the first push of #34306

[ RUN ] DynamicOtTracerConfigTest.DynamicOpentracingHttpTracer
source/extensions/tracers/dynamic_ot/dynamic_opentracing_driver_impl.cc:22:40: runtime error: member call on address 0x6020000cb790 which does not point to an object of type 'opentracing::TracerFactory'
0x6020000cb790: note: object is of type 'opentracing::v2::mocktracer::MockTracerFactory'
00 00 00 00 f0 91 cb bf c6 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^~~~~~~~~~~~~~~~~~~~~~~
vptr for 'opentracing::v2::mocktracer::MockTracerFactory'
#0 0x35511c5 in Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver::DynamicOpenTracingDriver(Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) /proc/self/cwd/source/extensions/tracers/dynamic_ot/dynamic_opentracing_driver_impl.cc:22:40
#1 0x351b983 in Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver* std::__1::construct_at<Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver, Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver*>(Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver*, Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) /opt/llvm/bin/../include/c++/v1/__memory/construct_at.h:38:50
#2 0x351b61c in void std::__1::allocator_traits<std::__1::allocatorEnvoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver >::construct<Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver, Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, void, void>(std::__1::allocatorEnvoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver&, Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver*, Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) /opt/llvm/bin/../include/c++/v1/__memory/allocator_traits.h:298:9
#3 0x351b364 in std::__1::__shared_ptr_emplace<Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver, std::__1::allocatorEnvoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver >::__shared_ptr_emplace<Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&>(std::__1::allocatorEnvoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver, Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) /opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:293:9
#4 0x351ae01 in std::__1::shared_ptrEnvoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver std::__1::allocate_shared<Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver, std::__1::allocatorEnvoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver, Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, void>(std::__1::allocatorEnvoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver const&, Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) /opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:954:55
#5 0x35161eb in std::__1::shared_ptrEnvoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver std::__1::make_shared<Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingDriver, Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, void>(Envoy::Stats::Scope&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) /opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:963:12
#6 0x3513e96 in Envoy::Extensions::Tracers::DynamicOt::DynamicOpenTracingTracerFactory::createTracerDriverTyped(envoy::config::trace::v3::DynamicOtConfig const&, Envoy::Server::Configuration::TracerFactoryContext&) /proc/self/cwd/source/extensions/tracers/dynamic_ot/config.cc:26:10
#7 0x3485e86 in Envoy::Extensions::Tracers::Common::FactoryBaseenvoy::config::trace::v3::DynamicOtConfig::createTracerDriver(google::protobuf::Message const&, Envoy::Server::Configuration::TracerFactoryContext&) /proc/self/cwd/./source/extensions/tracers/common/factory_base.h:20:12
#8 0x347188e in Envoy::Extensions::Tracers::DynamicOt::(anonymous namespace)::DynamicOtTracerConfigTest_DynamicOpentracingHttpTracer_Test::TestBody() /proc/self/cwd/test/extensions/tracers/dynamic_ot/config_test.cc:52:25
#9 0xa6fdc74 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::)(), char const) /proc/self/cwd/external/com_google_googletest/googletest/src/gtest.cc:2580:10
#10 0xa6c4d12 in testing::Test::Run() /proc/self/cwd/external/com_google_googletest/googletest/src/gtest.cc:2655:5
#11 0xa6c6887 in testing::TestInfo::Run() /proc/self/cwd/external/com_google_googletest/googletest/src/gtest.cc:2832:11
#12 0xa6c8c24 in testing::TestSuite::Run() /proc/self/cwd/external/com_google_googletest/googletest/src/gtest.cc:2986:28
#13 0xa6eafea in testing::internal::UnitTestImpl::RunAllTests() /proc/self/cwd/external/com_google_googletest/googletest/src/gtest.cc:5697:44
#14 0xa701f83 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::)(), char const) /proc/self/cwd/external/com_google_googletest/googletest/src/gtest.cc:2580:10
#15 0xa6e9cf6 in testing::UnitTest::Run() /proc/self/cwd/external/com_google_googletest/googletest/src/gtest.cc:5280:10
#16 0x72505be in Envoy::TestRunner::runTests(int, char**) /proc/self/cwd/external/com_google_googletest/googletest/include/gtest/gtest.h:2485:46
#17 0x724c3c6 in main /proc/self/cwd/test/main.cc:34:10
#18 0x7fc6c2aac082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: eebe5d5f4b608b8a53ec446b63981bba373ca0ca)
#19 0x33b32ad in _start (/b/f/w/bazel-out/k8-dbg/bin/test/extensions/tracers/dynamic_ot/config_test.runfiles/envoy/test/extensions/tracers/dynamic_ot/config_test+0x33b32ad)

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior source/extensions/tracers/dynamic_ot/dynamic_opentracing_driver_impl.cc:22:40 in

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions