Ubuntu

qapt-gst-helper, segmentation fault searching codec for dragonplayer

Reported by Rafael Belmonte on 2011-09-12
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
qapt (Ubuntu)
Medium
Unassigned

Bug Description

Application: qapt-gst-helper (1.2)
KDE Platform Version: 4.7.1 (4.7.1)
Qt Version: 4.7.4
Operating System: Linux 3.0.0-10-generic x86_64
Distribution: Ubuntu oneiric (development branch)

-- Information about the crash:
The crash happens each time i try to play a divx video in dragonplayer, then the codecs finder appears, then it crashes.

The crash can be reproduced every time.

-- Backtrace:
Application: Buscador de códecs QApt (qapt-gst-helper), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f13dfabc780 (LWP 2297))]

Thread 2 (Thread 0x7f13cc1f6700 (LWP 2307)):
[KCrash Handler]
#6 0x00007f13df03e404 in QGst::Caps::isEmpty() const () from /usr/lib/libQtGStreamer-0.10.so.0
#7 0x0000000000407fb2 in GstMatcher::GstMatcher (this=0x7f13cc1f5610, values=...) at /build/buildd/qapt-1.2.0/utils/qapt-gst-helper/GstMatcher.cpp:92
#8 0x0000000000409ff2 in PluginFinder::find (this=0x2ea5e30, pluginInfo=<optimized out>) at /build/buildd/qapt-1.2.0/utils/qapt-gst-helper/PluginFinder.cpp:51
#9 0x000000000040a262 in PluginFinder::startSearch (this=0x2ea5e30) at /build/buildd/qapt-1.2.0/utils/qapt-gst-helper/PluginFinder.cpp:76
#10 0x00000000004072ec in PluginFinder::qt_metacall (this=0x2ea5e30, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x2793710) at /build/buildd/qapt-1.2.0/obj-x86_64-linux-gnu/utils/qapt-gst-helper/moc_PluginFinder.cpp:84
#11 0x00007f13de5e7a5e in QObject::event (this=0x2ea5e30, e=<optimized out>) at kernel/qobject.cpp:1217
#12 0x00007f13dd9813d4 in notify_helper (e=0x27912d0, receiver=0x2ea5e30, this=0x24e3880) at kernel/qapplication.cpp:4486
#13 QApplicationPrivate::notify_helper (this=0x24e3880, receiver=0x2ea5e30, e=0x27912d0) at kernel/qapplication.cpp:4458
#14 0x00007f13dd986241 in QApplication::notify (this=0x7fff5b3f7c10, receiver=0x2ea5e30, e=0x27912d0) at kernel/qapplication.cpp:4365
#15 0x00007f13df496216 in KApplication::notify (this=0x7fff5b3f7c10, receiver=0x2ea5e30, event=0x27912d0) at ../../kdeui/kernel/kapplication.cpp:311
#16 0x00007f13de5d0afc in QCoreApplication::notifyInternal (this=0x7fff5b3f7c10, receiver=0x2ea5e30, event=0x27912d0) at kernel/qcoreapplication.cpp:787
#17 0x00007f13de5d451f in sendEvent (event=0x27912d0, receiver=0x2ea5e30) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#18 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x343c520) at kernel/qcoreapplication.cpp:1428
#19 0x00007f13de5fba73 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#20 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:277
#21 0x00007f13daa6eb6d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007f13daa6f368 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007f13daa6f539 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007f13de5fbed6 in QEventDispatcherGlib::processEvents (this=0x33df450, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#25 0x00007f13de5cfcf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#26 0x00007f13de5cfef7 in QEventLoop::exec (this=0x7f13cc1f5e00, flags=...) at kernel/qeventloop.cpp:201
#27 0x00007f13de4e727f in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498
#28 0x00007f13de4e9d05 in QThreadPrivate::start (arg=0x343ca90) at thread/qthread_unix.cpp:331
#29 0x00007f13dccb3edc in start_thread (arg=0x7f13cc1f6700) at pthread_create.c:304
#30 0x00007f13dcfaa89d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#31 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f13dfabc780 (LWP 2297)):
#0 0x00007f13dcf9e773 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1 0x00007f13d7c6d4f2 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2 0x00007f13d7c6da3f in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3 0x00007f13d7c6dac4 in xcb_writev () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#4 0x00007f13dc592547 in _XSend () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#5 0x00007f13dc5928b9 in _XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#6 0x00007f13dc58314f in XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#7 0x00007f13dda28af7 in x11EventSourcePrepare (s=0x24e6500, timeout=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:77
#8 0x00007f13daa6e102 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9 0x00007f13daa6ef0d in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f13daa6f539 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f13de5fbed6 in QEventDispatcherGlib::processEvents (this=0x24c6a90, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#12 0x00007f13dda28c6e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#13 0x00007f13de5cfcf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#14 0x00007f13de5cfef7 in QEventLoop::exec (this=0x7fff5b3f7b00, flags=...) at kernel/qeventloop.cpp:201
#15 0x00007f13de5d4789 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#16 0x0000000000406c56 in main (argc=4, argv=0x7fff5b3f7f38) at /build/buildd/qapt-1.2.0/utils/qapt-gst-helper/main.cpp:74

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: gstreamer0.10-qapt 1.2.0-0ubuntu3
ProcVersionSignature: Ubuntu 3.0.0-10.16-generic 3.0.4
Uname: Linux 3.0.0-10-generic x86_64
ApportVersion: 1.22.1-0ubuntu2
Architecture: amd64
Date: Mon Sep 12 13:28:23 2011
EcryptfsInUse: Yes
InstallationMedia: Kubuntu 11.10 "Oneiric Ocelot" - Beta amd64 (20110901)
SourcePackage: qapt
UpgradeStatus: No upgrade log present (probably fresh install)

