Crash when opening .kdenlive file

Hi, I'm sorry if this is not the right place to post but I wasn't finding anything in other places. I was using Kdenlive fine (well, an occasional crash here and there, always recoverable) a few months ago on a project and now want to go back and edit the file. However now when I try to open the file, it hangs for a few seconds and then seg faults. However it does NOT hang if I just start working on a new file. It's only the older files that are not opening up. A bit disappointing, since I'd like to continue working on them without having to redo everything from scratch.

I've tried submitting the bug report to Mantis but still am hoping to connect with other people who might have a similar issue.

My kdenlive version is Kdenlive: 0.7.7.1
KDE Development Platform: 4.4.5 (KDE 4.4.5)
Qt: 4.6.3

This is a 64 bit machine with 8Gigs of memory.

The only major thing I've done recently is get rid of nouveau and am using akmod-nvidia. If I open a .MOV file (I'm using Canon 7D footage) it plays nicely and I can edit it without problems. But if I try to open my old projects: poof.

Thank you for any suggestions and/or help you can offer. I thought perhaps it was due to incompatible default settings (like wrong frame rate or something) but playing around with those didn't seem to solve it.

Hope to hear from you!

Forums:

Interesting. In playing around with it more I found another copy of the same file and now in the places where there used to be text (that I'd generated in Kdenlive for titles, etc.) it's now saying "Invalid." But if I wait, it plays through that and gets to the footage.

Yet nothing shows up in the timeline below, no audio, no clip segments...nothing.

Can you provide a backtrace for the segfault?
What version of Kdenlive did you use when you created the project?

It was the same version: 0.7.7.1 I didn't change anything...though I think at one point my ffmpeg may have been on the "updates" list that shows up in KDE from time to time.

How do I provide a backtrace? Is it the below:

Application: Kdenlive (kdenlive), signal: Segmentation fault
82 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7ff8e5f75820 (LWP 31029))]

