jliljebl / flowblade

Video Editor for Linux
GNU General Public License v3.0
2.65k stars 180 forks source link

crash on startup (debian buster) #471

Closed exaexa closed 6 years ago

exaexa commented 6 years ago

an unmodified flowblade from the distribution crashes on startup in Debian Buster.

Log here (includes versions):

FLOWBLADE MOVIE EDITOR 1.14
---------------------------
Launch script dir: /usr/bin
Running from installation...
modules path: /usr/lib/python2.7/dist-packages/Flowblade
MLT found, version: 6.5.0
numpy version: 1.13.3
OS: Debian GNU/Linux buster/sid
Python 2.7.14+ (default, Dec  5 2017, 15:17:02) 
[GCC 7.2.0]
GTK+ version: 3.22.26
User dir: /home/exa/.flowblade/
Locale: en_US
Translations at /usr/share/locale were not found, using program root directory translations.
Use OS locale language.
Valid shortcut files found: ['flowblade.xml', 'premiere.xml']
Keyboard shortcuts file: flowblade.xml
Loading shortcuts: Flowblade
1920 1080
Small height: False
Small width: False
Detecting environment...
---
video_codecs:
  - a64multi
  - a64multi5
  - alias_pix
  - amv
  - apng
  - asv1
  - asv2
  - avrp
  - avui
  - ayuv
  - bmp
  - cinepak
  - cljr
  - dnxhd
  - dpx
  - dvvideo
  - ffv1
  - ffvhuff
  - fits
  - flashsv
  - flashsv2
  - flv
  - gif
  - h261
  - h263
  - h263p
  - hap
  - huffyuv
  - jpeg2000
  - jpegls
  - ljpeg
  - mjpeg
  - mpeg1video
  - mpeg2video
  - mpeg4
  - msmpeg4v2
  - msmpeg4
  - msvideo1
  - pam
  - pbm
  - pcx
  - pgm
  - pgmyuv
  - png
  - ppm
  - prores
  - prores_aw
  - prores_ks
  - qtrle
  - r10k
  - r210
  - rawvideo
  - roqvideo
  - rv10
  - rv20
  - sgi
  - snow
  - sunrast
  - svq1
  - targa
  - tiff
  - utvideo
  - v210
  - v308
  - v408
  - v410
  - vc2
  - wrapped_avframe
  - wmv1
  - wmv2
  - xbm
  - xface
  - xwd
  - y41p
  - yuv4
  - zlib
  - zmbv
  - libopenjpeg
  - libtheora
  - libvpx
  - libvpx-vp9
  - libwebp_anim
  - libwebp
  - libx264
  - libx264rgb
  - libx265
  - libxvid
  - libopenh264
  - h264_nvenc
  - h264_qsv
  - h264_vaapi
  - nvenc
  - nvenc_h264
  - nvenc_hevc
  - hevc_nvenc
  - hevc_qsv
  - hevc_vaapi
  - libkvazaar
  - mjpeg_vaapi
  - mpeg2_qsv
  - mpeg2_vaapi
  - vp8_vaapi
  - vp9_vaapi
...
---
audio_codecs:
  - comfortnoise
  - s302m
  - aac
  - ac3
  - ac3_fixed
  - alac
  - dca
  - eac3
  - flac
  - g723_1
  - mlp
  - mp2
  - mp2fixed
  - nellymoser
  - opus
  - real_144
  - sonic
  - sonicls
  - truehd
  - tta
  - vorbis
  - wavpack
  - wmav1
  - wmav2
  - pcm_alaw
  - pcm_f32be
  - pcm_f32le
  - pcm_f64be
  - pcm_f64le
  - pcm_mulaw
  - pcm_s8
  - pcm_s8_planar
  - pcm_s16be
  - pcm_s16be_planar
  - pcm_s16le
  - pcm_s16le_planar
  - pcm_s24be
  - pcm_s24daud
  - pcm_s24le
  - pcm_s24le_planar
  - pcm_s32be
  - pcm_s32le
  - pcm_s32le_planar
  - pcm_s64be
  - pcm_s64le
  - pcm_u8
  - pcm_u16be
  - pcm_u16le
  - pcm_u24be
  - pcm_u24le
  - pcm_u32be
  - pcm_u32le
  - roq_dpcm
  - adpcm_adx
  - g722
  - g726
  - g726le
  - adpcm_ima_qt
  - adpcm_ima_wav
  - adpcm_ms
  - adpcm_swf
  - adpcm_yamaha
  - libfdk_aac
  - libgsm
  - libgsm_ms
  - libilbc
  - libmp3lame
  - libopencore_amrnb
  - libopus
  - libshine
  - libspeex
  - libvo_amrwbenc
  - libvorbis
