-
Notifications
You must be signed in to change notification settings - Fork 89
Open
Description
Ever since CI was updated to fail on a valgrind error, any testcase that uses that sd_bus_add_object_vtable mock fails with something like:
(from https://jenkins.openbmc.org/job/ci-repository/88451/console triggered by https://gerrit.openbmc.org/c/openbmc/phosphor-hwmon/+/72996)
6/6 fanpwm_unittest FAIL 1.83s exit status 1
>>> MALLOC_PERTURB_=139 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 valgrind --error-exitcode=1 /data0/jenkins/workspace/ci-repository/openbmc/phosphor-hwmon/build/test/fanpwm_unittest
✀
Listing only the last 100 lines from a long log.
==687== by 0x513152A: std::ostream& std::ostream::_M_insert<void const*>(void const*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.33)
==687== by 0x147A5A: operator<< (ostream:293)
==687== by 0x147A5A: void testing::internal::PointerPrinter::PrintValue<sd_bus_slot>(sd_bus_slot*, std::ostream*) (gtest-printers.h:197)
==687== by 0x147A7D: void testing::internal::PrintWithFallback<sd_bus_slot*>(sd_bus_slot* const&, std::ostream*) (gtest-printers.h:336)
==687== by 0x147A8F: void testing::internal::PrintTo<sd_bus_slot*>(sd_bus_slot* const&, std::ostream*) (gtest-printers.h:465)
==687== by 0x147AD2: Print (gtest-printers.h:808)
==687== by 0x147AD2: void testing::internal::PrintTupleTo<std::tuple<sd_bus_slot*>, 1ul>(std::tuple<sd_bus_slot*> const&, std::integral_constant<unsigned long, 1ul>, std::ostream*) (gtest-printers.h:764)
==687== by 0x147B01: void testing::internal::PrintTo<sd_bus_slot*>(std::tuple<sd_bus_slot*> const&, std::ostream*) (gtest-printers.h:771)
==687== by 0x147B24: Print (gtest-printers.h:808)
==687== by 0x147B24: void testing::internal::UniversalPrint<std::tuple<sd_bus_slot*> >(std::tuple<sd_bus_slot*> const&, std::ostream*) (gtest-printers.h:1112)
==687== by 0x16868B: testing::internal::FunctionMocker<sd_bus_slot* (sd_bus_slot*)>::UntypedDescribeUninterestingCall(void const*, std::ostream*) const (gmock-spec-builders.h:1624)
==687== by 0x16A705: testing::internal::FunctionMocker<sd_bus_slot* (sd_bus_slot*)>::InvokeWith(std::tuple<sd_bus_slot*>&&) (gmock-spec-builders.h:1828)
==687== by 0x16AB40: Invoke (gmock-spec-builders.h:1548)
==687== by 0x16AB40: sdbusplus::SdBusMock::sd_bus_slot_unref(sd_bus_slot*) (sdbus_mock.hpp:159)
==687==
==687== Conditional jump or move depends on uninitialised value(s)
==687== at 0x4E4AB47: ~unique_ptr (unique_ptr.h:403)
==687== by 0x4E4AB47: ~slot (slot.hpp:43)
==687== by 0x4E4AB47: sdbusplus::server::interface::interface::~interface() (interface.cpp:38)
==687== by 0x137DAE: ~FanPwm (server.hpp:32)
==687== by 0x137DAE: ~compose (object.hpp:181)
==687== by 0x137DAE: sdbusplus::server::object::object<sdbusplus::server::xyz::openbmc_project::control::FanPwm>::~object() (object.hpp:95)
==687== by 0x137EE3: hwmon::FanPwm::~FanPwm() (fan_pwm.hpp:18)
==687== by 0x1205A6: FanPwmTest_BasicConstructorNotDeferredTest_Test::TestBody() (fanpwm_unittest.cpp:107)
==687== by 0x4FA250E: HandleSehExceptionsInMethodIfSupported<testing::Test, void> (gtest.cc:2612)
==687== by 0x4FA250E: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2648)
==687== by 0x4F90B05: Run (gtest.cc:2687)
==687== by 0x4F90B05: testing::Test::Run() (gtest.cc:2677)
==687== by 0x4F90CC4: testing::TestInfo::Run() (gtest.cc:2836)
==687== by 0x4F90EAE: Run (gtest.cc:3015)
==687== by 0x4F90EAE: testing::TestSuite::Run() (gtest.cc:2968)
==687== by 0x4F9718B: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:5920)
==687== by 0x4FA2BE6: HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (gtest.cc:2612)
==687== by 0x4FA2BE6: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2648)
==687== by 0x4F910A7: testing::UnitTest::Run() (gtest.cc:5484)
==687== by 0x4F3E103: RUN_ALL_TESTS (gtest.h:2317)
==687== by 0x4F3E103: main (gtest_main.cc:64)
==687==
==687== Conditional jump or move depends on uninitialised value(s)
==687== at 0x4E4AB47: ~unique_ptr (unique_ptr.h:403)
==687== by 0x4E4AB47: ~slot (slot.hpp:43)
==687== by 0x4E4AB47: sdbusplus::server::interface::interface::~interface() (interface.cpp:38)
==687== by 0x137DAE: ~FanPwm (server.hpp:32)
==687== by 0x137DAE: ~compose (object.hpp:181)
==687== by 0x137DAE: sdbusplus::server::object::object<sdbusplus::server::xyz::openbmc_project::control::FanPwm>::~object() (object.hpp:95)
==687== by 0x137EE3: hwmon::FanPwm::~FanPwm() (fan_pwm.hpp:18)
==687== by 0x11FC77: FanPwmTest_WriteTargetValue_Test::TestBody() (fanpwm_unittest.cpp:150)
==687== by 0x4FA250E: HandleSehExceptionsInMethodIfSupported<testing::Test, void> (gtest.cc:2612)
==687== by 0x4FA250E: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2648)
==687== by 0x4F90B05: Run (gtest.cc:2687)
==687== by 0x4F90B05: testing::Test::Run() (gtest.cc:2677)
==687== by 0x4F90CC4: testing::TestInfo::Run() (gtest.cc:2836)
==687== by 0x4F90EAE: Run (gtest.cc:3015)
==687== by 0x4F90EAE: testing::TestSuite::Run() (gtest.cc:2968)
==687== by 0x4F9718B: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:5920)
==687== by 0x4FA2BE6: HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (gtest.cc:2612)
==687== by 0x4FA2BE6: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2648)
==687== by 0x4F910A7: testing::UnitTest::Run() (gtest.cc:5484)
==687== by 0x4F3E103: RUN_ALL_TESTS (gtest.h:2317)
==687== by 0x4F3E103: main (gtest_main.cc:64)
==687==
==687== Conditional jump or move depends on uninitialised value(s)
==687== at 0x4E4AB47: ~unique_ptr (unique_ptr.h:403)
==687== by 0x4E4AB47: ~slot (slot.hpp:43)
==687== by 0x4E4AB47: sdbusplus::server::interface::interface::~interface() (interface.cpp:38)
==687== by 0x137DAE: ~FanPwm (server.hpp:32)
==687== by 0x137DAE: ~compose (object.hpp:181)
==687== by 0x137DAE: sdbusplus::server::object::object<sdbusplus::server::xyz::openbmc_project::control::FanPwm>::~object() (object.hpp:95)
==687== by 0x137EE3: hwmon::FanPwm::~FanPwm() (fan_pwm.hpp:18)
==687== by 0x11F3D8: FanPwmTest_WriteTargetValueNoUpdate_Test::TestBody() (fanpwm_unittest.cpp:176)
==687== by 0x4FA250E: HandleSehExceptionsInMethodIfSupported<testing::Test, void> (gtest.cc:2612)
==687== by 0x4FA250E: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2648)
==687== by 0x4F90B05: Run (gtest.cc:2687)
==687== by 0x4F90B05: testing::Test::Run() (gtest.cc:2677)
==687== by 0x4F90CC4: testing::TestInfo::Run() (gtest.cc:2836)
==687== by 0x4F90EAE: Run (gtest.cc:3015)
==687== by 0x4F90EAE: testing::TestSuite::Run() (gtest.cc:2968)
==687== by 0x4F9718B: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:5920)
==687== by 0x4FA2BE6: HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (gtest.cc:2612)
==687== by 0x4FA2BE6: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2648)
==687== by 0x4F910A7: testing::UnitTest::Run() (gtest.cc:5484)
==687== by 0x4F3E103: RUN_ALL_TESTS (gtest.h:2317)
==687== by 0x4F3E103: main (gtest_main.cc:64)
==687==
==687==
==687== HEAP SUMMARY:
==687== in use at exit: 56 bytes in 1 blocks
==687== total heap usage: 1,209 allocs, 1,208 frees, 218,730 bytes allocated
==687==
==687== LEAK SUMMARY:
==687== definitely lost: 0 bytes in 0 blocks
==687== indirectly lost: 0 bytes in 0 blocks
==687== possibly lost: 0 bytes in 0 blocks
==687== still reachable: 56 bytes in 1 blocks
==687== suppressed: 0 bytes in 0 blocks
==687== Rerun with --leak-check=full to see details of leaked memory
==687==
==687== Use --track-origins=yes to see where uninitialised values come from
==687== For lists of detected and suppressed errors, rerun with: -s
==687== ERROR SUMMARY: 52 errors from 8 contexts (suppressed: 0 from 0)
Summary of Failures:
6/6 fanpwm_unittest FAIL 1.83s exit status 1
Ok: 5
Expected Fail: 0
Fail: 1
Unexpected Pass: 0
Skipped: 0
Timeout: 0
Full log written to /data0/jenkins/workspace/ci-repository/openbmc/phosphor-hwmon/build/meson-logs/testlog-valgrind.txt
Traceback (most recent call last):
File "/data0/jenkins/workspace/ci-repository/openbmc/openbmc-build-scripts/scripts/unit-test.py", line 1034, in _maybe_valgrind
check_call_cmd(
File "/data0/jenkins/workspace/ci-repository/openbmc/openbmc-build-scripts/scripts/unit-test.py", line 238, in check_call_cmd
check_call(cmd, **kwargs)
File "/usr/lib/python3.12/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '('meson', 'test', '-t', '10', '-C', 'build', '--print-errorlogs', '--wrapper', 'valgrind --error-exitcode=1')' returned non-zero exit status 1.
I tried to track down what was wrong and eventually gave up.
For phosphor-hwmon, I think I'm just going to remove the call to it because it's pretty much just testing sdbusplus at that point and not hwmon code anyway.
Metadata
Metadata
Assignees
Labels
No labels