Infinite loop in SoundManager when no SoundDevices detected
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Fix Released
|
Critical
|
RJ Skerry-Ryan | ||
1.10 |
Won't Fix
|
Critical
|
RJ Skerry-Ryan | ||
1.11 |
Fix Released
|
Critical
|
RJ Skerry-Ryan |
Bug Description
running ubuntu 12.04 with gnome 3 on an i3 64bit setup mixxx fails to start giving repeatedly the following message
Warning [Main]: failed to resolve JACK name method
segmentation fault (and it somewhere writes a reciecpt / printout of this error but it does not tell where)
backtrace : http://
the complete story in a nut shell: first i tried to install from ubuntus software center, gave the above error. ubuntus internal bug reporting tool started and asked whether i wanted to report, which i agreed to, it then asked again whether i really wanted because it seemed that libportaudio2 had to do with it, i again said, go ahead anyways.
after that, i went to the mixxx homepage and did what i needed to do to compile it my self. build deps first reported, that there was a conflict with libjackaudio which i overrode since it seemed that this was necessary to get a full build. then i ran the build process and installed it in /usr using mixxx from the command prompt, it seems i went long ways to reproduce the error yet again. im out of ideas... how about you ?
Related branches
description: | updated |
description: | updated |
Changed in mixxx: | |
status: | In Progress → Fix Committed |
Changed in mixxx: | |
status: | Fix Committed → Fix Released |
The issue is that SoundManager gets into an infinite loop if there are no sound devices on the system.
Patrick sent a backtrace where the relevant part is this:
.... infinite loop continues until SIGSEGV from stack overflow... :activate( QObject* , QMetaObject const*, int, void**) () from /usr/lib/ x86_64- linux-gnu/ libQtCore. so.4 :queryDevices (this=0xf16e20) r.cpp:373 :getDeviceList (this=0xf16e20, true, bInputDevices= false) r.cpp:161 :refreshDevices (this=0x170eca0) d.cpp:404 :qt_static_ metacall (_o=0x170eca0, moc_dlgprefsoun d.cc:100 :activate( QObject* , QMetaObject const*, int, void**) () from /usr/lib/ x86_64- linux-gnu/ libQtCore. so.4 :queryDevices (this=0xf16e20) r.cpp:373 :getDeviceList (this=0xf16e20, true, bInputDevices= false) r.cpp:161 fig::filterOutp uts (this=0xf16e88, r=0xf16e20) at src/soundmanage rconfig. cpp:247 :setupDevices (this=0xf16e20) r.cpp:390 0x7fffffffdcf0, args=...) at src/mixxx.cpp:404 de98)
#45078 0x00007ffff6529281 in QMetaObject:
#45079 0x0000000000789916 in SoundManager:
at src/soundmanage
#45080 0x000000000078a328 in SoundManager:
filterAPI=..., bOutputDevices=
at src/soundmanage
#45081 0x000000000047a10c in DlgPrefSound:
at src/dlgprefsoun
#45082 0x0000000000845878 in DlgPrefSound:
_id=17, _a=0x7fffffffc7c0, _c=<optimized out>)
at lin64_build/
#45083 0x00007ffff6529281 in QMetaObject:
#45084 0x0000000000789916 in SoundManager:
at src/soundmanage
#45085 0x000000000078a328 in SoundManager:
filterAPI=..., bOutputDevices=
at src/soundmanage
#45086 0x0000000000795462 in SoundManagerCon
soundManage
#45087 0x000000000078c37a in SoundManager:
at src/soundmanage
#45088 0x0000000000587ec5 in MixxxApp::MixxxApp (this=0xef5020,
pApp=
#45089 0x000000000043c593 in main (argc=3, argv=0x7fffffff
at src/main.cpp:290
SoundManager: :getDeviceList does not call queryDevices() unless there are no sound devices detected. Since queryDevices() does not produce any sound devices, the next time getDeviceList is called (which is invoked by signal/slot) the loop continues.