...
---
formats:
  - a64
  - ac3
  - adts
  - adx
  - aiff
  - amr
  - apng
  - asf
  - ass
  - ast
  - asf_stream
  - au
  - avi
  - avm2
  - bit
  - caf
  - cavsvideo
  - crc
  - dash
  - data
  - daud
  - dirac
  - dnxhd
  - dts
  - dv
  - eac3
  - f4v
  - ffm
  - ffmetadata
  - fifo
  - filmstrip
  - fits
  - flac
  - flv
  - framecrc
  - framehash
  - framemd5
  - g722
  - g723_1
  - g726
  - g726le
  - gif
  - gsm
  - gxf
  - h261
  - h263
  - h264
  - hash
  - hds
  - hevc
  - hls
  - ico
  - ilbc
  - image2
  - image2pipe
  - ipod
  - ircam
  - ismv
  - ivf
  - jacosub
  - latm
  - lrc
  - m4v
  - md5
  - matroska
  - matroska
  - microdvd
  - mjpeg
  - mlp
  - mmf
  - mov
  - mp2
  - mp3
  - mp4
  - mpeg
  - vcd
  - mpeg1video
  - dvd
  - svcd
  - mpeg2video
  - vob
  - mpegts
  - mpjpeg
  - mxf
  - mxf_d10
  - mxf_opatom
  - null
  - nut
  - oga
  - ogg
  - ogv
  - oma
  - opus
  - alaw
  - mulaw
  - f64be
  - f64le
  - f32be
  - f32le
  - s32be
  - s32le
  - s24be
  - s24le
  - s16be
  - s16le
  - s8
  - u32be
  - u32le
  - u24be
  - u24le
  - u16be
  - u16le
  - u8
  - psp
  - rawvideo
  - rm
  - roq
  - rso
  - rtp
  - rtp_mpegts
  - rtsp
  - sap
  - scc
  - segment
  - stream_segment,ssegment
  - singlejpeg
  - smjpeg
  - smoothstreaming
  - sox
  - spx
  - spdif
  - srt
  - sup
  - swf
  - tee
  - 3g2
  - 3gp
  - mkvtimestamp_v2
  - truehd
  - tta
  - uncodedframecrc
  - vc1
  - vc1test
  - voc
  - w64
  - wav
  - webm
  - webm_dash_manifest
  - webm_chunk
  - webp
  - webvtt
  - wtv
  - wv
  - yuv4mpegpipe
  - chromaprint
  - alsa
  - caca
  - fbdev
  - opengl
  - oss
  - pulse
  - sdl,sdl2
  - sndio
  - v4l2
  - xv
...
MLT detection succeeded, 165 formats, 103 video codecs and 73 audio codecs found.
538 MLT services found.
Loading render profiles...
Loading filters...
Brightness dropped, MLT version too low for this filter.
Loading transitions...
RGB Adjustment dropped for Color Adjustment
Hue dropped for Color Adjustment
Gamma dropped for Lift Gain Gamma
G'MIC found
Natron not found
Player initialized with profile:  DV/DVD PAL
Selected color NOT detected
BG color detected
[swscaler @ 0x7f1bd4240640] Warning: data is not aligned! This can lead to a speed loss
Segmentation fault

I tried debugging around a bit, stacktrace from GDB looks like this:

#0  0x00007ffff7bc3e30 in __GI___pthread_mutex_lock (mutex=0x0) at ../nptl/pthread_mutex_lock.c:67
        __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
        type = <optimized out>
        id = <optimized out>
