Summary: | Infinite recursion in Phonon while creating backend if only the nullbackend is installed | ||
---|---|---|---|
Product: | [Applications] systemsettings | Reporter: | Aneurin Price <aneurin.price> |
Component: | kcm_phonon | Assignee: | Matthias Kretz <kretz> |
Status: | RESOLVED DOWNSTREAM | ||
Severity: | crash | CC: | andresbajotierra, jcolby |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Debian testing | ||
OS: | Unspecified | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Backtrace, with repeated lines removed |
Description
Aneurin Price
2009-02-01 19:43:36 UTC
You can get a backtrace using "gdb": Run "gdb systemsettings" in Konsole Type "run" and press Return SystemSettings will open. Reproduce the crash Go back to the "GDB/Konsole" window Type "bt" and press Return to get a backtrace Anyways.. it may be Debian fault too as I suppose phonon must be installed with at least one engine. (not really sure) Thanks Running systemsettings in gdb is problematic, because the process appears to end as soon as the window comes up and the application is loaded, so gdb stops tracing it. One thing I did notice though is that the console is filled with at least a few hundred lines of: WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded (I don't recall noticing this when I first tried - and I did run from the command line to see if I got any helpful messages - so I wonder if anything in my configuration has changed by installing and removing a real phonon backend, but it's most likely that I just failed to put this in my notes and then forgot about it.) I suppose then that phonon-backend-null is misbehaving - is this a part of KDE or a Debian addition? The Debian packages page lists it as having the same source package as the other phonon packages, but it could still be from a Debian patch. If so then I'll file a bug with them, but I'd appreciate it if anyone can let me know. Thanks You can use the an optional parameter to correctly generate the backtrace: After entering "gdb systemsettings" but before pressing "run" , type "set args --nofork" and press Enter. This will launch "systemsettings --nofork" (instead of "systemsettings"), avoiding the behaviour you mentioned in the first paragraph Thanks :) That's a pretty impressive backtrace - I've never seen a stack overflow before (if this gets wrapped I'll repost as an attachment): Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fd0d34bf6f0 (LWP 11055)] 0x00007fd0d0c98222 in vfprintf () from /lib/libc.so.6 (gdb) bt #0 0x00007fd0d0c98222 in vfprintf () from /lib/libc.so.6 #1 0x00007fd0d0c9cb60 in buffered_vfprintf () from /lib/libc.so.6 #2 0x00007fd0d0c98436 in vfprintf () from /lib/libc.so.6 #3 0x00007fd0d0ca1c08 in fprintf () from /lib/libc.so.6 #4 0x00007fd0d1e6958b in qt_message_output (msgType=QtDebugMsg, buf=<value optimized out>) at global/qglobal.cpp:2076 #5 0x00007fd0c8517cf6 in ~QDebug (this=0x7fffdadf9f70) at /usr/include/qt4/QtCore/qdebug.h:79 #6 0x00007fd0c852875e in Phonon::FactoryPrivate::createBackend (this=0x1839cf0) at ../../phonon/factory.cpp:156 #7 0x00007fd0c8528cf7 in Phonon::Factory::backend (createWhenNull=<value optimized out>) at ../../phonon/factory.cpp:416 #8 0x00007fd0c8763022 in Phonon::GlobalConfig::audioOutputDeviceListFor (this=<value optimized out>, category=Phonon::NoCategory, override=Phonon::GlobalConfig::HideAdvancedDevices) at ../../../phonon/kcm/globalconfig.cpp:131 #9 0x00007fd0c8752a17 in DevicePreference::availableAudioOutputDevices (this=<value optimized out>) at ../../../phonon/kcm/devicepreference.cpp:325 #10 0x00007fd0c8753abe in DevicePreference::updateAudioOutputDevices (this=0x180a8c0) at ../../../phonon/kcm/devicepreference.cpp:283 #11 0x00007fd0c875a550 in DevicePreference::qt_metacall (this=0x180a8c0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffdadfa580) at ./moc_devicepreference.cpp:95 #12 0x00007fd0d1f6d6e4 in QMetaObject::activate (sender=0x184b980, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x1d50440) at kernel/qobject.cpp:3031 #13 0x00007fd0c852163d in Phonon::BackendCapabilities::Notifier::qt_metacall (this=0x184b980, _c=QMetaObject::InvokeMetaMethod, _id=-788923424, _a=<value optimized out>) at ./moc_backendcapabilities.cpp:70 #14 0x00007fd0d1f6d6e4 in QMetaObject::activate (sender=0x1839cf0, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x1d50440) at kernel/qobject.cpp:3031 #15 0x00007fd0c8528d0f in Phonon::Factory::backend (createWhenNull=<value optimized out>) at ../../phonon/factory.cpp:420 ... #44448 0x00007fd0c8763022 in Phonon::GlobalConfig::audioOutputDeviceListFor (this=<value optimized out>, category=Phonon::NoCategory, override=Phonon::GlobalConfig::HideAdvancedDevices) at ../../../phonon/kcm/globalconfig.cpp:131 #44449 0x00007fd0c8752a17 in DevicePreference::availableAudioOutputDevices (this=<value optimized out>) at ../../../phonon/kcm/devicepreference.cpp:325 #44450 0x00007fd0c8753abe in DevicePreference::updateAudioOutputDevices (this=0x180a8c0) at ../../../phonon/kcm/devicepreference.cpp:283 #44451 0x00007fd0c875a550 in DevicePreference::qt_metacall (this=0x180a8c0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffdb5f2120) at ./moc_devicepreference.cpp:95 #44452 0x00007fd0d1f6d6e4 in QMetaObject::activate (sender=0x184b980, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x1d50440) at kernel/qobject.cpp:3031 #44453 0x00007fd0c852163d in Phonon::BackendCapabilities::Notifier::qt_metacall (this=0x184b980, _c=QMetaObject::InvokeMetaMethod, _id=-788923424, _a=<value optimized out>) at ./moc_backendcapabilities.cpp:70 #44454 0x00007fd0d1f6d6e4 in QMetaObject::activate (sender=0x1839cf0, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x1d50440) at kernel/qobject.cpp:3031 #44455 0x00007fd0c8528d0f in Phonon::Factory::backend (createWhenNull=<value optimized out>) at ../../phonon/factory.cpp:420 #44456 0x00007fd0c8763022 in Phonon::GlobalConfig::audioOutputDeviceListFor (this=<value optimized out>, category=Phonon::NoCategory, override=Phonon::GlobalConfig::HideAdvancedDevices) at ../../../phonon/kcm/globalconfig.cpp:131 #44457 0x00007fd0c8752a17 in DevicePreference::availableAudioOutputDevices (this=<value optimized out>) at ../../../phonon/kcm/devicepreference.cpp:325 #44458 0x00007fd0c8754952 in DevicePreference::load (this=0x180a8c0) at ../../../phonon/kcm/devicepreference.cpp:356 #44459 0x00007fd0c874f93d in PhononKcm::load (this=0x17e6490) at ../../../phonon/kcm/main.cpp:63 #44460 0x00007fd0c874fff3 in PhononKcm (this=0x17e6490, parent=<value optimized out>, args=<value optimized out>) at ../../../phonon/kcm/main.cpp:55 #44461 0x00007fd0c8750ad3 in KPluginFactory::createInstance<PhononKcm, QWidget> (parentWidget=<value optimized out>, parent=<value optimized out>, args=@0x7fffdb5f3060) at /usr/include/kpluginfactory.h:461 #44462 0x00007fd0d24284cd in KPluginFactory::create (this=0x17e5a10, iface=0x7fd0d2a36000 "KCModule", parentWidget=0x0, parent=0x17e22d0, args=@0x7fffdb5f3060, keyword=@0x7fffdb5f2f50) at ../../kdecore/util/kpluginfactory.cpp:191 #44463 0x00007fd0d31a7fa4 in KCModuleLoader::loadModule (mod=@0x17e52f0, report=KCModuleLoader::Inline, parent=0x17e22d0, args=@0x17e52c0) at ../../kdecore/util/kpluginfactory.h:515 #44464 0x00007fd0d31ad5fa in KCModuleProxyPrivate::loadModule (this=0x17e52c0) at ../../kutils/kcmoduleproxy.cpp:107 #44465 0x00007fd0d31ae625 in KCModuleProxy::realModule (this=<value optimized out>) at ../../kutils/kcmoduleproxy.cpp:83 #44466 0x00007fd0d31ae74c in KCModuleProxy::buttons (this=0x7fd0d1fa661e) at ../../kutils/kcmoduleproxy.cpp:300 #44467 0x000000000040eb7b in _start () In the referenced source files, I presume factory.cpp is the part which is relevant to the specific backend plugin? I've not yet figured out exactly what phonon-backend-null is being built from. Created attachment 30974 [details]
Backtrace, with repeated lines removed
Here's the backtrace as an attachment, just because I find it easier to follow without wrapping. The rather sizeable missing section consists entirely of repetitions of the recursive loop.
Still happens in 4.3, from Debian unstable. Is this likely to be a Debian-specific bug? Mh, as I think we do not develop this "null engine", it is likely to be a Debian error. Anyways, this is caused by the package splitting/modularization. In the standard KDE packaging, Phonon comes with Gstreamer as a default(integrated) backend; and xine as an optional one(or also integrated in KDE-Phonon) I'm closing this as DOWNSTREAM, could you please report this on the debian tracker ? Thanks! |