Thread 4 (Thread 0x7ff8d3c5c710 (LWP 31030)):
#0 0x000000339ead7de3 in __poll (fds=, nfds=, timeout=) at ../sysdeps/unix/sysv/linux/poll.c:87
#1 0x00000033a123f849 in g_main_context_poll (context=0x7ff8cc0009b0, block=1, dispatch=1, self=) at gmain.c:2904
#2 g_main_context_iterate (context=0x7ff8cc0009b0, block=1, dispatch=1, self=) at gmain.c:2586
#3 0x00000033a123fc9c in IA__g_main_context_iteration (context=0x7ff8cc0009b0, may_block=1) at gmain.c:2654
#4 0x00000038423798b6 in QEventDispatcherGlib::processEvents (this=0x7ff8cc0008c0, flags=) at kernel/qeventdispatcher_glib.cpp:414
#5 0x0000003842352822 in QEventLoop::processEvents (this=, flags=...) at kernel/qeventloop.cpp:149
#6 0x0000003842352aec in QEventLoop::exec (this=0x7ff8d3c5bcf0, flags=...) at kernel/qeventloop.cpp:201
#7 0x000000384226f05b in QThread::exec (this=) at thread/qthread.cpp:487
#8 0x0000003842335878 in QInotifyFileSystemWatcherEngine::run (this=0x2f7f610) at io/qfilesystemwatcher_inotify.cpp:248
#9 0x00000038422711a5 in QThreadPrivate::start (arg=0x2f7f610) at thread/qthread_unix.cpp:248
#10 0x000000339f207761 in start_thread (arg=0x7ff8d3c5c710) at pthread_create.c:301
#11 0x000000339eae14ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 3 (Thread 0x7ff8c2614710 (LWP 31047)):
#0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
#1 0x0000003042a15daa in mlt_consumer_get_frame (this=0x2d57970) at mlt_consumer.c:502
#2 0x0000003042a15f0d in mlt_consumer_rt_frame (this=0x2d57970) at mlt_consumer.c:900
#3 0x00007ff8da7b183c in consumer_thread (arg=0x2d57970) at consumer_sdl_still.c:558
#4 0x000000339f207761 in start_thread (arg=0x7ff8c2614710) at pthread_create.c:301
#5 0x000000339eae14ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7ff8c1c13710 (LWP 31048)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1 0x00007ff8da7b1175 in consumer_thread (arg=0x2d47450) at consumer_sdl_preview.c:428
#2 0x000000339f207761 in start_thread (arg=0x7ff8c1c13710) at pthread_create.c:301
#3 0x000000339eae14ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7ff8e5f75820 (LWP 31029)):
[KCrash Handler]
#5 mlt_properties_find (this=0x0, name=0x64d609 "xmldata") at mlt_properties.c:348
#6 mlt_properties_fetch (this=0x0, name=0x64d609 "xmldata") at mlt_properties.c:414
#7 0x0000003042a0d8c2 in mlt_properties_set (this=0x0, name=0x64d609 "xmldata",
value=0x32b26d0 "\n \n
\n
1,0,0,0,1,0,0,0,1\n
\n #8 0x0000000000494e8e in Render::getFileProperties (this=, xml=..., clipId=, imageHeight=, replaceProducer=)
at /usr/src/debug/kdenlive-0.7.7.1/src/renderer.cpp:613
#9 0x000000000049c2f9 in Render::qt_metacall (this=0x2d468f0, _c=, _id=20, _a=) at /usr/src/debug/kdenlive-0.7.7.1/src/cmake_bindir/renderer.moc:145
#10 0x0000003842366a36 in QMetaObject::activate (sender=0x2993200, m=, local_signal_index=, argv=0x7fff28cc7540) at kernel/qobject.cpp:3295
#11 0x0000000000469de8 in ProjectList::getFileProperties (this=, _t1=..., _t2=..., _t3=36, _t4=false) at /usr/src/debug/kdenlive-0.7.7.1/src/cmake_bindir/projectlist.moc:251
#12 0x000000000046ff90 in ProjectList::slotProcessNextClipInQueue (this=0x2993200) at /usr/src/debug/kdenlive-0.7.7.1/src/projectlist.cpp:848
#13 0x0000000000478426 in ProjectList::qt_metacall (this=0x2993200, _c=QMetaObject::InvokeMetaMethod, _id=, _a=0x7fff28cc7800)
at /usr/src/debug/kdenlive-0.7.7.1/src/cmake_bindir/projectlist.moc:229
#14 0x0000003842366a36 in QMetaObject::activate (sender=0x2993260, m=, local_signal_index=, argv=0x0) at kernel/qobject.cpp:3295
#15 0x0000003842362c4e in QObject::event (this=0x2993260, e=0x7fff28cc7f50) at kernel/qobject.cpp:1212
#16 0x000000321d3ab39c in QApplicationPrivate::notify_helper (this=0x2778dd0, receiver=0x2993260, e=0x7fff28cc7f50) at kernel/qapplication.cpp:4306
#17 0x000000321d3b165b in QApplication::notify (this=, receiver=0x2993260, e=0x7fff28cc7f50) at kernel/qapplication.cpp:4189
#18 0x0000003d4f407016 in KApplication::notify (this=0x7fff28cc82a0, receiver=0x2993260, event=0x7fff28cc7f50) at /usr/src/debug/kdelibs-4.4.5/kdeui/kernel/kapplication.cpp:302
#19 0x0000003842353ddc in QCoreApplication::notifyInternal (this=0x7fff28cc82a0, receiver=0x2993260, event=0x7fff28cc7f50) at kernel/qcoreapplication.cpp:726
#20 0x000000384237c6f2 in sendEvent (this=0x277ca00) at kernel/qcoreapplication.h:215
#21 QTimerInfoList::activateTimers (this=0x277ca00) at kernel/qeventdispatcher_unix.cpp:603
#22 0x0000003842379b74 in timerSourceDispatch (source=) at kernel/qeventdispatcher_glib.cpp:184
#23 0x00000033a123bd02 in g_main_dispatch (context=0x277b920) at gmain.c:1960
#24 IA__g_main_context_dispatch (context=0x277b920) at gmain.c:2513
#25 0x00000033a123fae8 in g_main_context_iterate (context=0x277b920, block=1, dispatch=1, self=) at gmain.c:2591
#26 0x00000033a123fc9c in IA__g_main_context_iteration (context=0x277b920, may_block=1) at gmain.c:2654
#27 0x0000003842379863 in QEventDispatcherGlib::processEvents (this=0x27601f0, flags=) at kernel/qeventdispatcher_glib.cpp:412
#28 0x000000321d44a84e in QGuiEventDispatcherGlib::processEvents (this=, flags=) at kernel/qguieventdispatcher_glib.cpp:204
#29 0x0000003842352822 in QEventLoop::processEvents (this=, flags=...) at kernel/qeventloop.cpp:149
#30 0x0000003842352aec in QEventLoop::exec (this=0x7fff28cc81f0, flags=...) at kernel/qeventloop.cpp:201
#31 0x00000038423561bb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#32 0x0000000000443905 in main (argc=, argv=) at /usr/src/debug/kdenlive-0.7.7.1/src/main.cpp:86

