kdenlive_render crashes after every render leaving a working filename.ext and a completed progress text file filename.ext.txt ending in "Rendering of filename.ext finished." Mostly annoying because kdenlive no longer cleans up the text file after rendering. This is present in kdenlive-16.08.2 on KDE Neon and Gentoo Unstable. This was not present in kdenlive-16.08.1 Backtrace: Thread 1 "kdenlive_render" received signal SIGSEGV, Segmentation fault. __memmove_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:2987 2987 ../sysdeps/x86_64/multiarch/memcpy-ssse3.S: No such file or directory. (gdb) thread apply all bt Thread 2 (Thread 0x7ffff2b60700 (LWP 15707)): #0 0x00007ffff72aee8d in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007ffff5c0a39c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007ffff5c0a4ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ffff7bd92ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007ffff7b83d9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007ffff79a9044 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #6 0x00007ffff7f667a5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 #7 0x00007ffff79adc28 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #8 0x00007ffff6f9e6fa in start_thread (arg=0x7ffff2b60700) at pthread_create.c:333 #9 0x00007ffff72bab5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 1 (Thread 0x7ffff7ebf8c0 (LWP 15703)): #0 __memmove_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:2987 #1 0x00007ffff7a0e311 in QListData::remove(int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007ffff7a0e629 in QListData::erase(void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x0000000000409343 in QList<QString>::erase (it=..., this=0x7fffffffd2c0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:533 #4 QList<QString>::removeLast (this=0x7fffffffd2c0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:348 #5 QList<QString>::takeLast (this=0x7fffffffd2c0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:561 #6 RenderJob::slotIsOver (this=0x62b260, status=QProcess::NormalExit, isWritable=<optimised out>) at /workspace/build/renderer/renderjob.cpp:289 #7 0x00007ffff7bb0bc9 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #8 0x00007ffff7aba1b1 in QProcess::stateChanged(QProcess::ProcessState, QProcess::QPrivateSignal) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #9 0x00007ffff7abc1cd in QProcess::setProcessState(QProcess::ProcessState) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #10 0x00007ffff7abc1f4 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #11 0x00007ffff7ac20af in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #12 0x00007ffff7ac2239 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #13 0x00007ffff7bb0bc9 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #14 0x00007ffff7c295de in QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #15 0x00007ffff7bbd12b in QSocketNotifier::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #16 0x00007ffff7b85d9b in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #17 0x00007ffff7bd97ad in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #18 0x00007ffff5c0a1a7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #19 0x00007ffff5c0a400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #20 0x00007ffff5c0a4ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #21 0x00007ffff7bd92ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #22 0x00007ffff7b83d9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #23 0x00007ffff7b8c3ac in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #24 0x0000000000404f43 in main (argc=18, argv=<optimised out>) at /workspace/build/renderer/kdenlive_render.cpp:123
Removing the following from kdenlive-16.08.2/renderer/renderjob.cpp makes it not crash. > // Decode url > QString url = QUrl::fromEncoded(args.takeLast().toUtf8()).path(); > args << url; Problem also present in git head.
Created attachment 102139 [details] Patch to fix segfault and respect kdenlive_render help text Hi, this was segfaulting pretty much everytime due to args.takeLast() not finding anything, but also didn't really do what the kdenlive_render help text describes "player" field as doing ("player: path to video player to play when rendering is over, use '-' to disable playing"). Admittedly, the patch accepts path or just the program name. Anyway, now it will ignore "-" as described and will control what player is used when provided. If this issue is why player was removed from kdenlive, I suppose it could be added back in? Also probably fixes at least #371487 & #371263.
Sorry, I meant: https://bugs.kde.org/show_bug.cgi?id=371478 and https://bugs.kde.org/show_bug.cgi?id=371263
Even just && m_player != "-" alone would mean "generate script" scripts wouldn't try to play anything and segfault because of not enough arguments as generate script uses "-" as the player for kdenlive_render - this is how I render all my files.
Fixed by: http://commits.kde.org/kdenlive/f3002dd8d31de218d3f8797cfd8b93647760a9cb