#1  0x00007fffeff2625a in XrmQGetResource () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#2  0x00007fffeff026e6 in XGetDefault () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#3  0x00007fffefa4993e in  () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#4  0x00007fffefa4c390 in  () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#5  0x00007fffefa1d370 in cairo_surface_get_font_options () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#6  0x00007fffef9da992 in  () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#7  0x00007fffef9dda94 in  () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#8  0x00007fffef9cf974 in cairo_show_glyphs () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#9  0x00007ffff21d749b in  () at /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
#10 0x00007ffff21d76cc in  () at /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
#11 0x00007ffff2b4f23e in pango_renderer_draw_glyph_item () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#12 0x00007ffff2b4fcd1 in pango_renderer_draw_layout_line () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#13 0x00007ffff2b500a5 in pango_renderer_draw_layout () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#14 0x00007ffff21d795a in  () at /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
#15 0x00007fffed3b8a6d in gtk_render_layout () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#16 0x00007fffed329721 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#17 0x00007fffed27e10d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#18 0x00007fffed282e73 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007fffed3268d1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007fffed211b91 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007fffed49627b in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#22 0x00007fffed27906a in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#23 0x00007fffed279152 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x00007fffed357d71 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00007fffed27e10d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#26 0x00007fffed282e73 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#27 0x00007fffed357d91 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#28 0x00007fffed49627b in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#29 0x00007fffed27906a in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#30 0x00007fffed279152 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#31 0x00007fffed3550ec in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#32 0x00007fffed27e10d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#33 0x00007fffed282e73 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#34 0x00007fffed355b61 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#35 0x00007fffed49627b in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#36 0x00007fffed27906a in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#37 0x00007fffed279152 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#38 0x00007fffed22b234 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#39 0x00007fffed27e10d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#40 0x00007fffed282e73 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#41 0x00007fffed22dbc1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#42 0x00007fffed49627b in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#43 0x00007fffed27906a in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#44 0x00007fffed279152 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#45 0x00007fffed22b234 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#46 0x00007fffed27e10d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#47 0x00007fffed282e73 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#48 0x00007fffed22dbc1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#49 0x00007fffed49627b in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#50 0x00007fffed27906a in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#51 0x00007fffed279152 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#52 0x00007fffed4a3e6f in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#53 0x00007fffed49627b in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#54 0x00007fffed49f548 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#55 0x00007fffed340179 in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#56 0x00007ffff24133e5 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#57 0x00007ffff2423705 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#58 0x00007ffff2424906 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#59 0x00007ffff2424b00 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#60 0x00007ffff541ff9d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#61 0x00007ffff5432c9e in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#62 0x00007ffff543b475 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#63 0x00007ffff543be8f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#64 0x00007ffff241c921 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#65 0x00007ffff2407ad0 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#66 0x00007ffff5147893 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#67 0x00007ffff5146e15 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#68 0x00007ffff51471e0 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#69 0x00007ffff51474f2 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#70 0x00007fffed33f345 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#71 0x00007ffff4ef8fce in ffi_call_unix64 () at /usr/lib/x86_64-linux-gnu/libffi.so.6
#72 0x00007ffff4ef893f in ffi_call () at /usr/lib/x86_64-linux-gnu/libffi.so.6
#73 0x00007ffff5903cfa in  () at /usr/lib/python2.7/dist-packages/gi/_gi.x86_64-linux-gnu.so
#74 0x00007ffff59058e8 in  () at /usr/lib/python2.7/dist-packages/gi/_gi.x86_64-linux-gnu.so
#75 0x000055555564def0 in PyEval_EvalFrameEx ()
#76 0x000055555564dd02 in PyEval_EvalFrameEx ()
#77 0x0000555555646865 in PyEval_EvalCodeEx ()
#78 0x000055555567737f in  ()
#79 0x0000555555671f62 in PyRun_FileExFlags ()
#80 0x0000555555671a0d in PyRun_SimpleFileExFlags ()
#81 0x0000555555620345 in Py_Main ()
#82 0x00007ffff6eb8f2a in __libc_start_main (main=0x55555561fc90 <main>

I tried finding the python code stacktrace but hit this problem https://bugs.python.org/issue1215 (maybe there is a workaround?)

If there's a simple method to obtain a backtrace with MLT, please tell me the simplest method to obtain it. (there's sadly no libmlt-dbg)

Is there some more information I can possibly supply?

exaexa commented 6 years ago

….Also including the tail of strace:

recvmsg(6, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1 \226\1\2\0\0\0\4\0\0\0\0\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 40
recvmsg(6, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(6, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(6, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(6, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}], 3, 0) = 0 (Timeout)
futex(0x7f9e42eb7e28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
brk(0x560ad84ff000)                     = 0x560ad84ff000
futex(0x7f9e44cf1c20, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f9e44cf1c20, FUTEX_WAKE_PRIVATE, 1) = 0
mprotect(0x7f9e1c024000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x7f9e1c025000, 8192, PROT_READ|PROT_WRITE) = 0
openat(AT_FDCWD, "/usr/share/icons/gnome/scalable/actions/list-remove-symbolic.svg", O_RDONLY) = 31
fstat(31, {st_mode=S_IFREG|0644, st_size=3117, ...}) = 0
read(31, "<?xml version='1.0' encoding='UT"..., 8192) = 3117
read(31, "", 8192)                      = 0
close(31)                               = 0
openat(AT_FDCWD, "/usr/share/icons/gnome/scalable/actions/list-add-symbolic.svg", O_RDONLY) = 31
fstat(31, {st_mode=S_IFREG|0644, st_size=3104, ...}) = 0
brk(0x560ad8522000)                     = 0x560ad8522000
read(31, "<?xml version='1.0' encoding='UT"..., 8192) = 3104
read(31, "", 8192)                      = 0
close(31)                               = 0
futex(0x7f9e42eb7e28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f9e42eb7e28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f9e42eb7e28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f9e42eb7e28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x10} ---
+++ killed by SIGSEGV +++
Segmentation fault

Together with the previous it looks a bit like uninitialized mutex pointer.

jliljebl commented 6 years ago

This is very likely the SDL1.2/SDL2 issue, and it is just being worked on right now. I'll post more info as further developments happen.

exaexa commented 6 years ago

OK thanks, just for the record:

$ sdl-config --version
1.2.15
$ sdl2-config --version
2.0.7

Ask if you need any debugging info or patch testing.

jliljebl commented 6 years ago

Does updating to MLT 6.6.0 fix the issue, or is this unrelated? See here:

https://github.com/jliljebl/flowblade/blob/master/flowblade-trunk/docs/SDL_2_AND_MLT_6_6_0.md

exaexa commented 6 years ago

Seems that the fix helped! Btw I've ruled out the possibility that some change in my environment would have fixed the issue (the old version is still crashing).

Thanks!