Skip to content

[C++][CI] parquet-arrow-reader-writer-tracing-test fails with missing symbols with System OpenTelemetry #51632

Description

@raulcd

Describe the bug, including details regarding any error messages, version, and platform.

The following PR:

Fixed double linking but it seems we introduced a new failure when using system OpenTelemetry as seen on the following debian nightly failures:

This is also failing on the C++ extra job:
AMD64 Debian SIMD Level NONE

The failure:

[2547/2560] Linking CXX executable debug/parquet-arrow-reader-writer-tracing-test
FAILED: debug/parquet-arrow-reader-writer-tracing-test 
: && /usr/bin/c++ -Wredundant-move -Wno-noexcept-type -Wno-self-move  -fdiagnostics-color=always  -Wall -Wno-conversion -Wno-sign-conversion -Wdate-time -Wimplicit-fallthrough -Wunused-result -fno-semantic-interposition -march=x86-64 -g -Werror -O0 -ggdb -g1 -fuse-ld=mold    -Wl,--dependency-file=src/parquet/CMakeFiles/parquet-arrow-reader-writer-tracing-test.dir/link.d src/parquet/CMakeFiles/parquet_testing.dir/test_util.cc.o src/parquet/CMakeFiles/parquet-arrow-reader-writer-tracing-test.dir/arrow/arrow_reader_writer_tracing_test.cc.o -o debug/parquet-arrow-reader-writer-tracing-test  -Wl,-rpath,/build/cpp/debug  debug/libparquet.so.2600.0.0  debug/libarrow_testing.so.2600.0.0  /usr/lib/x86_64-linux-gnu/libgmock_main.a  /usr/lib/x86_64-linux-gnu/libthrift.so  -ldl  _deps/simdjson-build/libsimdjson.a  debug/libarrow.so.2600.0.0  /usr/lib/x86_64-linux-gnu/libgmock.a  /usr/lib/x86_64-linux-gnu/libgtest.a && :
mold: error: undefined symbol: opentelemetry::v1::sdk::trace::SpanExporter::~SpanExporter()
>>> referenced by arrow_reader_writer_tracing_test.cc
>>>               src/parquet/CMakeFiles/parquet-arrow-reader-writer-tracing-test.dir/arrow/arrow_reader_writer_tracing_test.cc.o:(parquet::arrow::(anonymous namespace)::CapturingSpanExporter::~CapturingSpanExporter())
mold: error: undefined symbol: opentelemetry::v1::sdk::trace::TracerProvider::~TracerProvider()
>>> referenced by arrow_reader_writer_tracing_test.cc
>>>               src/parquet/CMakeFiles/parquet-arrow-reader-writer-tracing-test.dir/arrow/arrow_reader_writer_tracing_test.cc.o:(std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<opentelemetry::v1::sdk::trace::TracerProvider*>(opentelemetry::v1::sdk::trace::TracerProvider*))
>>> referenced by arrow_reader_writer_tracing_test.cc
>>>               src/parquet/CMakeFiles/parquet-arrow-reader-writer-tracing-test.dir/arrow/arrow_reader_writer_tracing_test.cc.o:(std::_Sp_counted_ptr<opentelemetry::v1::sdk::trace::TracerProvider*, (__gnu_cxx::_Lock_policy)2>::_M_dispose())
mold: error: undefined symbol: opentelemetry::v1::sdk::trace::SpanExporter::SpanExporter()
>>> referenced by arrow_reader_writer_tracing_test.cc
>>>               src/parquet/CMakeFiles/parquet-arrow-reader-writer-tracing-test.dir/arrow/arrow_reader_writer_tracing_test.cc.o:(parquet::arrow::(anonymous namespace)::CapturingSpanExporter::CapturingSpanExporter(std::shared_ptr<parquet::arrow::(anonymous namespace)::CapturedSpanStorage>))
mold: error: undefined symbol: typeinfo for opentelemetry::v1::sdk::trace::SpanExporter
>>> referenced by arrow_reader_writer_tracing_test.cc
>>>               src/parquet/CMakeFiles/parquet-arrow-reader-writer-tracing-test.dir/arrow/arrow_reader_writer_tracing_test.cc.o
mold: error: undefined symbol: vtable for opentelemetry::v1::sdk::trace::RandomIdGenerator
>>> referenced by arrow_reader_writer_tracing_test.cc
>>>               src/parquet/CMakeFiles/parquet-arrow-reader-writer-tracing-test.dir/arrow/arrow_reader_writer_tracing_test.cc.o:(opentelemetry::v1::sdk::trace::RandomIdGenerator::RandomIdGenerator())
mold: error: undefined symbol: opentelemetry::v1::sdk::resource::Resource::Create(opentelemetry::v1::sdk::common::AttributeMap const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
>>> referenced by arrow_reader_writer_tracing_test.cc
>>>               src/parquet/CMakeFiles/parquet-arrow-reader-writer-tracing-test.dir/arrow/arrow_reader_writer_tracing_test.cc.o:(parquet::arrow::(anonymous namespace)::OtelEnvironment::SetUp())
mold: error: undefined symbol: opentelemetry::v1::sdk::trace::TracerProvider::TracerProvider(std::unique_ptr<opentelemetry::v1::sdk::trace::SpanProcessor, std::default_delete<opentelemetry::v1::sdk::trace::SpanProcessor> >, opentelemetry::v1::sdk::resource::Resource const&, std::unique_ptr<opentelemetry::v1::sdk::trace::Sampler, std::default_delete<opentelemetry::v1::sdk::trace::Sampler> >, std::unique_ptr<opentelemetry::v1::sdk::trace::IdGenerator, std::default_delete<opentelemetry::v1::sdk::trace::IdGenerator> >)
>>> referenced by arrow_reader_writer_tracing_test.cc
>>>               src/parquet/CMakeFiles/parquet-arrow-reader-writer-tracing-test.dir/arrow/arrow_reader_writer_tracing_test.cc.o:(parquet::arrow::(anonymous namespace)::OtelEnvironment::SetUp())
collect2: error: ld returned 1 exit status

Component(s)

C++, Continuous Integration

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions