olive
olive copied to clipboard
[CRASH] Olive randomly freezes during editing (about once every 15 minutes) and becomes unresponsive
55eedbfc
Debian 12.2
Summary
Steps to Reproduce
- Start Olive AppImage
- Do some editing: import some footages, preview clips, add clips to the timeline, etc.
- The GUI becomes unresponsive: need to close the window or kill the program.
Crash Report
...
[DEBUG] olive::ProjectSaveTask(0x4c01d70) took 41
[DEBUG] Selected node: olive::TransformDistortNode(0x6c86240)
[DEBUG] Selected node: olive::TransformDistortNode(0x6d72b40)
^Z
Program received signal SIGTSTP, Stopped (user).
0x00007ffff7e6ea13 in __GI___wait4 (pid=-1, stat_loc=0x7fffffffda30, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
30 ../sysdeps/unix/sysv/linux/wait4.c: No such file or directory.
(gdb) bt
#0 0x00007ffff7e6ea13 in __GI___wait4 (pid=-1, stat_loc=0x7fffffffda30, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
#1 0x00005555555b23f2 in ?? ()
#2 0x00005555555b3aba in wait_for ()
#3 0x000055555559f1ea in execute_command_internal ()
#4 0x000055555559fac5 in execute_command ()
#5 0x00005555555869dd in reader_loop ()
#6 0x00005555555853d9 in main ()
Additional Information
The backtrace after the Ctrl-Z is always the same. I have the same problem also in Debian 11.8, but I have to check with gdb in that environment yet. Please tell me if I can do more debugging (recompile, strace, change something in the GNU/Linux environment, etc.).
Got the same freeze on a different computer, with the same Debian 12.2 O.S.:
...
[DEBUG] Selected node: olive::TextGeneratorV3(0x467d7e0)
[DEBUG] olive::ProjectSaveTask(0x5155bb0) took 6
[DEBUG] Saved auto-recovery to: "/home/niccolo/.local/share/olivevideoeditor.org/Olive/autorecovery/{9802c4ff-d1da-4bea-bfcd-f735b7756aac}/1698923141.ove"
^Z
Program received signal SIGTSTP, Stopped (user).
0x00007ffff7e64a13 in __GI___wait4 (pid=-1, stat_loc=0x7fffffffda10, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
30 ../sysdeps/unix/sysv/linux/wait4.c: No such file or directory.
(gdb) bt
#0 0x00007ffff7e64a13 in __GI___wait4 (pid=-1, stat_loc=0x7fffffffda10, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
#1 0x00005555555b23f2 in ?? ()
#2 0x00005555555b3aba in wait_for ()
#3 0x000055555559f1ea in execute_command_internal ()
#4 0x000055555559fac5 in execute_command ()
#5 0x00005555555869dd in reader_loop ()
#6 0x00005555555853d9 in main ()
The backtraces I provided above were captured running the AppImage from the gdb prompt, but they are probably useless. To properly debug Olive as described into Debugging Olive we should loop-mount the AppImage and then exec-file the /usr/bin/olive-editor contained therein.
So I made a step further: I compiled Olive Editor from sources, downloading the same 55eedbf GitHub commit. The executable I obtained worked flawlessy for more than three hours without any issue. So I suspect that the freeze problem is introduced by some issue with the AppImage package.
The build from sources were performed on a clean Debian 12 workstation, installing all the required tools and libraries; only the optional OpenTimelineIO and GoogleCrashpad packages were left out. I only have a problem respect the AppImage build: the audio does not work (nor playback, nor scrubbing), on the console there is the error 'aresample' filter not present, cannot convert formats. May be a missing feature of the ffmpeg provided by Debian?
I copied the compiled executable on my editing workstation and installed the required libraries from official Debian packages only: the freeze problem seems resolved. I will eventually add more info in this issue.
A final note about how I solved the problem. After compiling Olive from the sources I got the problem of missing sound, with the error printed into the console:
'aresample' filter not present, cannot convert formats.
It turned out that the problem was using the libavfilter8 package from the Deb-Multimedia repository, instead of the original Debian package. That package is actually missing the aresample filter, thus the error. Placing the original library into a custom directory /usr/local/lib/olive-editor/libavfilter.so.8
and settnig the LD_PRELOAD variable solved my problem:
LD_PRELOAD=/usr/local/lib/olive-editor /usr/local/bin/olive-editor