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>