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

Bug #847748 reported by Rafael Belmonte
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
qapt (Ubuntu)
Fix Released
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)

Revision history for this message
Rafael Belmonte (eaglescreen) wrote :
Revision history for this message
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
Revision history for this message
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...

Revision history for this message
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
Revision history for this message
Jonathan Thomas (echidnaman) wrote : [libqapt/1.2] utils/qapt-gst-helper: QGst::Caps::fromString() can return null if no caps are found for a particular string.

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;
             }

Revision history for this message
Jonathan Thomas (echidnaman) wrote : [libqapt] utils/qapt-gst-helper: QGst::Caps::fromString() can return null if no caps are found for a particular string.

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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.