The crash is on:
#5 mlt_properties_find (this=0x0, name=0x64d609 "xmldata") at mlt_properties.c:348

When I grep the MLT source for "xmldata" it gives a result in kdenlivetitle. Kdenlive is trying to set "xmldata" on an invalid Mlt::Producer object in Render::getFileProperties(). Mlt C++ binding will always produce a Mlt::Producer object pointer since this is a C++ constructor and C++ has that quirk that constructors do not have a return value. However, Mlt::Producer is just a wrapper for mlt_producer. Therefore, one must call is_valid() on the Mlt::Producer to verify it loaded okay, and that test is missing in the code.

Ultimately, this probably means your project file contains a kdenlivetitle producer xml element where the resource property points to an invalid file. Invalid in that it does not exist, is not readable, or content is incompatible with your version of mlt's kdenlivetitle.

Check for producer->is_valid() added in Subversion r4905.

@ddennedy -- thanks so much for responding. I'm too much of an end-user (rather than a coder) to be able to do much with your analysis except that it sounds pretty much like I'm screwed, no? It's not like upgrading to 7.8.0 will help with this issue, and it sounds like a corruption in the file itself (I've tried opening ALL the older versions I've made -- they all have the same issue). Basically, it will open new clips just fine and I can recreate things by starting over, but it sounds like I won't be able to use this existing .kdenlive file. Bummer but, well, it's not like it was a whole movie or anything. Just a 2 minute clip.

That said -- can I perhaps do something for the future to ensure this doesn't happen again? One thing I noticed was that the files were on a USB disk that may now be known by a different drive letter. Would that perhaps cause this "unreadable" file? Should I make sure all clips, files, pieces I'm working on are on the local disk first, and to always load and save to the /home directory rather than something out there on /media?

In a way, finding out about this issue NOW is good -- it's a bummer to not be able to use the old file but if I can figure out how to prevent it in the future it's worth it. I plan to use Kdenlive a lot for some upcoming video work and really would hate to have this end up a frequent problem.

Again, thanks so much for helping. If anyone else out there has suggestions about fixing this or at least _avoiding_ it for the future I'd love to know what steps I can take to minimize the risk of this happening again...and of course, if there's something I can try to actually recover the file, that'd be fantastic. It would save me hours of work.

@ddennedy -- Oh, for the second post, "check for Producer is valid" what should I do? Am I looking for a line in a config file? Or...running a script and getting output? Or...commenting out a line in .kdenlive/config or somthing like that?

(Again, apologies for being a bozo at all of this -- I'm really new to kdenlive and am not at all familiar with coding...)

can you please mail me the .kdenlive project file so that I can find the reason for that problem? thanks.

jb@kdenlive org

Well, the problem has been isolated to the fact that my current version of kdenlive can't read or use the titles and other kdenlive-generated sections. Does anyone out there know how to enable this functionality?

I'm still working on this and have isolated (thanks to jb's help) MLT as the source of the problem. For some reason, the version of MLT that's on my machine doesn't play nice with the version of Kdenlive that I'm using. I was using a binary for Fedora that was MLT 0.5.4 and I need 0.5.10 or higher to work with kdenlive.

But now I'm having difficulties with installing MLT from source. Does anyone know of a binary for MLT that's 0.5.10 or higher?

Alternatively, does someone have experience with installing MLT from source? I'm stuck at the ./configure stage because it's tossing out some errors that I'm not sure how to fix.