Rafael Belmonte (eaglescreen) wrote :
Jonathan Thomas (echidnaman) wrote :

Could you install qtgstreamer-dbg and get a new backtrace, please?

Regards,
Jonathan

summary: - qpt-gst-helper, segmentation fault searching codec for dragonplayer
+ qapt-gst-helper, segmentation fault searching codec for dragonplayer
Rafael Belmonte (eaglescreen) wrote :
Download full text (4.9 KiB)

Done:

Application: QApt Codec Searcher (qapt-gst-helper), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fd506997780 (LWP 5079))]

Thread 2 (Thread 0x7fd4f319f700 (LWP 5089)):
[KCrash Handler]
#6 QGst::Caps::isEmpty (this=0x0) at /build/buildd/qt-gstreamer-0.10.1/src/QGst/caps.cpp:119
#7 0x0000000000407fb2 in GstMatcher::GstMatcher (this=0x7fd4f319e610, values=...) at /build/buildd/qapt-1.2.0/utils/qapt-gst-helper/GstMatcher.cpp:92
#8 0x0000000000409ff2 in PluginFinder::find (this=0xfa0b20, pluginInfo=<optimized out>) at /build/buildd/qapt-1.2.0/utils/qapt-gst-helper/PluginFinder.cpp:51
#9 0x000000000040a262 in PluginFinder::startSearch (this=0xfa0b20) at /build/buildd/qapt-1.2.0/utils/qapt-gst-helper/PluginFinder.cpp:76
#10 0x00000000004072ec in PluginFinder::qt_metacall (this=0xfa0b20, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0xa6ae40) at /build/buildd/qapt-1.2.0/obj-x86_64-linux-gnu/utils/qapt-gst-helper/moc_PluginFinder.cpp:84
#11 0x00007fd5054c2a5e in QObject::event (this=0xfa0b20, e=<optimized out>) at kernel/qobject.cpp:1217
#12 0x00007fd50485c3d4 in notify_helper (e=0xa6bff0, receiver=0xfa0b20, this=0x7be790) at kernel/qapplication.cpp:4486
#13 QApplicationPrivate::notify_helper (this=0x7be790, receiver=0xfa0b20, e=0xa6bff0) at kernel/qapplication.cpp:4458
#14 0x00007fd504861241 in QApplication::notify (this=0x7fffc032c280, receiver=0xfa0b20, e=0xa6bff0) at kernel/qapplication.cpp:4365
#15 0x00007fd506371216 in KApplication::notify (this=0x7fffc032c280, receiver=0xfa0b20, event=0xa6bff0) at ../../kdeui/kernel/kapplication.cpp:311
#16 0x00007fd5054abafc in QCoreApplication::notifyInternal (this=0x7fffc032c280, receiver=0xfa0b20, event=0xa6bff0) at kernel/qcoreapplication.cpp:787
#17 0x00007fd5054af51f in sendEvent (event=0xa6bff0, receiver=0xfa0b20) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#18 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x1636f50) at kernel/qcoreapplication.cpp:1428
#19 0x00007fd5054d6a73 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#20 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:277
#21 0x00007fd501949b6d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007fd50194a368 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007fd50194a539 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007fd5054d6ed6 in QEventDispatcherGlib::processEvents (this=0x1636f30, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#25 0x00007fd5054aacf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#26 0x00007fd5054aaef7 in QEventLoop::exec (this=0x7fd4f319ee00, flags=...) at kernel/qeventloop.cpp:201
#27 0x00007fd5053c227f in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498
#28 0x00007fd5053c4d05 in QThreadPrivate::start (arg=0x16369d0) at thread/qthread_unix.cpp:331
#29 0x00007fd503b8eedc in start_thread (arg=0x7fd4f319f700) at pthread_create.c:304
#30 0x00007fd503e8589d in clone () at ../sysdeps/unix/sysv/linux/x86_64/c...

