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.
Confirmed. Backtrace suggests a race condition when terminating the test.
280/717 Test #515: AdjustReplayGai nTest.AdjustRep layGainUpdatesP regain ....... ....... ....... ....... ....... ..***Exception: SegFault 1.70 sec nTest.AdjustRep layGainUpdatesP regain
QML debugging is enabled. Only use this in a safe environment.
Note: Google Test filter = AdjustReplayGai
Thread 1 (Thread 0x7f2aea914640 (LWP 49758)): false>( QObject* , int, void**) () at /lib64/ libQt5Core. so.5 :valueChanged( double) (this=<optimized out>, _t1=<optimized out>) at mixxx-lib_ autogen/ include/ moc_controlprox y.cpp:164 false>( QObject* , int, void**) () at /lib64/ libQt5Core. so.5 ivate:: valueChanged( double, QObject*) (_t2=<optimized out>, _t1=<optimized out>, this=0x2d114d0) at mixxx-lib_ autogen/ include/ moc_control. cpp:145 ivate:: setInner( double, QObject*) (this=0x2d114d0, value=0, pSender=<optimized out>) at ../src/ control/ control. cpp:280 false>( QObject* , int, void**) () at /lib64/ libQt5Core. so.5 ivate:: valueChangeRequ est(double) (_t1=<optimized out>, this=0x2d114d0) at mixxx-lib_ autogen/ include/ moc_control. cpp:152 ivate:: set(double, QObject*) (this=0x2d114d0, value=<optimized out>, pSender=0x2d11430) at ../src/ control/ control. cpp:265 :set(double) (value=<optimized out>, this=<optimized out>) at ../src/ control/ controlobject. h:82 :slotTrackLoadi ng() (this=0x2d093e0) at ../src/ engine/ enginebuffer. cpp:528 false>( QObject* , int, void**) () at /lib64/ libQt5Core. so.5 false>( QObject* , int, void**) () at /lib64/ libQt5Core. so.5 rker::trackLoad ing() (this=0x2d0c878) at mixxx-lib_ autogen/ include/ moc_cachingread erworker. cpp:178 rker::loadTrack (std::shared_ ptr<Track> const&) (this=0x2d0c878, pTrack= std::shared_ ptr<Track> (use count 5, weak count 0) = {...}) at ../src/ engine/ cachingreader/ cachingreaderwo rker.cpp: 148 rker::run( ) (this=0x2d0c878) at ../src/ engine/ cachingreader/ cachingreaderwo rker.cpp: 103 :start( void*) () at /lib64/ libQt5Core. so.5 libpthread. so.0
#0 0x0000000000000000 in ()
#1 0x00007f2b080493a9 in void doActivate<
#2 0x00000000009f6c20 in ControlProxy:
#3 0x00007f2b080493a9 in void doActivate<
#4 0x00000000009ea38d in ControlDoublePr
#5 ControlDoublePr
#6 0x00007f2b080493a9 in void doActivate<
#7 0x00000000009eb1e2 in ControlDoublePr
#8 ControlDoublePr
#9 0x0000000000ab4e56 in ControlObject:
#10 EngineBuffer:
#11 0x00007f2b080493a9 in void doActivate<
#12 0x00007f2b080493a9 in void doActivate<
#13 0x0000000000a861c0 in CachingReaderWo
#14 CachingReaderWo
#15 0x0000000000a88364 in CachingReaderWo
#16 0x00007f2b07e584a6 in QThreadPrivate:
#17 0x00007f2b0794b299 in start_thread () at /lib64/
#18 0x00007f2b07873353 in clone () at /lib64/libc.so.6
Thread 4 (Thread 0x7f2afeff9280 (LWP 49749)): abstimed_ wait_common64 () at /lib64/ libpthread. so.0 cond_wait@ @GLIBC_ 2.3.2 () at /lib64/ libpthread. so.0 :wait(QMutex* , QDeadlineTimer) () at /lib64/ libQt5Core. so.5 :wait(QDeadline Timer) () at /lib64/ libQt5Core. so.5 rker::quitWait( ) (this=<optimized out>) at ../src/ engine/ cachingreader/ cachingreaderwo rker.cpp: 229 :~CachingReader () (this=0x2a4a970, __in_chrg= <optimized out>) at ../src/ engine/ cachingreader/ cachingreader. cpp:96 :~CachingReader () (this=0x2a4a970, __in_chrg= <optimized out>) at ../src/ engine/ cachingreader/ cachingreader. cpp:98 :~EngineBuffer( ) (this=0x2b11c60, __in_chrg= <optimized out>) at ../src/ engine/ enginebuffer. cpp:302 :~EngineBuffer( ) (this=0x2b11c60, __in_chrg= <optimized out>) at ../src/ engine/ enginebuffer. cpp:331 :~EngineDeck( ) (this=0x2a6a400, __in_chrg= <optimized out>) at ../src/ engine/ channels/ enginedeck. cpp:47 :~EngineDeck( ) (this=0x2a6a400, __in_chrg= <optimized out>) at ../src/ engine/ channels/ enginedeck. cpp:49 :~EngineMaster( ) (this=0x2a7a0c0, __in_chrg= <optimized out>) at ../src/ engine/ enginemaster. cpp:249 r::~TestEngineM aster() (this=0x2a7a0c0, __in_chrg= <optimized out>) at ../src/ test/signalpath test.h: 51 r::~TestEngineM aster() (this=0x2a7a0c0, __in_chrg= <optimized out>) at ../src/ test/signalpath test.h: 51 est::~BaseSigna lPathTest( ) (this=0x2a56010, __in_chrg= <optimized out>) at ../src/ test/signalpath test.h: 144 kendTest: :~MockedEngineB ackendTest( ) (this=0x2a56010, __in_chrg= <optimized out>) at ../src/ test/mockedengi nebackendtest. h:92 ::AdjustReplayG ainTest: :~AdjustReplayG ainTest (this=0x2a56010, __in_chrg= <optimized out>) at ../src/ test/replaygain test.cpp: 160 ::AdjustReplayG ainTest_ AdjustReplayGai nUpdatesPregain _Test:: ~AdjustReplayGa inTest_ AdjustReplayGai nUpdatesPregain _Test (this=0x2a56010, __in_chrg= <optimized out>) at ../src/ test/replaygain test.cpp: 162 ::AdjustReplayG ainTest_ AdjustReplayGai nUpdatesPregain _Test:: ~AdjustReplayGa inTest_ AdjustReplayGai nUpdatesPregain _Test() (this=0x2a56010, __in_chrg= <optimized out>) at ../src/ test/replaygain test.cpp: 162 :internal: :HandleSehExcep tionsInMethodIf Supported< 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 :internal: :HandleExceptio nsInMethodIfSup ported< 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 :TestInfo: :Run() (this=0x29e2690) at ../lib/ googletest/ googletest/ src/gtest. cc:2867 :TestInfo: :Run() (this=<optimized out>) at ../lib/ googletest/ googletest/ src/gtest. cc:2834 :TestSuite: :Run() (this=0x29e2890) at ../lib/ googletest/ googletest/ src/gtest. cc:3015 :TestSuite: :Run() (this=<optimized out>) at ../lib/ googletest/ googletest/ src/gtest. cc:2994 :internal: :UnitTestImpl: :RunAllTests( ) (this=0x29a4680) at ../lib/ googletest/ googletest/ src/gtest. cc:5855 :internal: :HandleSehExcep tionsInMethodIf Supported< 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 :internal: :HandleExceptio nsInMethodIfSup ported< 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 :UnitTest: :Run() (this=<optimized out>) at ../lib/ googletest/ googletest/ src/gtest. cc:5438 googletest/ googletest/ include/ gtest/gtest. h:2490 6c08) at ../src/ test/main. cpp:34
#0 0x00007f2b07957a8a in __futex_
#1 0x00007f2b079512c0 in pthread_
#2 0x00007f2b07e5e01b in QWaitCondition:
#3 0x00007f2b07e58189 in QThread:
#4 0x0000000000a85c29 in CachingReaderWo
#5 0x0000000000a82a2a in CachingReader:
#6 0x0000000000a82f49 in CachingReader:
#7 0x0000000000abfd2b in EngineBuffer:
#8 0x0000000000ac0239 in EngineBuffer:
#9 0x0000000000eec255 in EngineDeck:
#10 0x0000000000eec309 in EngineDeck:
#11 0x0000000000ac7ab3 in EngineMaster:
#12 0x00000000006ba96d in TestEngineMaste
#13 TestEngineMaste
#14 0x00000000008efe6d in BaseSignalPathT
#15 MockedEngineBac
#16 (anonymous namespace)
#17 (anonymous namespace)
#18 (anonymous namespace)
#19 0x000000000117e35d in testing:
#20 testing:
#21 0x000000000116c87c in testing:
#22 0x000000000116d8c5 in testing:
#23 testing:
#24 0x0000000001170dca in testing:
#25 testing:
#26 0x000000000116d1ab in testing:
#27 testing:
#28 testing:
#29 0x00000000005fc901 in RUN_ALL_TESTS() () at ../lib/
--Type <RET> for more, q to quit, c to continue without paging--
#30 main(int, char**) (argc=<optimized out>, argv=0x7ffce62c
`coredumpctl -1 gdb` has proven to be very helpful.