← All tasks
cppapple/foundationdb #7957Not a task: not reproduced

single_process_external_client_fdbcli_tests fails with UBSAN due to ICodeProbe registration issue

envgap__apple__foundationdb-7957

01 / FAILURE SIGNATURE

As reported upstream

18: /mnt/ephemeral/mdvorsky/foundationdb/flow/CodeProbe.cpp:107:23: runtime error: member call on address 0x7f9cae7f28e8 which does not point to an object of type 'probe::ICodeProbe'
Not a benchmark task.
  • In a clean container the reported failure did not reproduce, or the known fix did not make the project run.

02 / ENVIRONMENT RECIPE

Base commit
b361bd8e7a9a82a16ec656d84616c91705697748
Manifest
fdbcli/CMakeLists.txt
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

apple/foundationdb #7957 · read the original issue
Running `single_process_external_client_fdbcli_tests` compiled with USE_UBSAN=ON produces the following warning:



```

    Start 18: single_process_external_client_fdbcli_tests



18: Test command: /opt/rh/rh-python38/root/usr/bin/python3.8 "/mnt/ephemeral/mdvorsky/foundationdb/tests/TestRunner/tmp_cluster.py" "--build-dir" "/mnt/ephemeral/mdvorsky/build/foundationdb.linux.clang.ubsan.x86_64" "--" "/mnt/ephemeral/mdvorsky/foundationdb/bindings/python/tests/fdbcli_tests.py" "/mnt/ephemeral/mdvorsky/build/foundationdb.linux.clang.ubsan.x86_64" "@CLUSTER_FILE@" "--external-client-library" "/mnt/ephemeral/mdvorsky/build/foundationdb.linux.clang.ubsan.x86_64/bindings/c/libfdb_c_external.so"

18: Environment variables: 

18:  UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1

18:  TSAN_OPTIONS=suppressions=/mnt/ephemeral/mdvorsky/foundationdb/contrib/tsan.suppressions

18: Test timeout computed to be: 300

18: Database created

18: /mnt/ephemeral/mdvorsky/foundationdb/flow/CodeProbe.cpp:107:23: runtime error: member call on address 0x7f9cae7f28e8 which does not point to an object of type 'probe::ICodeProbe'

18: 0x7f9cae7f28e8: note: object is of type 'probe::CodeProbeImpl<FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::FileType1428, FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::CondType1428, FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::CommentType1428, FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::CompilationUnitType1428, 1428u, probe::CodeProbeAnnotations<> >'

18:  00 00 00 00  30 b0 c8 ad 9c 7f 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00

18:               ^~~~~~~~~~~~~~~~~~~~~~~

18:               vptr for 'probe::CodeProbeImpl<FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::FileType1428, FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::CondType1428, FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::CommentType1428, FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::CompilationUnitType1428, 1428u, probe::CodeProbeAnnotations<> >'

18:     #0 0x7f9cad821c5f in probe::(anonymous namespace)::CodeProbes::add(probe::ICodeProbe const*) /mnt/ephemeral/mdvorsky/foundationdb/flow/CodeProbe.cpp:107:23

18:     #1 0x7f9cad821c5f in probe::registerProbe(probe::ICodeProbe const&) /mnt/ephemeral/mdvorsky/foundationdb/flow/CodeProbe.cpp:251:25

18:     #2 0x7f9cac3b65a9 in probe::CodeProbeImpl<FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::FileType1428, FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::CondType1428, FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::CommentType1428, FlowLock::TakeActorActorState<FlowLock::TakeActorActor>::a_body1cont1Catch1(Error const&, int)::CompilationUnitType1428, 1428u, probe::CodeProbeAnnotations<> >::CodeProbeImpl() /mnt/ephemeral/mdvorsky/foundationdb/flow/include/flow/CodeProbe.h:248:20

18:     #3 0x7f9cac3b65a9 in __cxx_global_var_init.71 /mnt/ephemeral/mdvorsky/foundationdb/flow/include/flow/CodeProbe.h:249:30

18:     #4 0x7f9cafa339c2 in _dl_init (/lib64/ld-linux-x86-64.so.2+0xf9c2)

18:     #5 0x7f9cafa3859d in dl_open_worker dl-open.c

18:     #6 0x7f9cafa337d3 in _dl_catch_error (/lib64/ld-linux-x86-64.so.2+0xf7d3)

18:     #7 0x7f9cafa37b8a in _dl_open (/lib64/ld-linux-x86-64.so.2+0x13b8a)

18:     #8 0x7f9caf402faa in dlopen_doit dlopen.c

18:     #9 0x7f9cafa337d3 in _dl_catch_error (/lib64/ld-linux-x86-64.so.2+0xf7d3)

18:     #10 0x7f9caf4035ac in _dlerror_run (/lib64/libdl.so.2+0x15ac)

18:     #11 0x7f9caf403040 in dlopen@@GLIBC_2.2.5 (/lib64/libdl.so.2+0x1040)

18:     #12 0x2513251 in loadLibrary(char const*) /mnt/ephemeral/mdvorsky/foundationdb/flow/Platform.actor.cpp:3467:10

18:     #13 0x153f0ed in DLApi::init() /mnt/ephemeral/mdvorsky/foundationdb/fdbclient/MultiVersionTransaction.actor.cpp:680:14

18:     #14 0x15471a3 in DLApi::selectApiVersion(int) /mnt/ephemeral/mdvorsky/foundationdb/fdbclient/MultiVersionTransaction.actor.cpp:854:2

18:     #15 0x15a0095 in MultiVersionApi::setupNetwork()::$_47::operator()(Reference<ClientInfo>) const /mnt/ephemeral/mdvorsky/foundationdb/fdbclient/MultiVersionTransaction.actor.cpp:2418:17

18:     #16 0x15a0095 in decltype(static_cast<MultiVersionApi::setupNetwork()::$_47&>(fp)(static_cast<Reference<ClientInfo>>(fp0))) std::__1::__invoke<MultiVersionApi::setupNetwork()::$_47&, Reference<ClientInfo> >(MultiVersionApi::setupNetwork()::$_47&, Reference<ClientInfo>&&) /usr/local/bin/../include/c++/v1/type_traits:3918:1

18:     #17 0x15a0095 in void std::__1::__invoke_void_return_wrapper<void, true>::__call<MultiVersionApi::setupNetwork()::$_47&, Reference<ClientInfo> >(MultiVersionApi::setupNetwork()::$_47&, Reference<ClientInfo>&&) /usr/local/bin/../include/c++/v1/__functional/invoke.h:61:9

18:     #18 0x15a0095 in std::__1::__function::__alloc_func<MultiVersionApi::setupNetwork()::$_47, std::__1::allocator<MultiVersionApi::setupNetwork()::$_47>, void (Reference<ClientInfo>)>::operator()(Reference<ClientInfo>&&) /usr/local/bin/../include/c++/v1/__functional/function.h:171:16

18:     #19 0x15a0095 in std::__1::__function::__func<MultiVersionApi::setupNetwork()::$_47, std::__1::allocator<MultiVersionApi::setupNetwork()::$_47>, void (Reference<ClientInfo>)>::operator()(Reference<ClientInfo>&&) /usr/local/bin/../include/c++/v1/__functional/function.h:345:12

18:     #20 0x1552b92 in std::__1::function<void (Reference<ClientInfo>)>::operator()(Reference<ClientInfo>) const /usr/local/bin/../include/c++/v1/__functional/function.h:1175:12

18:     #21 0x1552b92 in MultiVersionApi::runOnExternalClients(int, std::__1::function<void (Reference<ClientInfo>)>, bool) /mnt/ephemeral/mdvorsky/foundationdb/fdbclient/MultiVersionTransaction.actor.cpp:2044:5

18:     #22 0x15531ef in MultiVersionApi::runOnExternalClientsAllThreads(std::__1::function<void (Reference<ClientInfo>)>, bool) /mnt/ephemeral/mdvorsky/foundationdb/fdbclient/MultiVersionTransaction.actor.cpp:2029:3

18:     #23 0x156023d in MultiVersionApi::setupNetwork() /mnt/ephemeral/mdvorsky/foundationdb/fdbclient/MultiVersionTransaction.actor.cpp:2416:3

18:     #24 0x12d4e1c in main /mnt/ephemeral/mdvorsky/foundationdb/fdbcli/fdbcli.actor.cpp:2185:8

18:     #25 0x7f9caeb38554 in __libc_start_main (/lib64/libc.so.6+0x22554)

18:     #26 0xc58028 in _start (/mnt/ephemeral/mdvorsky/build/foundationdb.linux.clang.ubsan.x86_64/bin/fdbcli+0xc58028)



```





This is happening only in the following two tests:

- `single_process_external_client_fdbcli_tests`

- `multi_process_external_client_fdbcli_tests`

Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]