Closed julianoes closed 1 year ago
This came up in CI: https://github.com/mavlink/MAVSDK/runs/6015323023?check_suite_focus=true
[ RUN ] SitlTest.PX4ActionTakeoffAndKill SITL model: iris /__w/MAVSDK/MAVSDK /__w/MAVSDK/MAVSDK /__w/MAVSDK/MAVSDK waiting for SITL to be running SITL ARGS sitl_bin: /home/user/Firmware/build/px4_sitl_default/bin/px4 debugger: none program: gazebo model: iris world: empty src_path: /home/user/Firmware build_path: /home/user/Firmware/build/px4_sitl_default GAZEBO_PLUGIN_PATH :/home/user/Firmware/build/px4_sitl_default/build_gazebo GAZEBO_MODEL_PATH :/home/user/Firmware/Tools/sitl_gazebo/models LD_LIBRARY_PATH :/home/user/Firmware/build/px4_sitl_default/build_gazebo Home directory not accessible: Permission denied ALSA lib confmisc.c:767:(parse_card) cannot find card '0' ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5220:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory not running gazebo gui SITL COMMAND: "/home/user/Firmware/build/px4_sitl_default/bin/px4" -d "/home/user/Firmware"/ROMFS/px4fmu_common -s etc/init.d-posix/rcS -t "/home/user/Firmware"/test_data INFO [px4] Creating symlink /home/user/Firmware/ROMFS/px4fmu_common -> /home/user/Firmware/build/px4_sitl_default/tmp/rootfs/etc ______ __ __ ___ | ___ \ \ \ / / / | | |_/ / \ V / / /| | | __/ / \ / /_| | | | / /^\ \ \___ | \_| \/ \/ |_/ px4 starting. INFO [px4] Calling startup script: /bin/sh etc/init.d-posix/rcS 0 INFO [param] selected parameter default file eeprom/parameters_10016 [param] Loaded: eeprom/parameters_10016 COM_DL_LOSS_T set to 100 COM_RC_LOSS_T set to 5.0 COM_OF_LOSS_T set to 5.0 INFO [dataman] Unknown restart, data manager file './dataman' size is 11798680 bytes INFO [simulator] Waiting for simulator to accept connection on TCP port 4560 INFO [simulator] Simulator connected on TCP port 4560. INFO [commander] LED: open /dev/led0 failed (22) INFO [init] Mixer: etc/mixers/quad_w.main.mix on /dev/pwm_output0 INFO [mavlink] mode: Normal, data rate: 4000000 B/s on udp port 18570 remote port 14550 INFO [mavlink] mode: Onboard, data rate: 4000000 B/s on udp port 14580 remote port 14540 INFO [mavlink] mode: Onboard, data rate: 4000 B/s on udp port 14280 remote port 14030 INFO [logger] logger started (mode=all) INFO [logger] Start file log (type: full) INFO [logger] [logger] ./log/2022-04-13/22_01_12.ulg INFO [logger] Opened full log file: ./log/2022-04-13/22_01_12.ulg INFO [mavlink] MAVLink only on localhost (set param MAV_BROADCAST = 1 to enable network) INFO [px4] Startup script returned successfully INFO [ecl/EKF] 1104000: GPS checks passed INFO [ecl/EKF] 3016000: EKF aligned, (baro hgt, IMU buf: 18, OBS buf: 14) INFO [ecl/EKF] 3016000: reset position to last known position INFO [ecl/EKF] 3016000: reset velocity to zero INFO [ecl/EKF] 5604000: reset position to GPS INFO [ecl/EKF] 5604000: reset velocity to GPS INFO [ecl/EKF] 5604000: starting GPS fusion done INFO [mavlink] partner IP: 127.0.0.1 ================================================================= ==8610==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fff76e5e270 at pc 0x564e15f0f17f bp 0x7f718b3fd890 sp 0x7f718b3fd880 READ of size 8 at 0x7fff76e5e270 thread T18 INFO [commander] Armed by external command #0 0x564e15f0f17e in std::__shared_ptr<std::__future_base::_State_baseV2, (__gnu_cxx::_Lock_policy)2>::get() const /usr/include/c++/9/bits/shared_ptr_base.h:1310 #1 0x564e15f0cf93 in std::__shared_ptr_access<std::__future_base::_State_baseV2, (__gnu_cxx::_Lock_policy)2, false, false>::_M_get() const /usr/include/c++/9/bits/shared_ptr_base.h:1021 #2 0x564e15f0a4e1 in std::__shared_ptr_access<std::__future_base::_State_baseV2, (__gnu_cxx::_Lock_policy)2, false, false>::operator->() const /usr/include/c++/9/bits/shared_ptr_base.h:1015 #3 0x564e15f07443 in std::promise<void>::set_value() /usr/include/c++/9/future:1313 #4 0x564e15f22adf in operator() /__w/MAVSDK/MAVSDK/src/integration_tests/action_takeoff_and_kill.cpp:42 #5 0x564e15f27c11 in _M_invoke /usr/include/c++/9/bits/std_function.h:300 #6 0x7f7190744995 in std::function<void (bool)>::operator()(bool) const /usr/include/c++/9/bits/std_function.h:688 #7 0x7f7190b25803 in operator() /__w/MAVSDK/MAVSDK/src/mavsdk/plugins/telemetry/telemetry_impl.cpp:1147 #8 0x7f7190b56738 in _M_invoke /usr/include/c++/9/bits/std_function.h:300 #9 0x7f7190712fcd in std::function<void ()>::operator()() const /usr/include/c++/9/bits/std_function.h:688 #10 0x7f719076cacb in mavsdk::MavsdkImpl::process_user_callbacks_thread() /__w/MAVSDK/MAVSDK/src/mavsdk/core/mavsdk_impl.cpp:599 #11 0x7f7190784f6a in void std::__invoke_impl<void, void (mavsdk::MavsdkImpl::*)(), mavsdk::MavsdkImpl*>(std::__invoke_memfun_deref, void (mavsdk::MavsdkImpl::*&&)(), mavsdk::MavsdkImpl*&&) /usr/include/c++/9/bits/invoke.h:73 #12 0x7f7190784da5 in std::__invoke_result<void (mavsdk::MavsdkImpl::*)(), mavsdk::MavsdkImpl*>::type std::__invoke<void (mavsdk::MavsdkImpl::*)(), mavsdk::MavsdkImpl*>(void (mavsdk::MavsdkImpl::*&&)(), mavsdk::MavsdkImpl*&&) /usr/include/c++/9/bits/invoke.h:95 #13 0x7f7190784d04 in void std::thread::_Invoker<std::tuple<void (mavsdk::MavsdkImpl::*)(), mavsdk::MavsdkImpl*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/include/c++/9/thread:244 #14 0x7f7190784b0b in std::thread::_Invoker<std::tuple<void (mavsdk::MavsdkImpl::*)(), mavsdk::MavsdkImpl*> >::operator()() /usr/include/c++/9/thread:251 #15 0x7f71907849cb in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (mavsdk::MavsdkImpl::*)(), mavsdk::MavsdkImpl*> > >::_M_run() /usr/include/c++/9/thread:195 #16 0x7f718ffb6d83 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xd6d83) #17 0x7f71900cc608 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x9608) #18 0x7f718fcc1292 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x122292) Address 0x7fff76e5e270 is located in stack of thread T0 at offset 2064 in frame #0 0x564e15f23715 in SitlTest_PX4ActionTakeoffAndKill_Test::TestBody() /__w/MAVSDK/MAVSDK/src/integration_tests/action_takeoff_and_kill.cpp:10 This frame has 94 object(s): [48, 49) '<unknown>' [64, 65) '<unknown>' [80, 81) '<unknown>' [96, 97) '<unknown>' [112, 116) '<unknown>' [128, 132) '<unknown>' [144, 148) '<unknown>' [160, 164) '<unknown>' [176, 180) '<unknown>' [192, 196) '<unknown>' [208, 212) '<unknown>' [224, 228) '<unknown>' [240, 244) '<unknown>' [256, 260) '<unknown>' [272, 276) '<unknown>' [288, 292) '<unknown>' [304, 308) '<unknown>' [320, 324) '<unknown>' [336, 340) '<unknown>' [352, 356) '<unknown>' [368, 372) '<unknown>' [384, 388) '<unknown>' [400, 404) '<unknown>' [416, 420) '<unknown>' [432, 440) '<unknown>' [464, 472) '<unknown>' [496, 504) '<unknown>' [528, 536) '<unknown>' [560, 568) '<unknown>' [592, 600) '<unknown>' [624, 632) '<unknown>' [656, 664) '<unknown>' [688, 696) '<unknown>' [720, 728) '<unknown>' [752, 760) '<unknown>' [784, 792) '<unknown>' [816, 824) '<unknown>' [848, 856) '<unknown>' [880, 888) '<unknown>' [912, 920) '<unknown>' [944, 952) '<unknown>' [976, 984) '<unknown>' [1008, 1016) '<unknown>' [1040, 1048) '<unknown>' [1072, 1080) '<unknown>' [1104, 1112) '<unknown>' [1136, 1144) '<unknown>' [1168, 1176) '<unknown>' [1200, 1208) '<unknown>' [1232, 1240) '<unknown>' [1264, 1272) '<unknown>' [1296, 1304) '<unknown>' [1328, 1344) 'mavsdk' (line 11) [1360, 1376) 'gtest_ar' (line 12) [1392, 1408) 'fut' (line 17) [1424, 1440) 'gtest_ar' (line 26) [1456, 1472) 'system' (line 29) [1488, 1504) 'gtest_ar_' (line 30) [1520, 1536) 'telemetry' (line 31) [1552, 1568) 'action' (line 32) [1584, 1600) 'fut' (line 37) [1616, 1632) 'gtest_ar' (line 45) [1648, 1664) 'fut' (line 56) [1680, 1696) 'gtest_ar' (line 61) [1712, 1728) 'fut' (line 67) [1744, 1760) 'gtest_ar' (line 72) [1776, 1792) 'gtest_ar_' (line 75) [1808, 1824) 'fut' (line 83) [1840, 1856) 'gtest_ar' (line 88) [1872, 1888) 'gtest_ar_' (line 91) [1904, 1920) 'gtest_ar_' (line 95) [1936, 1960) 'prom' (line 16) [2000, 2024) '<unknown>' [2064, 2088) 'prom' (line 36) <== Memory access at offset 2064 is inside this variable [2128, 2152) 'prom' (line 55) [2192, 2216) 'prom' (line 66) [2256, 2280) 'prom' (line 82) [2320, 2352) '<unknown>' [2384, 2416) '<unknown>' [2448, 2480) '<unknown>' [2512, 2544) '<unknown>' [2576, 2608) '<unknown>' [2640, 2672) '<unknown>' [2704, 2736) '<unknown>' [2768, 2800) '<unknown>' [2832, 2864) '<unknown>' [2896, 2928) '<unknown>' [2960, 2992) '<unknown>' [3024, 3056) '<unknown>' [3088, 3512) '<unknown>' [3584, 4008) '<unknown>' [4080, 4504) '<unknown>' [4576, 5000) '<unknown>' [5072, 5496) '<unknown>' HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork (longjmp and C++ exceptions *are* supported) SUMMARY: AddressSanitizer: stack-use-after-scope /usr/include/c++/9/bits/shared_ptr_base.h:1310 in std::__shared_ptr<std::__future_base::_State_baseV2, (__gnu_cxx::_Lock_policy)2>::get() const Shadow bytes around the buggy address: 0x10006edc3bf0: f2 f2 00 00 f2 f2 f8 f8 f2 f2 f8 f8 f2 f2 f8 f8 0x10006edc3c00: f2 f2 00 00 f2 f2 f8 f8 f2 f2 00 00 f2 f2 00 00 0x10006edc3c10: f2 f2 f8 f8 f2 f2 f8 f8 f2 f2 00 00 f2 f2 00 00 0x10006edc3c20: f2 f2 00 00 f2 f2 00 00 f2 f2 00 00 f2 f2 00 00 0x10006edc3c30: f2 f2 00 00 f2 f2 00 00 f2 f2 00 00 f2 f2 f8 f8 =>0x10006edc3c40: f8 f2 f2 f2 f2 f2 f8 f8 f8 f2 f2 f2 f2 f2[f8]f8 0x10006edc3c50: f8 f2 f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 0x10006edc3c60: 00 f2 f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 f8 f8 0x10006edc3c70: f8 f8 f2 f2 f2 f2 00 00 00 00 f2 f2 f2 f2 f8 f8 0x10006edc3c80: f8 f8 f2 f2 f2 f2 f8 f8 f8 f8 f2 f2 f2 f2 00 00 0x10006edc3c90: 00 00 f2 f2 f2 f2 00 00 00 00 f2 f2 f2 f2 00 00 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Shadow gap: cc Thread T18 created by T0 here: #0 0x7f7190f14805 in pthread_create (/lib/x86_64-linux-gnu/libasan.so.5+0x3a805) #1 0x7f718ffb7048 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xd7048) #2 0x7f7190765db4 in mavsdk::MavsdkImpl::MavsdkImpl() /__w/MAVSDK/MAVSDK/src/mavsdk/core/mavsdk_impl.cpp:47 #3 0x7f7190760f42 in void __gnu_cxx::new_allocator<mavsdk::MavsdkImpl>::construct<mavsdk::MavsdkImpl>(mavsdk::MavsdkImpl*) /usr/include/c++/9/ext/new_allocator.h:147 #4 0x7f7190760e42 in void std::allocator_traits<std::allocator<mavsdk::MavsdkImpl> >::construct<mavsdk::MavsdkImpl>(std::allocator<mavsdk::MavsdkImpl>&, mavsdk::MavsdkImpl*) /usr/include/c++/9/bits/alloc_traits.h:484 #5 0x7f7190760c05 in std::_Sp_counted_ptr_inplace<mavsdk::MavsdkImpl, std::allocator<mavsdk::MavsdkImpl>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<mavsdk::MavsdkImpl>) /usr/include/c++/9/bits/shared_ptr_base.h:548 #6 0x7f71907607a2 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<mavsdk::MavsdkImpl, std::allocator<mavsdk::MavsdkImpl>>(mavsdk::MavsdkImpl*&, std::_Sp_alloc_shared_tag<std::allocator<mavsdk::MavsdkImpl> >) /usr/include/c++/9/bits/shared_ptr_base.h:679 #7 0x7f7190760379 in std::__shared_ptr<mavsdk::MavsdkImpl, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<mavsdk::MavsdkImpl>>(std::_Sp_alloc_shared_tag<std::allocator<mavsdk::MavsdkImpl> >) /usr/include/c++/9/bits/shared_ptr_base.h:1344 #8 0x7f71907600e2 in std::shared_ptr<mavsdk::MavsdkImpl>::shared_ptr<std::allocator<mavsdk::MavsdkImpl>>(std::_Sp_alloc_shared_tag<std::allocator<mavsdk::MavsdkImpl> >) /usr/include/c++/9/bits/shared_ptr.h:359 #9 0x7f719075fe99 in std::shared_ptr<mavsdk::MavsdkImpl> std::allocate_shared<mavsdk::MavsdkImpl, std::allocator<mavsdk::MavsdkImpl>>(std::allocator<mavsdk::MavsdkImpl> const&) (/__w/MAVSDK/MAVSDK/build/debug/src/mavsdk/libmavsdk.so.5e4ce149+0x45de99) #10 0x7f719075fba7 in std::shared_ptr<mavsdk::MavsdkImpl> std::make_shared<mavsdk::MavsdkImpl>() /usr/include/c++/9/bits/shared_ptr.h:718 #11 0x7f719075ea2d in mavsdk::Mavsdk::Mavsdk() /__w/MAVSDK/MAVSDK/src/mavsdk/core/mavsdk.cpp:9 #12 0x564e15f23e36 in SitlTest_PX4ActionTakeoffAndKill_Test::TestBody() /__w/MAVSDK/MAVSDK/src/integration_tests/action_takeoff_and_kill.cpp:11 #13 0x7f719020dcac in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /__w/MAVSDK/MAVSDK/src/third_party/gtest/googletest/src/gtest.cc:2589 #14 0x7f71901fb81b in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /__w/MAVSDK/MAVSDK/src/third_party/gtest/googletest/src/gtest.cc:2625 #15 0x7f719019ae9d in testing::Test::Run() /__w/MAVSDK/MAVSDK/src/third_party/gtest/googletest/src/gtest.cc:2664 #16 0x7f719019c380 in testing::TestInfo::Run() /__w/MAVSDK/MAVSDK/src/third_party/gtest/googletest/src/gtest.cc:2842 #17 0x7f719019d447 in testing::TestSuite::Run() /__w/MAVSDK/MAVSDK/src/third_party/gtest/googletest/src/gtest.cc:2996 #18 0x7f71901bbf76 in testing::internal::UnitTestImpl::RunAllTests() /__w/MAVSDK/MAVSDK/src/third_party/gtest/googletest/src/gtest.cc:5708 #19 0x7f7190210bc0 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /__w/MAVSDK/MAVSDK/src/third_party/gtest/googletest/src/gtest.cc:2589 #20 0x7f71901fe45a in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /__w/MAVSDK/MAVSDK/src/third_party/gtest/googletest/src/gtest.cc:2625 #21 0x7f71901b890b in testing::UnitTest::Run() /__w/MAVSDK/MAVSDK/src/third_party/gtest/googletest/src/gtest.cc:5291 #22 0x564e15efda51 in RUN_ALL_TESTS() /__w/MAVSDK/MAVSDK/src/third_party/gtest/googletest/include/gtest/gtest.h:2471 #23 0x564e15efd92e in main /__w/MAVSDK/MAVSDK/src/mavsdk/core/unittests_main.cpp:10 #24 0x7f718fbc60b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2) ==8610==ABORTING INFO [commander] Disarmed by auto preflight disarming INFO [logger] closed logfile, bytes written: 4970348
I'm pretty sure this should be resolved with the changes that came with the new handles used in v2.
This came up in CI: https://github.com/mavlink/MAVSDK/runs/6015323023?check_suite_focus=true