Comment 6 for bug 1940589

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Confirmed. Backtrace suggests a race condition when terminating the test.

280/717 Test #515: AdjustReplayGainTest.AdjustReplayGainUpdatesPregain .....................................***Exception: SegFault 1.70 sec
QML debugging is enabled. Only use this in a safe environment.
Note: Google Test filter = AdjustReplayGainTest.AdjustReplayGainUpdatesPregain

Thread 1 (Thread 0x7f2aea914640 (LWP 49758)):
#0 0x0000000000000000 in ()
#1 0x00007f2b080493a9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#2 0x00000000009f6c20 in ControlProxy::valueChanged(double) (this=<optimized out>, _t1=<optimized out>) at mixxx-lib_autogen/include/moc_controlproxy.cpp:164
#3 0x00007f2b080493a9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#4 0x00000000009ea38d in ControlDoublePrivate::valueChanged(double, QObject*) (_t2=<optimized out>, _t1=<optimized out>, this=0x2d114d0) at mixxx-lib_autogen/include/moc_control.cpp:145
#5 ControlDoublePrivate::setInner(double, QObject*) (this=0x2d114d0, value=0, pSender=<optimized out>) at ../src/control/control.cpp:280
#6 0x00007f2b080493a9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#7 0x00000000009eb1e2 in ControlDoublePrivate::valueChangeRequest(double) (_t1=<optimized out>, this=0x2d114d0) at mixxx-lib_autogen/include/moc_control.cpp:152
#8 ControlDoublePrivate::set(double, QObject*) (this=0x2d114d0, value=<optimized out>, pSender=0x2d11430) at ../src/control/control.cpp:265
#9 0x0000000000ab4e56 in ControlObject::set(double) (value=<optimized out>, this=<optimized out>) at ../src/control/controlobject.h:82
#10 EngineBuffer::slotTrackLoading() (this=0x2d093e0) at ../src/engine/enginebuffer.cpp:528
#11 0x00007f2b080493a9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#12 0x00007f2b080493a9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#13 0x0000000000a861c0 in CachingReaderWorker::trackLoading() (this=0x2d0c878) at mixxx-lib_autogen/include/moc_cachingreaderworker.cpp:178
#14 CachingReaderWorker::loadTrack(std::shared_ptr<Track> const&) (this=0x2d0c878, pTrack=std::shared_ptr<Track> (use count 5, weak count 0) = {...}) at ../src/engine/cachingreader/cachingreaderworker.cpp:148
#15 0x0000000000a88364 in CachingReaderWorker::run() (this=0x2d0c878) at ../src/engine/cachingreader/cachingreaderworker.cpp:103
#16 0x00007f2b07e584a6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#17 0x00007f2b0794b299 in start_thread () at /lib64/libpthread.so.0
#18 0x00007f2b07873353 in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f2afeff9280 (LWP 49749)):
#0 0x00007f2b07957a8a in __futex_abstimed_wait_common64 () at /lib64/libpthread.so.0
#1 0x00007f2b079512c0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#2 0x00007f2b07e5e01b in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3 0x00007f2b07e58189 in QThread::wait(QDeadlineTimer) () at /lib64/libQt5Core.so.5
#4 0x0000000000a85c29 in CachingReaderWorker::quitWait() (this=<optimized out>) at ../src/engine/cachingreader/cachingreaderworker.cpp:229
#5 0x0000000000a82a2a in CachingReader::~CachingReader() (this=0x2a4a970, __in_chrg=<optimized out>) at ../src/engine/cachingreader/cachingreader.cpp:96
#6 0x0000000000a82f49 in CachingReader::~CachingReader() (this=0x2a4a970, __in_chrg=<optimized out>) at ../src/engine/cachingreader/cachingreader.cpp:98
#7 0x0000000000abfd2b in EngineBuffer::~EngineBuffer() (this=0x2b11c60, __in_chrg=<optimized out>) at ../src/engine/enginebuffer.cpp:302
#8 0x0000000000ac0239 in EngineBuffer::~EngineBuffer() (this=0x2b11c60, __in_chrg=<optimized out>) at ../src/engine/enginebuffer.cpp:331
#9 0x0000000000eec255 in EngineDeck::~EngineDeck() (this=0x2a6a400, __in_chrg=<optimized out>) at ../src/engine/channels/enginedeck.cpp:47
#10 0x0000000000eec309 in EngineDeck::~EngineDeck() (this=0x2a6a400, __in_chrg=<optimized out>) at ../src/engine/channels/enginedeck.cpp:49
#11 0x0000000000ac7ab3 in EngineMaster::~EngineMaster() (this=0x2a7a0c0, __in_chrg=<optimized out>) at ../src/engine/enginemaster.cpp:249
#12 0x00000000006ba96d in TestEngineMaster::~TestEngineMaster() (this=0x2a7a0c0, __in_chrg=<optimized out>) at ../src/test/signalpathtest.h:51
#13 TestEngineMaster::~TestEngineMaster() (this=0x2a7a0c0, __in_chrg=<optimized out>) at ../src/test/signalpathtest.h:51
#14 0x00000000008efe6d in BaseSignalPathTest::~BaseSignalPathTest() (this=0x2a56010, __in_chrg=<optimized out>) at ../src/test/signalpathtest.h:144
#15 MockedEngineBackendTest::~MockedEngineBackendTest() (this=0x2a56010, __in_chrg=<optimized out>) at ../src/test/mockedenginebackendtest.h:92
#16 (anonymous namespace)::AdjustReplayGainTest::~AdjustReplayGainTest (this=0x2a56010, __in_chrg=<optimized out>) at ../src/test/replaygaintest.cpp:160
#17 (anonymous namespace)::AdjustReplayGainTest_AdjustReplayGainUpdatesPregain_Test::~AdjustReplayGainTest_AdjustReplayGainUpdatesPregain_Test (this=0x2a56010, __in_chrg=<optimized out>) at ../src/test/replaygaintest.cpp:162
#18 (anonymous namespace)::AdjustReplayGainTest_AdjustReplayGainUpdatesPregain_Test::~AdjustReplayGainTest_AdjustReplayGainUpdatesPregain_Test() (this=0x2a56010, __in_chrg=<optimized out>) at ../src/test/replaygaintest.cpp:162
#19 0x000000000117e35d in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (location=0x14a68f2 "the test fixture's destructor", method=<optimized out>, object=0x2a56010) at ../lib/googletest/googletest/src/gtest.cc:2607
#20 testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (object=object@entry=0x2a56010, method=<optimized out>, location=location@entry=0x14a68f2 "the test fixture's destructor") at ../lib/googletest/googletest/src/gtest.cc:2643
#21 0x000000000116c87c in testing::TestInfo::Run() (this=0x29e2690) at ../lib/googletest/googletest/src/gtest.cc:2867
#22 0x000000000116d8c5 in testing::TestInfo::Run() (this=<optimized out>) at ../lib/googletest/googletest/src/gtest.cc:2834
#23 testing::TestSuite::Run() (this=0x29e2890) at ../lib/googletest/googletest/src/gtest.cc:3015
#24 0x0000000001170dca in testing::TestSuite::Run() (this=<optimized out>) at ../lib/googletest/googletest/src/gtest.cc:2994
#25 testing::internal::UnitTestImpl::RunAllTests() (this=0x29a4680) at ../lib/googletest/googletest/src/gtest.cc:5855
#26 0x000000000116d1ab in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (location=0x14a5b78 "auxiliary test code (environments or event listeners)", method=<optimized out>, object=0x29a4680) at ../lib/googletest/googletest/src/gtest.cc:2588
#27 testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (location=0x14a5b78 "auxiliary test code (environments or event listeners)", method=(bool (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * const)) 0x116e6a0 <testing::internal::UnitTestImpl::RunAllTests()>, object=0x29a4680) at ../lib/googletest/googletest/src/gtest.cc:2643
#28 testing::UnitTest::Run() (this=<optimized out>) at ../lib/googletest/googletest/src/gtest.cc:5438
#29 0x00000000005fc901 in RUN_ALL_TESTS() () at ../lib/googletest/googletest/include/gtest/gtest.h:2490
--Type <RET> for more, q to quit, c to continue without paging--
#30 main(int, char**) (argc=<optimized out>, argv=0x7ffce62c6c08) at ../src/test/main.cpp:34

`coredumpctl -1 gdb` has proven to be very helpful.