Start 21: vita_tile_frequency_test
21/47 Test #21: vita_tile_frequency_test ........... Passed 0.01 sec
Start 22: frequency_entry_parser_test
22/47 Test #22: frequency_entry_parser_test ........ Passed 0.01 sec
Start 23: radio_status_ownership_test
23/47 Test #23: radio_status_ownership_test ........ Passed 0.01 sec
Start 24: profile_load_command_test
24/47 Test #24: profile_load_command_test .......... Passed 0.01 sec
Start 25: slice_recreate_policy_test
25/47 Test #25: slice_recreate_policy_test ......... Passed 0.01 sec
Start 26: shortcut_manager_test
26/47 Test #26: shortcut_manager_test .............. Passed 0.03 sec
Start 27: antenna_alias_test
27/47 Test #27: antenna_alias_test ................. Passed 0.02 sec
Start 28: mqtt_antenna_alias_test
28/47 Test #28: mqtt_antenna_alias_test ............ Passed 0.01 sec
Start 29: mqtt_settings_test
29/47 Test #29: mqtt_settings_test ................. Passed 0.02 sec
Start 30: atu_pretune_centers_test
30/47 Test #30: atu_pretune_centers_test ........... Passed 0.01 sec
Start 31: cwx_local_keyer_drift_test
31/47 Test #31: cwx_local_keyer_drift_test .........***Failed 0.04 sec
=================================================================
==7480==ERROR: AddressSanitizer: heap-use-after-free on address 0x50200000023c at pc 0x56099e767ab4 bp 0x7ffdcc292bf0 sp 0x7ffdcc292be0
WRITE of size 4 at 0x50200000023c thread T0
#0 0x56099e767ab3 in decltype (::new ((void*)(0)) int((declval<int>)())) std::construct_at<int, int>(int*, int&&) (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xaaab3) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#1 0x56099e76374b in int& std::vector<int, std::allocator<int> >::emplace_back<int>(int&&) (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xa674b) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#2 0x56099e75f695 in std::vector<int, std::allocator<int> >::push_back(int&&) (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xa2695) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#3 0x56099e74a27f in operator() /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:98
#4 0x56099e756321 in __invoke_impl<void, (anonymous namespace)::Fixture::Fixture()::<lambda(bool)>&, bool> /usr/include/c++/13/bits/invoke.h:61
#5 0x56099e755f32 in __invoke_r<void, (anonymous namespace)::Fixture::Fixture()::<lambda(bool)>&, bool> /usr/include/c++/13/bits/invoke.h:111
#6 0x56099e755bdc in _M_invoke /usr/include/c++/13/bits/std_function.h:290
#7 0x56099e77f951 in std::function<void (bool)>::operator()(bool) const /usr/include/c++/13/bits/std_function.h:591
#8 0x56099e774fc8 in AetherSDR::CwxLocalKeyer::emitKeyDown(bool) /__w/AetherSDR/AetherSDR/src/core/CwxLocalKeyer.cpp:229
#9 0x56099e775231 in AetherSDR::CwxLocalKeyer::keyUpIfDown() /__w/AetherSDR/AetherSDR/src/core/CwxLocalKeyer.cpp:235
#10 0x56099e76e946 in AetherSDR::CwxLocalKeyer::~CwxLocalKeyer() /__w/AetherSDR/AetherSDR/src/core/CwxLocalKeyer.cpp:48
#11 0x56099e74a03e in ~TestKeyer /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:61
#12 0x56099e74aa5b in ~Fixture /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:91
#13 0x56099e74df4e in testLateTicksShortenNextWait /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:160
#14 0x56099e75527f in main /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:279
#15 0x7f03a40b41c9 (/lib/x86_64-linux-gnu/libc.so.6+0x2a1c9) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)
#16 0x7f03a40b428a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)
#17 0x56099e747bc4 in _start (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0x8abc4) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
0x50200000023c is located 12 bytes inside of 16-byte region [0x502000000230,0x502000000240)
freed by thread T0 here:
#0 0x7f03a52545e8 in operator delete(void*, unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:164
#1 0x56099e768534 in std::__new_allocator<int>::deallocate(int*, unsigned long) (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xab534) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#2 0x56099e761e17 in std::_Vector_base<int, std::allocator<int> >::_M_deallocate(int*, unsigned long) (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xa4e17) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#3 0x56099e75eba3 in std::_Vector_base<int, std::allocator<int> >::~_Vector_base() (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xa1ba3) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#4 0x56099e75edc7 in std::vector<int, std::allocator<int> >::~vector() (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xa1dc7) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#5 0x56099e74a938 in ~Fixture /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:91
#6 0x56099e74df4e in testLateTicksShortenNextWait /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:160
#7 0x56099e75527f in main /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:279
#8 0x7f03a40b41c9 (/lib/x86_64-linux-gnu/libc.so.6+0x2a1c9) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)
#9 0x7f03a40b428a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)
#10 0x56099e747bc4 in _start (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0x8abc4) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
previously allocated by thread T0 here:
#0 0x7f03a5253548 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
#1 0x56099e768ffa in std::__new_allocator<int>::allocate(unsigned long, void const*) (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xabffa) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#2 0x56099e7654fd in std::_Vector_base<int, std::allocator<int> >::_M_allocate(unsigned long) (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xa84fd) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#3 0x56099e7658da in void std::vector<int, std::allocator<int> >::_M_realloc_insert<int>(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, int&&) (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xa88da) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#4 0x56099e7638e9 in int& std::vector<int, std::allocator<int> >::emplace_back<int>(int&&) (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xa68e9) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#5 0x56099e75f695 in std::vector<int, std::allocator<int> >::push_back(int&&) (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xa2695) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
#6 0x56099e74a27f in operator() /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:98
#7 0x56099e756321 in __invoke_impl<void, (anonymous namespace)::Fixture::Fixture()::<lambda(bool)>&, bool> /usr/include/c++/13/bits/invoke.h:61
#8 0x56099e755f32 in __invoke_r<void, (anonymous namespace)::Fixture::Fixture()::<lambda(bool)>&, bool> /usr/include/c++/13/bits/invoke.h:111
#9 0x56099e755bdc in _M_invoke /usr/include/c++/13/bits/std_function.h:290
#10 0x56099e77f951 in std::function<void (bool)>::operator()(bool) const /usr/include/c++/13/bits/std_function.h:591
#11 0x56099e774fc8 in AetherSDR::CwxLocalKeyer::emitKeyDown(bool) /__w/AetherSDR/AetherSDR/src/core/CwxLocalKeyer.cpp:229
#12 0x56099e772fbd in AetherSDR::CwxLocalKeyer::scheduleNext() /__w/AetherSDR/AetherSDR/src/core/CwxLocalKeyer.cpp:177
#13 0x56099e773d57 in AetherSDR::CwxLocalKeyer::onTick() /__w/AetherSDR/AetherSDR/src/core/CwxLocalKeyer.cpp:192
#14 0x56099e74940b in tick /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:68
#15 0x56099e74dc0f in testLateTicksShortenNextWait /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:153
#16 0x56099e75527f in main /__w/AetherSDR/AetherSDR/tests/cwx_local_keyer_drift_test.cpp:279
#17 0x7f03a40b41c9 (/lib/x86_64-linux-gnu/libc.so.6+0x2a1c9) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)
#18 0x7f03a40b428a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)
#19 0x56099e747bc4 in _start (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0x8abc4) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209)
SUMMARY: AddressSanitizer: heap-use-after-free (/__w/AetherSDR/AetherSDR/build/cwx_local_keyer_drift_test+0xaaab3) (BuildId: 48bd8b255f8b647aa7a60058e8c0ef3413b39209) in decltype (::new ((void*)(0)) int((declval<int>)())) std::construct_at<int, int>(int*, int&&)
Run: https://github.com/aethersdr/AetherSDR/actions/runs/27954173034
Commit:
756353bDate: 2026-06-22
Fingerprint:
1f1232b9d3fcSanitizer report (first SUMMARY block)
Full
sanitizer.logattached to the workflow run artifacts.