Configuring framework:
Configuring modules:
Configuring modules/avformat:
avformat: No build environment found.
Try configuring mlt with --avformat-svn.
Configuring modules/core:
Configuring modules/dv:
- libdv not found: disabling
Configuring modules/feeds:
Configuring modules/frei0r:
Configuring modules/gtk2:
- GTK2 components not found: disabling
Configuring modules/kdenlive:
Configuring modules/lumas:
Configuring modules/melt:
Configuring modules/oldfilm:
Configuring modules/plus:
Configuring modules/sdl:
- sdl development libs not found: disabling
Configuring modules/sox:
Configuring modules/vmfx:
Configuring modules/vorbis:
- ogg vorbis not found: disabling
Configuring modules/xml:
- xml2 not found: disabling xml module
Configuring melt:
Configuring mlt++:
Configuring swig:
GPL Components are disabled

I don't know which of the above "not found" elements are needed, nor how to ignore them if they're not.

Many thanks...

what OS are you looking for a binary for? .deb, .rpm, ????? have you checked the Installing from binaries forum section?

Using Fedora Core 13. There's rpms in the current repos for 0.5.4, not 0.5.10. I wasn't able to find anything else out there...trying to get it installed from source is no cake walk either.

I noticed these too but was hesitant to install them because they weren't for 64bit systems...will it work?

(I guess I'll try these...fingers crossed)

Nope. It failed a gazillion deps. MLT 0.5.4 for 64bit systems installs just fine via yum (and is the "latest" version), so I'm guessing the problem is that this just isn't there yet for 64bit systems? Anyone know when the 0.5.10 version will find its way to the Fedora repositories?

error: Failed dependencies:
libSDL-1.2.so.0 is needed by mlt-0.5.10-1.fc13.i686
libavcodec.so.52 is needed by mlt-0.5.10-1.fc13.i686
libavcodec.so.52(LIBAVCODEC_52) is needed by mlt-0.5.10-1.fc13.i686
libavdevice.so.52 is needed by mlt-0.5.10-1.fc13.i686
libavdevice.so.52(LIBAVDEVICE_52) is needed by mlt-0.5.10-1.fc13.i686
libavformat.so.52 is needed by mlt-0.5.10-1.fc13.i686
libavformat.so.52(LIBAVFORMAT_52) is needed by mlt-0.5.10-1.fc13.i686
libavutil.so.50 is needed by mlt-0.5.10-1.fc13.i686
libavutil.so.50(LIBAVUTIL_50) is needed by mlt-0.5.10-1.fc13.i686
libdv.so.4 is needed by mlt-0.5.10-1.fc13.i686
libquicktime.so.0 is needed by mlt-0.5.10-1.fc13.i686
libsamplerate.so.0 is needed by mlt-0.5.10-1.fc13.i686
libsamplerate.so.0(libsamplerate.so.0.0) is needed by mlt-0.5.10-1.fc13.i686
libsox.so.1 is needed by mlt-0.5.10-1.fc13.i686
libswscale.so.0 is needed by mlt-0.5.10-1.fc13.i686
libswscale.so.0(LIBSWSCALE_0) is needed by mlt-0.5.10-1.fc13.i686

If you already have the 64-bit devel packages to all of the mlt and kdenlive dependencies in place, then you might want to give my build script a shot:

http://www.kdenlive.org/forum/kdenlive-0771-and-078-simultaneously

Sorry for what is a basic, bozo question but how do I tell if I have these dependencies in place? I actually think that I _don't_ because the version I have of mlt is 0.5.4 which I guess is not compatible.

But I'd love to give it a try if it's worth a shot!

Well, you will need a whole bunch of -devel packages, but I do know the list - not using Fedora here. Basically, when you try building, you will get an error when there is a missing dependency. Then, you can track down the package, install it, and re-run the build script. It can be a frustrating process.

ISSUE IS SOLVED!!! When I searched the yum repos today I found that mlt and mlt-devel had been updated to 5.10.x and they installed as easy as pie. After that I yumed in kdenlive again and everything worked like a charm. So mlt 5.10 was definitely what was needed...I'm able to use, view, and edit my old .kdenlive files.

And there was much rejoicing. Thanks very much to all above who helped step me through this...jb especially for taking a look and seeing what was going wrong.