Read more...

Jonathan Thomas (echidnaman) wrote :

Thanks! I'll be able to fix this as soon as I get home from classes today.

Changed in qapt (Ubuntu):
importance: Undecided → Medium
status: New → Triaged

Git commit cc77c7dc4bed2e87d725bb79a446a6af8b4dc81a by Jonathan Thomas.
Committed on 14/09/2011 at 23:24.
Pushed by jmthomas into branch '1.2'.

QGst::Caps::fromString() can return null if no caps are found for a particular string.
Check this return value, rather than assuming it works and crashing.

CCMAIL:<email address hidden>

M +1 -1 utils/qapt-gst-helper/GstMatcher.cpp

http://commits.kde.org/libqapt/cc77c7dc4bed2e87d725bb79a446a6af8b4dc81a

diff --git a/utils/qapt-gst-helper/GstMatcher.cpp b/utils/qapt-gst-helper/GstMatcher.cpp
index a1a4347..6527571 100644
--- a/utils/qapt-gst-helper/GstMatcher.cpp
+++ b/utils/qapt-gst-helper/GstMatcher.cpp
@@ -89,7 +89,7 @@ GstMatcher::GstMatcher(const QStringList &values)
             }

             QGst::CapsPtr caps = QGst::Caps::fromString(capsString);
- if (caps->isEmpty()) {
+ if (!caps || caps->isEmpty()) {
                 continue;
             }

Git commit 42df5936b33000dde9c7ecd6eb9206ae549933a7 by Jonathan Thomas.
Committed on 14/09/2011 at 23:24.
Pushed by jmthomas into branch 'master'.

QGst::Caps::fromString() can return null if no caps are found for a particular string.
Check this return value, rather than assuming it works and crashing.

CCMAIL:<email address hidden>

M +1 -1 utils/qapt-gst-helper/GstMatcher.cpp

http://commits.kde.org/libqapt/42df5936b33000dde9c7ecd6eb9206ae549933a7

diff --git a/utils/qapt-gst-helper/GstMatcher.cpp b/utils/qapt-gst-helper/GstMatcher.cpp
index a1a4347..6527571 100644
--- a/utils/qapt-gst-helper/GstMatcher.cpp
+++ b/utils/qapt-gst-helper/GstMatcher.cpp
@@ -89,7 +89,7 @@ GstMatcher::GstMatcher(const QStringList &values)
             }

             QGst::CapsPtr caps = QGst::Caps::fromString(capsString);
- if (caps->isEmpty()) {
+ if (!caps || caps->isEmpty()) {
                 continue;
             }

Changed in qapt (Ubuntu):
status: Triaged → Fix Committed
Changed in qapt (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers