[Kdenlive-devel] KDE crash on opening project or adding file

Jared Henley jared.henley at gmail.com
Tue May 13 03:52:12 UTC 2008


On Fri, May 9, 2008 at 9:32 AM, Jared Henley <jared.henley at gmail.com> wrote:

>
>
> On Thu, May 8, 2008 at 9:18 PM, Peter Savage <
> silentkeystroke at googlemail.com> wrote:
>
> >
> >
> > 2008/5/8 Jared Henley <jared.henley at gmail.com>:
> >
> > Hi,
> > >
> > > I've built kdenlive from svn revision 2167 (with a small patch, posted
> > > to this list).  On running it, it crashed immediately with no error messages
> > > on the terminal, but it did appear to be loading the project.  I then tried
> > > creating a new project, which was fine until I attempted to add a clip.
> > > Kdenlive then crashed again with no error messages on the terminal, but it
> > > was able to tell me the number of frames in the clip (see below)
> > >
> > > kdenlive: Getting file PROPS: /home/pj/dada07-finished/untitled.dv,
> > > DURATON: 279
> > > kdenlive: /// GTE TMB, 69, 38, FRAME SIZE: 720, 576
> > > KCrash: Application 'kdenlive' crashing...
> > > KCrash cannot reach kdeinit, launching directly.
> > >
> >
> > Can you get us a back trace? Run it like this
> > gdb kdenlive
> >
> > then type start <enter>
> > then you'll have to press Enter if instructed.....if it just sits there,
> > type continue <enter> in to the terminal window Keep doing this until you
> > see a segfault on the terminal session
> > once you see that
> > type bt <enter>
> > Then we should get a backtrace of what is happening.
> >
>
> I haven't ever used gdb before -- this is fun :-).  Anyway, here's the
> backtrace (I didn't compile with debugging symbols, would that help?)
>
> Program received signal SIGSEGV, Segmentation fault.
> 0xb6b6d23c in memcpy () from /lib/libc.so.6
> (gdb) bt
> #0  0xb6b6d23c in memcpy () from /lib/libc.so.6
> #1  0xb7a314c7 in QPixmap::convertFromImage () from
> /opt/qt/lib/libqt-mt.so.3
> #2  0xb7ae3001 in bitBlt () from /opt/qt/lib/libqt-mt.so.3
> #3  0x081b2056 in KRender::frameThumbnail ()
> #4  0x081b3517 in KRender::getFileProperties ()
> #5  0x08232d14 in KRender::qt_invoke ()
> #6  0xb7adc49a in QObject::activate_signal () from
> /opt/qt/lib/libqt-mt.so.3
> #7  0x082243f1 in ClipManager::getFileProperties ()
> #8  0x080d9478 in ClipManager::insertXMLClip ()
> #9  0x0815be27 in Command::KAddClipCommand::addClip ()
> #10 0xb71fdea0 in KMacroCommand::execute () from
> /opt/kde/lib/libkdeui.so.4
> #11 0xb72b006c in KCommandHistory::addCommand ()
>    from /opt/kde/lib/libkdeui.so.4
> #12 0x08179fe6 in Gui::KdenliveApp::slotProjectAddClips ()
> #13 0x0822db0d in Gui::KdenliveApp::qt_invoke ()
> #14 0xb7adc49a in QObject::activate_signal () from
> /opt/qt/lib/libqt-mt.so.3
> #15 0xb7ade9bb in QObject::activate_signal () from
> /opt/qt/lib/libqt-mt.so.3
> #16 0xb71f8e19 in KAction::activated () from /opt/kde/lib/libkdeui.so.4
> #17 0xb7241e70 in KAction::slotActivated () from
> /opt/kde/lib/libkdeui.so.4
> #18 0xb72f0055 in KAction::slotPopupActivated ()
>    from /opt/kde/lib/libkdeui.so.4
> #19 0xb72f0380 in KAction::qt_invoke () from /opt/kde/lib/libkdeui.so.4
> #20 0xb7adc49a in QObject::activate_signal () from
> /opt/qt/lib/libqt-mt.so.3
> ---Type <return> to continue, or q <return> to quit---
> #21 0xb7e3222e in QSignal::signal () from /opt/qt/lib/libqt-mt.so.3
> #22 0xb7af920d in QSignal::activate () from /opt/qt/lib/libqt-mt.so.3
> #23 0xb7be994c in QPopupMenu::mouseReleaseEvent ()
>    from /opt/qt/lib/libqt-mt.so.3
> #24 0xb7225ed2 in KPopupMenu::mouseReleaseEvent ()
>    from /opt/kde/lib/libkdeui.so.4
> #25 0xb7b167a7 in QWidget::event () from /opt/qt/lib/libqt-mt.so.3
> #26 0xb7a78105 in QApplication::internalNotify ()
>    from /opt/qt/lib/libqt-mt.so.3
> #27 0xb7a79661 in QApplication::notify () from /opt/qt/lib/libqt-mt.so.3
> #28 0xb706013a in KApplication::notify () from
> /opt/kde/lib/libkdecore.so.4
> #29 0xb7a131fe in QApplication::sendSpontaneousEvent ()
>    from /opt/qt/lib/libqt-mt.so.3
> #30 0xb7a108ca in QETWidget::translateMouseEvent ()
>    from /opt/qt/lib/libqt-mt.so.3
> #31 0xb7a0ee8b in QApplication::x11ProcessEvent ()
>    from /opt/qt/lib/libqt-mt.so.3
> #32 0xb7a22fcc in QEventLoop::processEvents () from
> /opt/qt/lib/libqt-mt.so.3
> #33 0xb7a907d0 in QEventLoop::enterLoop () from /opt/qt/lib/libqt-mt.so.3
> #34 0xb7a7870f in QApplication::enter_loop () from
> /opt/qt/lib/libqt-mt.so.3
> #35 0xb7becbca in QPopupMenu::exec () from /opt/qt/lib/libqt-mt.so.3
> #36 0xb7beffab in QPushButton::popupPressed () from
> /opt/qt/lib/libqt-mt.so.3
> #37 0xb7e497b0 in QPushButton::qt_invoke () from /opt/qt/lib/libqt-mt.so.3
> ---Type <return> to continue, or q <return> to quit---
> #38 0xb72a2d03 in KPushButton::qt_invoke () from
> /opt/kde/lib/libkdeui.so.4
> #39 0xb7adc49a in QObject::activate_signal () from
> /opt/qt/lib/libqt-mt.so.3
> #40 0xb7ade9bb in QObject::activate_signal () from
> /opt/qt/lib/libqt-mt.so.3
> #41 0xb7e39819 in QButton::pressed () from /opt/qt/lib/libqt-mt.so.3
> #42 0xb7b75dcd in QButton::mousePressEvent () from
> /opt/qt/lib/libqt-mt.so.3
> #43 0xb71e8ba4 in KPushButton::mousePressEvent ()
>    from /opt/kde/lib/libkdeui.so.4
> #44 0xb7b16bc1 in QWidget::event () from /opt/qt/lib/libqt-mt.so.3
> #45 0xb7a78105 in QApplication::internalNotify ()
>    from /opt/qt/lib/libqt-mt.so.3
> #46 0xb7a79661 in QApplication::notify () from /opt/qt/lib/libqt-mt.so.3
> #47 0xb706013a in KApplication::notify () from
> /opt/kde/lib/libkdecore.so.4
> #48 0xb7a131fe in QApplication::sendSpontaneousEvent ()
>    from /opt/qt/lib/libqt-mt.so.3
> #49 0xb7a10629 in QETWidget::translateMouseEvent ()
>    from /opt/qt/lib/libqt-mt.so.3
> #50 0xb7a0ee8b in QApplication::x11ProcessEvent ()
>    from /opt/qt/lib/libqt-mt.so.3
> #51 0xb7a22fcc in QEventLoop::processEvents () from
> /opt/qt/lib/libqt-mt.so.3
> #52 0xb7a907d0 in QEventLoop::enterLoop () from /opt/qt/lib/libqt-mt.so.3
> #53 0xb7a90696 in QEventLoop::exec () from /opt/qt/lib/libqt-mt.so.3
> #54 0xb7a7879f in QApplication::exec () from /opt/qt/lib/libqt-mt.so.3
> #55 0x081da787 in main ()
>
> Jared.
>

After some investigation I found that this crash is not exactly
deterministic -- sometimes no crash, and sometimes a crash while still
loading kdenlive.  Assuming it to be a concurrency problem, I added a sleep
in krenderer.cpp (line 280):

    uint8_t *thumb = frame->get_image(format, width, height);
    QImage image(thumb, width, height, 32, NULL, 0, QImage::IgnoreEndian);
    image.setAlphaBuffer( true );
    sleep(10);
    if (!image.isNull()) {
    if (!border) bitBlt(&pix, 0, 0, &image, 0, 0, width, height);

and it hasn't crashed since.

This is obviously not a proper solution.  Where's the threaded code?  Any
ideas where to look next?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdenlive/attachments/20080513/6a730eec/attachment.html>


More information about the Kdenlive mailing list