olive-editor/olive

[CRASH] Olive randomly freezes during editing (about once every 15 minutes) and becomes unresponsive

RigacciOrg opened this issue · 3 comments

55eedbf

Debian 12.2

Summary

Steps to Reproduce

  1. Start Olive AppImage
  2. Do some editing: import some footages, preview clips, add clips to the timeline, etc.
  3. 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