Summary: | kdenlive 15.04.2 crashes randomly | ||
---|---|---|---|
Product: | [Applications] kdenlive | Reporter: | Roger <rogerfranz> |
Component: | User Interface & Miscellaneous | Assignee: | Jean-Baptiste Mardelle <jb> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | bass_dr, dizzy, jens.verwaerde, joshua.dunamis, wegwerf-1-2-3 |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | kdenlive bt full |
Description
Roger
2015-09-08 02:08:08 UTC
I am running into this crash on both 15.08.0 and latest kdenlive-git, both built on Arch Linux, QT 5.5.0. I will add that this crash happens almost every 5-10 minutes while working with kdenlive which makes it almost unusable. Please someone either suggest a workaround for it (that doesn't mean to stop using title clips) or fix this quickly, in my eyes it's a critical problem. Backtrace with symbols: #0 QFontEngineFT::shouldUseDesignMetrics (this=this@entry=0x7fff88040760, flags=...) at ../gui/text/qfontengine_ft.cpp:1562 #1 0x00007fffe2280fbb in QFontEngineFT::recalcAdvances (this=this@entry=0x7fff88040760, glyphs=glyphs@entry=0x7fffacd68dc0, flags=...) at ../gui/text/qfontengine_ft.cpp:1571 #2 0x00007ffff1605649 in _hb_qt_font_get_glyph_h_advance (font=<optimized out>, font_data=0x7fff88040760, glyph=363) at text/qharfbuzzng.cpp:440 #3 0x00007fffe87649a7 in ?? () from /usr/lib/libharfbuzz.so.0 #4 0x00007fffe874715a in hb_shape_plan_execute () from /usr/lib/libharfbuzz.so.0 #5 0x00007fffe87465c1 in hb_shape_full () from /usr/lib/libharfbuzz.so.0 #6 0x00007ffff1546631 in QTextEngine::shapeTextWithHarfbuzzNG (this=this@entry=0x7fff88035420, si=..., string=string@entry=0x7fff74dd05b8, itemLength=itemLength@entry=13, fontEngine=0x7fff880456f0, itemBoundaries=..., kerningEnabled=true) at text/qtextengine.cpp:1175 #7 0x00007ffff1549981 in QTextEngine::shapeText (this=this@entry=0x7fff88035420, item=item@entry=0) at text/qtextengine.cpp:1061 #8 0x00007ffff154a54f in QTextEngine::shape (this=this@entry=0x7fff88035420, item=item@entry=0) at text/qtextengine.cpp:1494 #9 0x00007ffff154fea4 in QTextEngine::shapeLine (this=0x7fff88035420, line=...) at text/qtextengine.cpp:931 #10 0x00007ffff155263f in QTextLineItemIterator::QTextLineItemIterator (this=0x7fffacd69640, _eng=<optimized out>, _lineNum=<optimized out>, pos=..., _selection=<optimized out>) at text/qtextengine.cpp:3532 #11 0x00007ffff155a242 in QTextLine::draw (this=this@entry=0x7fffacd69d00, p=p@entry=0x7fffacd6b380, pos=..., selection=selection@entry=0x0) at text/qtextlayout.cpp:2353 #12 0x00007ffff155b6bd in QTextLayout::draw (this=this@entry=0x7fff88035400, p=p@entry=0x7fffacd6b380, pos=..., selections=..., clip=...) at text/qtextlayout.cpp:1192 #13 0x00007ffff159c89b in QTextDocumentLayoutPrivate::drawBlock (this=this@entry=0x7fff88034be0, offset=..., painter=painter@entry=0x7fffacd6b380, context=..., bl=..., inRootFrame=inRootFrame@entry=true) at text/qtextdocumentlayout.cpp:1351 #14 0x00007ffff15a4f83 in QTextDocumentLayoutPrivate::drawFlow (this=this@entry=0x7fff88034be0, offset=..., painter=painter@entry=0x7fffacd6b380, context=..., it=..., floats=..., cursorBlockNeedingRepaint=0x7fffacd6a590) at text/qtextdocumentlayout.cpp:1249 #15 0x00007ffff15a49ae in QTextDocumentLayoutPrivate::drawFrame (this=this@entry=0x7fff88034be0, offset=..., painter=painter@entry=0x7fffacd6b380, context=..., frame=frame@entry=0x7fff88034e10) at text/qtextdocumentlayout.cpp:1077 #16 0x00007ffff15a7362 in QTextDocumentLayout::draw (this=<optimized out>, painter=0x7fffacd6b380, context=...) at text/qtextdocumentlayout.cpp:2878 #17 0x00007ffff2664d5c in QWidgetTextControl::drawContents (this=0x7fff88003920, p=p@entry=0x7fffacd6b380, rect=..., widget=widget@entry=0x0) at widgets/qwidgettextcontrol.cpp:3199 #18 0x00007ffff2782aea in QGraphicsTextItem::paint (this=0x7fff8802e300, painter=0x7fffacd6b380, option=0x7fff8802d738, widget=<optimized out>) at graphicsview/qgraphicsitem.cpp:10010 #19 0x00007ffff27be577 in QGraphicsScenePrivate::draw (this=this@entry=0x7fff8802d520, item=item@entry=0x7fff8802e310, painter=painter@entry=0x7fffacd6b380, viewTransform=viewTransform@entry=0x7fffacd6b030, transformPtr=transformPtr@entry=0x7fffacd6ae80, exposedRegion=<optimized out>, widget=0x0, opacity=opacity@entry=1, effectTransform=0x0, wasDirtyParentSceneTransform=false, drawItem=true) at graphicsview/qgraphicsscene.cpp:4936 #20 0x00007ffff27bf5e3 in QGraphicsScenePrivate::drawSubtreeRecursive (this=this@entry=0x7fff8802d520, item=0x7fff8802e310, painter=painter@entry=0x7fffacd6b380, viewTransform=viewTransform@entry=0x7fffacd6b030, exposedRegion=exposedRegion@entry=0x0, widget=widget@entry=0x0, parentOpacity=parentOpacity@entry=1, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4829 #21 0x00007ffff27bfd6a in QGraphicsScene::drawItems (this=<optimized out>, painter=0x7fffacd6b380, numItems=<optimized out>, items=<optimized out>, options=<optimized out>, widget=0x0) at graphicsview/qgraphicsscene.cpp:5362 #22 0x00007ffff27ad633 in QGraphicsScene::render (this=0x7fff880037d0, painter=0x7fffacd6b380, target=..., source=..., aspectRatioMode=<optimized out>) at graphicsview/qgraphicsscene.cpp:1815 #23 0x00007fffc5f04805 in drawKdenliveTitle () from /usr/lib/mlt/libmltqt.so #24 0x00007fffc5ef9bb8 in ?? () from /usr/lib/mlt/libmltqt.so #25 0x00007ffff6c82017 in mlt_frame_get_image () from /usr/lib/libmlt.so.6 #26 0x00007fffc346bfb1 in ?? () from /usr/lib/mlt/libmltxine.so #27 0x00007ffff6c82017 in mlt_frame_get_image () from /usr/lib/libmlt.so.6 #28 0x00007fffc2c2ab57 in ?? () from /usr/lib/mlt/libmltcore.so #29 0x00007ffff6c82017 in mlt_frame_get_image () from /usr/lib/libmlt.so.6 #30 0x00007fffc2c2972e in ?? () from /usr/lib/mlt/libmltcore.so #31 0x00007ffff6c82017 in mlt_frame_get_image () from /usr/lib/libmlt.so.6 #32 0x00007fffc2c2edb2 in ?? () from /usr/lib/mlt/libmltcore.so #33 0x00007ffff6c82017 in mlt_frame_get_image () from /usr/lib/libmlt.so.6 #34 0x00007fffc2c2f7cb in ?? () from /usr/lib/mlt/libmltcore.so #35 0x00007ffff6c82017 in mlt_frame_get_image () from /usr/lib/libmlt.so.6 #36 0x00007ffff6c82017 in mlt_frame_get_image () from /usr/lib/libmlt.so.6 #37 0x00007fffc5cdd134 in ?? () from /usr/lib/mlt/libmltplus.so #38 0x00007ffff6c82017 in mlt_frame_get_image () from /usr/lib/libmlt.so.6 #39 0x00007ffff6c97e29 in ?? () from /usr/lib/libmlt.so.6 #40 0x00007ffff6c82017 in mlt_frame_get_image () from /usr/lib/libmlt.so.6 #41 0x00007ffff6c95580 in ?? () from /usr/lib/libmlt.so.6 #42 0x00000000007472ed in RenderThread::run() () #43 0x00007ffff0d35a9e in QThreadPrivate::start (arg=0x7fff9c0046f0) at thread/qthread_unix.cpp:331 #44 0x00007fffebc414a4 in start_thread () from /usr/lib/libpthread.so.0 #45 0x00007ffff034013d in clone () from /usr/lib/libc.so.6 I tried to find the cause for a few hours and made some progress. The problem is that the "freetype->face" field is NULL. Using GDB watch points I was able to figure out when it becomes NULL: when the QFreetypeFace::cleanup() is being called, which happens when a thread exits. It appears that every QFontEngineFT instance references resources that are thread local. These resources are automatically cleaned up when the thread that created them ends. This means that when you instantiate a QFontEngineFT (more specifically when you call the QFontEngineFT::init() method), thread local data is being created and linked to from the "QFontEngineFT::freetype" member. Then that thread dies and those resources are cleared. Then later, the code from the crash backtrace runs in a different thread, which tries to call hb_shape_full() using a QFontEngineFT that was init()-ialized from another thread thus trying to access resources that were released. If you go up the backtrace to QTextEngine::shapeTextWithHarfbuzzNG you can print: (gdb) print ((QFontEngineFT*)actualFontEngine)->freetype->face $37 = (FT_Face) 0x0 Created attachment 94514 [details]
kdenlive bt full
I'm having similar problems using Kdenlive (from the normal repositories) on Ubuntu 15.10. It crashes randomly also to me on Manjaro Linux KDE: Plasma 5.4.3 - kdenlive 18.08.3 (In reply to Joshua Dunamis from comment #4) > It crashes randomly also to me on Manjaro Linux KDE: Plasma 5.4.3 - kdenlive > 18.08.3 Sorry, kdenlive 15.08.3 We can reproduce issue by adding a lot of Clips, including a Title Clip. Put the cursor a bit before the Title Clip and hit play. First time it almost-never crashes, second time it always crashes. The project that has the issue has 6 video tracks (many MTS videos + one title clip) and 3 Audio tracks. At least 3 videos are overlapping (including the title clip) when the crash usually happens. Can you please check with Kdenlive 16.04.2 or current beta, as well as with MLT 6.2.0 at least? There have been fixes to the titler render module. Please be so kind as to report back your results. If the bug is fixed then please clise this report. Thanks for your cooperation! At the moment, this problem appears to be fixed (I updated as requested, using the Ubuntu ppa for kdenlive-testing (https://launchpad.net/~kdenlive/+archive/ubuntu/kdenlive-testing, if anyone needs the link). I tested this with several hour-long video clips, cut up, multiple title clips, and it didn't crash. Long video clips with multiple cuts and overlaps seemed to be part of the issue, and that doesn't appear to trigger the crash now. Others may still have this issue, so I will wait before closing. Another issue may be present, but I'll report that separately if I can reproduce it. Thanks for fixing this. Roger Roger, please be so kind as to close this bug report. We need to clear the backlog from stale reports so that the devs can focus on current bugs. As you kindly reported back, the bug is fixed for you. Thank you very much for your cooperation! Since I've been asked so nicely to close it, I'll close it. |