mltframework / shotcut

cross-platform (Qt), open-source (GPLv3) video editor
https://www.shotcut.org
GNU General Public License v3.0
10.79k stars 1.12k forks source link

Crash about 20% of the time when opening a larger project and thumbnails are about to be refreshed #120

Closed metellius closed 8 years ago

metellius commented 8 years ago
[Info   ] <Application::Application(int&, char**)> Starting Shotcut version 15.10.02 
[Info   ] <Application::Application(int&, char**)> Linux version 
[Info   ] <Application::Application(int&, char**)> number of logical cores = 4 
[Info   ] <Application::Application(int&, char**)> locale = QLocale(English, Latin, UnitedStates) 
[Info   ] <Application::Application(int&, char**)> install dir = "/home/harald/shotcut/Shotcut/Shotcut.app/bin" 
[Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> language "en_US"
[Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> deinterlacer "onefield"
[Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> external monitor ""
[Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> GPU processing false
[Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> interpolation "nearest"
[Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> video mode ""
[Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> realtime true
[Debug  ] <static void MainWindow::changeTheme(const QString&)> begin
[Debug  ] <static void MainWindow::changeTheme(const QString&)> end
[Debug  ] <MainWindow::MainWindow()> begin
[Info   ] <GLTestWidget::GLTestWidget(QWidget*)> OpenGL context version 4 5 
[Debug  ] <Database::Database(QObject*)> Database version is 1
[Debug  ] <Mlt::Controller::Controller()> begin
[Info   ] <MLT> plugin_mgr_get_object_file_plugins: error finding ladspa_descriptor symbol in object file '/usr/lib/ladspa/blop_files/parabola_1649_data.so': /usr/lib/ladspa/blop_files/parabola_1649_data.so: undefined symbol: ladspa_descriptor
[Info   ] <MLT> plugin_mgr_get_object_file_plugins: error finding ladspa_descriptor symbol in object file '/usr/lib/ladspa/blop_files/sawtooth_1641_data.so': /usr/lib/ladspa/blop_files/sawtooth_1641_data.so: undefined symbol: ladspa_descriptor
[Info   ] <MLT> plugin_mgr_get_object_file_plugins: error finding ladspa_descriptor symbol in object file '/usr/lib/ladspa/blop_files/square_1643_data.so': /usr/lib/ladspa/blop_files/square_1643_data.so: undefined symbol: ladspa_descriptor
no more csLADSPA plugins
[Debug  ] <Mlt::Controller::Controller()> end
[Debug  ] <Mlt::GLWidget::GLWidget(QObject*)> begin
[Debug  ] <Mlt::GLWidget::GLWidget(QObject*)> end
[Debug  ] <void MainWindow::setupSettingsMenu()> begin
libDeckLinkAPI.so: cannot open shared object file: No such file or directory
[Error  ] <MLT> [ 0x6110000967c8] The DeckLink drivers not installed.
[Debug  ] <void MainWindow::setupSettingsMenu()> end
[Debug  ] <void MainWindow::readPlayerSettings()> begin
[Debug  ] <void MainWindow::readPlayerSettings()> end
[Debug  ] <void MainWindow::configureVideoWidget()> begin
[Debug  ] <void MainWindow::configureVideoWidget()> end
[Debug  ] <ScopeController::ScopeController(QMainWindow*, QMenu*)> begin
[Debug  ] <ScopeWidget::ScopeWidget(const QString&)> begin true
[Debug  ] <ScopeWidget::ScopeWidget(const QString&)> end
[Debug  ] <AudioPeakMeterScopeWidget::AudioPeakMeterScopeWidget()> begin
[Debug  ] <AudioPeakMeterScopeWidget::AudioPeakMeterScopeWidget()> end
[Debug  ] <ScopeDock::ScopeDock(ScopeController*, ScopeWidget*)> begin
[Debug  ] <ScopeDock::ScopeDock(ScopeController*, ScopeWidget*)> end
[Debug  ] <ScopeWidget::ScopeWidget(const QString&)> begin true
[Debug  ] <ScopeWidget::ScopeWidget(const QString&)> end
[Debug  ] <AudioSpectrumScopeWidget::AudioSpectrumScopeWidget()> begin
[Debug  ] <AudioSpectrumScopeWidget::AudioSpectrumScopeWidget()> end
[Debug  ] <ScopeDock::ScopeDock(ScopeController*, ScopeWidget*)> begin
[Debug  ] <ScopeDock::ScopeDock(ScopeController*, ScopeWidget*)> end
[Debug  ] <ScopeWidget::ScopeWidget(const QString&)> begin true
[Debug  ] <ScopeWidget::ScopeWidget(const QString&)> end
[Debug  ] <AudioWaveformScopeWidget::AudioWaveformScopeWidget()> begin
[Debug  ] <AudioWaveformScopeWidget::AudioWaveformScopeWidget()> end
[Debug  ] <ScopeDock::ScopeDock(ScopeController*, ScopeWidget*)> begin
[Debug  ] <ScopeDock::ScopeDock(ScopeController*, ScopeWidget*)> end
[Debug  ] <ScopeController::ScopeController(QMainWindow*, QMenu*)> end
[Debug  ] <RecentDock::RecentDock(QWidget*)> begin
[Debug  ] <RecentDock::RecentDock(QWidget*)> end
[Debug  ] <PlaylistDock::PlaylistDock(QWidget*)> begin
[Debug  ] <PlaylistDock::PlaylistDock(QWidget*)> end
[Debug  ] <TimelineDock::TimelineDock(QWidget*)> begin
[Debug  ] <TimelineDock::TimelineDock(QWidget*)> end
[Debug  ] <FiltersDock::FiltersDock(MetadataModel*, AttachedFiltersModel*, QWidget*)> begin
[Debug  ] <FiltersDock::FiltersDock(MetadataModel*, AttachedFiltersModel*, QWidget*)> end
[Debug  ] <EncodeDock::EncodeDock(QWidget*)> begin

---
formats:
  - a64
  - ac3
  - adts
  - adx
  - aiff
  - amr
  - asf
  - ass
  - ast
  - asf_stream
  - au
  - avi
  - avm2
  - bit
  - caf
  - cavsvideo
  - crc
  - data
  - daud
  - dirac
  - dnxhd
  - dts
  - dv
  - eac3
  - f4v
  - ffm
  - ffmetadata
  - filmstrip
  - flac
  - flv
  - framecrc
  - framemd5
  - g722
  - g723_1
  - gif
  - gxf
  - h261
  - h263
  - h264
  - 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
  - null
  - nut
  - oga
  - ogg
  - 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
  - rtsp
  - sap
  - segment
  - stream_segment,ssegment
  - smjpeg
  - smoothstreaming
  - sox
  - spdif
  - speex
  - srt
  - swf
  - tee
  - 3g2
  - 3gp
  - mkvtimestamp_v2
  - truehd
  - uncodedframecrc
  - vc1
  - vc1test
  - voc
  - w64
  - wav
  - webm
  - webm_dash_manifest
  - webvtt
  - wtv
  - wv
  - yuv4mpegpipe
  - alsa
  - fbdev
  - oss
  - pulse
  - sdl
  - v4l2
  - xv
...

---
audio_codecs:
  - comfortnoise
  - s302m
  - aac
  - ac3
  - ac3_fixed
  - alac
  - dca
  - eac3
  - flac
  - g723_1
  - mp2
  - mp2fixed
  - nellymoser
  - real_144
  - sonic
  - sonicls
  - 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_u8
  - pcm_u16be
  - pcm_u16le
  - pcm_u24be
  - pcm_u24le
  - pcm_u32be
  - pcm_u32le
  - roq_dpcm
  - adpcm_adx
  - g722
  - g726
  - adpcm_ima_qt
  - adpcm_ima_wav
  - adpcm_ms
  - adpcm_swf
  - adpcm_yamaha
  - libmp3lame
  - libopus
  - libvorbis
...

---
video_codecs:
  - a64multi
  - a64multi5
  - alias_pix
  - amv
  - asv1
  - asv2
  - avrp
  - avui
  - ayuv
  - bmp
  - cinepak
  - cljr
  - dnxhd
  - dpx
  - dvvideo
  - ffv1
  - ffvhuff
  - flashsv
  - flashsv2
  - flv
  - gif
  - h261
  - h263
  - h263p
  - 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
  - wmv1
  - wmv2
  - xbm
  - xface
  - xwd
  - y41p
  - yuv4
  - zlib
  - zmbv
  - libtheora
  - libvpx
  - libvpx-vp9
  - libx264
  - libx264rgb
  - libx265
...
[Debug  ] <EncodeDock::EncodeDock(QWidget*)> end
[Debug  ] <JobsDock::JobsDock(QWidget*)> begin
[Debug  ] <JobsDock::JobsDock(QWidget*)> end
[Debug  ] <void MainWindow::readWindowSettings()> begin
[Debug  ] <void MainWindow::readWindowSettings()> end
[Debug  ] <void LeapNetworkListener::start()> 
[Debug  ] <MainWindow::MainWindow()> end
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_balance" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Balance"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_bandpass" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Band Pass"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_basstreble" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Bass & Treble"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_channelcopy" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Copy Channel"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_compressor" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Compressor"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_delay" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Delay"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_expander" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Expander"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_fadein" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Fade In Audio"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_fadeout" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Fade Out Audio"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_gain" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Gain / Volume"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_highpass" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "High Pass"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_limiter" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Limiter"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_loudness" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Normalize"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_lowpass" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Low Pass"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_mono" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Downmix"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_mute" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Mute"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_notch" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Notch"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_pan" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Pan"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_reverb" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Reverb"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "audio_swapchannels" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Swap Channels"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "blur" "meta_boxblur.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Blur"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "blur" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Blur"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "color" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Color Grading"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "color" "meta_frei0r_coloradj.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Color Grading"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "color" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Color Grading"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "crop" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Crop"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "crop" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Crop"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "dust" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Old Film: Dust"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "dynamictext" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Text"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "fadein_brightness" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Fade In Video"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "fadein_movit" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Fade In Video"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "fadeout_brightness" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Fade Out Video"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "fadeout_movit" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Fade Out Video"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "glow" "meta_frei0r.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Glow"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "glow" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Glow"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "grain" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Old Film: Grain"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "invert" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Invert Colors"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "lines" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Old Film: Scratches"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "mirror" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Mirror"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "mirror" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Mirror"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "movit_diffusion" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Diffusion"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "oldfilm" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Old Film: Projector"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "opacity" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Opacity"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "opacity" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Opacity"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "rotate" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Rotate"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "saturation" "meta_frei0r.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Saturation"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "saturation" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Saturation"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "sepia" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Sepia Tone"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "sharpen" "meta_frei0r.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Sharpen"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "sharpen" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Sharpen"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "size_position" "meta_affine.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Size and Position"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "size_position" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Size and Position"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "stabilize" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Stabilize"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "tcolor" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Old Film: Technocolor"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "vignette" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Vignette"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "vignette" "meta_oldfilm.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Vignette"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "wave" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Wave"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "webvfx" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Overlay HTML"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "webvfx_circular_frame" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "Circular Frame (HTML)"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "webvfx_threejs_text" "meta.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "3D Text (HTML)"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "white" "meta_frei0r.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "White Balance"
[Debug  ] <void FilterController::loadFilterMetadata()> reading filter metadata "white" "meta_movit.qml"
[Debug  ] <void FilterController::loadFilterMetadata()> added filter "White Balance"
[Warning] <void QWindowPrivate::setTopLevelScreen(QScreen*, bool)> 0x61300000c7c0 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0x60200000c650) ): Attempt to set a screen on a child window.
[Debug  ] <void Mlt::GLWidget::initializeGL()> begin
[Debug  ] <void Mlt::GLWidget::initializeGL()> OpenGL vendor "NVIDIA Corporation"
[Debug  ] <void Mlt::GLWidget::initializeGL()> OpenGL renderer "GeForce GTX 460/PCIe/SSE2"
[Debug  ] <void Mlt::GLWidget::initializeGL()> OpenGL threaded? true
[Debug  ] <void Mlt::GLWidget::initializeGL()> OpenGL ES? false
[Debug  ] <void Mlt::GLWidget::initializeGL()> end
[Debug  ] <void FiltersDock::resetQview()> 
[Warning] <void QWindow::setTransientParent(QWindow*)> void QWindow::setTransientParent(QWindow*) QQuickView(0x608000035750) must be a top level window.
[Debug  ] <MltXmlChecker::MltXmlChecker()> decimal point ','
[Debug  ] <bool MltXmlChecker::check(const QString&)> begin
[Debug  ] <bool MltXmlChecker::check(const QString&)> end
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[mp3 @ 0x61b0000c3980] max_analyze_duration 5000000 reached at 5015510 microseconds
[mp3 @ 0x61b0000c5580] max_analyze_duration 5000000 reached at 5015510 microseconds                                                                                                           
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 0 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[mp3 @ 0x61b0000c6a80] max_analyze_duration 5000000 reached at 5015510 microseconds
[mp3 @ 0x61b00007bd80] max_analyze_duration 5000000 reached at 5015510 microseconds                                                                                                           
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 0 total_channels 2 max_channels 2
=================================================================
==19307==ERROR: AddressSanitizer: attempting double-free on 0x603000007cf0 in thread T10 (Thread (pooled)):
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[Debug  ] <MLT> [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
    #0 0x7fbb7347bd2a in realloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x98d2a)
    #1 0x7fbb70c656db in QListData::realloc(int) tools/qlist.cpp:142
    #2 0x7fbb70c65884 in QListData::append(int) tools/qlist.cpp:170
    #3 0x7fbb70c658ce in QListData::append() tools/qlist.cpp:180
    #4 0x7fbb49e698cd in QList<QSQLiteResult*>::append(QSQLiteResult* const&) ../../../../include/QtCore/../../src/corelib/tools/qlist.h:571
    #5 0x7fbb49e65821 in QSQLiteResult::QSQLiteResult(QSQLiteDriver const*) ../../../sql/drivers/sqlite/qsql_sqlite.cpp:343
    #6 0x7fbb49e671c0 in QSQLiteDriver::createResult() const ../../../sql/drivers/sqlite/qsql_sqlite.cpp:657
    #7 0x7fbb71199d5c in qInit kernel/qsqlquery.cpp:261
    #8 0x7fbb71199e31 in QSqlQuery::QSqlQuery(QString const&, QSqlDatabase) kernel/qsqlquery.cpp:278
    #9 0x5b4920 in Database::getThumbnail(QString const&) /home/harald/shotcut/src/shotcut/src/database.cpp:109
    #10 0x5394ad in UpdateThumbnailTask::run() models/playlistmodel.cpp:105
    #11 0x7fbb70bc4dc5 in QThreadPoolThread::run() thread/qthreadpool.cpp:93
    #12 0x7fbb70bcb9bd in QThreadPrivate::start(void*) thread/qthread_unix.cpp:331
    #13 0x7fbb708f56a9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76a9)
    #14 0x7fbb6fd8aeec in clone (/lib/x86_64-linux-gnu/libc.so.6+0x106eec)

0x603000007cf0 is located 0 bytes inside of 32-byte region [0x603000007cf0,0x603000007d10)
freed by thread T9 (Thread (pooled)) here:
    #0 0x7fbb7347bd2a in realloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x98d2a)
    #1 0x7fbb70c656db in QListData::realloc(int) tools/qlist.cpp:142
    #2 0x7fbb70c65884 in QListData::append(int) tools/qlist.cpp:170
    #3 0x7fbb70c658ce in QListData::append() tools/qlist.cpp:180
    #4 0x7fbb49e698cd in QList<QSQLiteResult*>::append(QSQLiteResult* const&) ../../../../include/QtCore/../../src/corelib/tools/qlist.h:571
    #5 0x7fbb49e65821 in QSQLiteResult::QSQLiteResult(QSQLiteDriver const*) ../../../sql/drivers/sqlite/qsql_sqlite.cpp:343
    #6 0x7fbb49e671c0 in QSQLiteDriver::createResult() const ../../../sql/drivers/sqlite/qsql_sqlite.cpp:657
    #7 0x7fbb71199d5c in qInit kernel/qsqlquery.cpp:261
    #8 0x7fbb71199e31 in QSqlQuery::QSqlQuery(QString const&, QSqlDatabase) kernel/qsqlquery.cpp:278
    #9 0x5b4920 in Database::getThumbnail(QString const&) /home/harald/shotcut/src/shotcut/src/database.cpp:109
    #10 0x5394ad in UpdateThumbnailTask::run() models/playlistmodel.cpp:105
    #11 0x7fbb70bc4dc5 in QThreadPoolThread::run() thread/qthreadpool.cpp:93
    #12 0x7fbb70bcb9bd in QThreadPrivate::start(void*) thread/qthread_unix.cpp:331
    #13 0x7fbb708f56a9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76a9)

previously allocated by thread T0 here:
    #0 0x7fbb7347b9aa in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x989aa)
    #1 0x7fbb70c6552b in QListData::detach_grow(int*, int) tools/qlist.cpp:81
    #2 0x7fbb49e6aba8 in QList<QSQLiteResult*>::detach_helper_grow(int, int) ../../../../include/QtCore/../../src/corelib/tools/qlist.h:725
    #3 0x7fbb49e6988d in QList<QSQLiteResult*>::append(QSQLiteResult* const&) ../../../../include/QtCore/../../src/corelib/tools/qlist.h:551
    #4 0x7fbb49e65821 in QSQLiteResult::QSQLiteResult(QSQLiteDriver const*) ../../../sql/drivers/sqlite/qsql_sqlite.cpp:343
    #5 0x7fbb49e671c0 in QSQLiteDriver::createResult() const ../../../sql/drivers/sqlite/qsql_sqlite.cpp:657
    #6 0x7fbb71199d5c in qInit kernel/qsqlquery.cpp:261
    #7 0x7fbb71199e31 in QSqlQuery::QSqlQuery(QString const&, QSqlDatabase) kernel/qsqlquery.cpp:278
    #8 0x5b3306 in Database::Database(QObject*) /home/harald/shotcut/src/shotcut/src/database.cpp:41
    #9 0x5b38d0 in Database::singleton(QWidget*) /home/harald/shotcut/src/shotcut/src/database.cpp:59
    #10 0x441c23 in MainWindow::MainWindow() /home/harald/shotcut/src/shotcut/src/mainwindow.cpp:118
    #11 0x4491bc in MainWindow::singleton() /home/harald/shotcut/src/shotcut/src/mainwindow.cpp:413
    #12 0x43d8ad in main /home/harald/shotcut/src/shotcut/src/main.cpp:235
    #13 0x7fbb6fca4a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Thread T10 (Thread (pooled)) created by T0 here:
    #0 0x7fbb734196a3 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x366a3)
    #1 0x7fbb70bcc287 in QThread::start(QThread::Priority) thread/qthread_unix.cpp:609
    #2 0x7fbb70bc57e3 in QThreadPoolPrivate::startThread(QRunnable*) thread/qthreadpool.cpp:248
    #3 0x7fbb70bc53b8 in QThreadPoolPrivate::tryStart(QRunnable*) thread/qthreadpool.cpp:192
    #4 0x7fbb70bc60da in QThreadPool::start(QRunnable*, int) thread/qthreadpool.cpp:456
    #5 0x5373b1 in PlaylistModel::refreshThumbnails() models/playlistmodel.cpp:555
    #6 0x45ef52 in MainWindow::updateThumbnails() /home/harald/shotcut/src/shotcut/src/mainwindow.cpp:1948
    #7 0x62cb65 in MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/harald/shotcut/src/shotcut/src/moc_mainwindow.cpp:498
    #8 0x7fbb70e4e009 in QMetaObject::activate(QObject*, int, int, void**) kernel/qobject.cpp:3711
    #9 0x7fbb70e4d7f5 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) kernel/qobject.cpp:3576
    #10 0x63ead8 in PlaylistModel::loaded() /home/harald/shotcut/src/shotcut/src/moc_playlistmodel.cpp:264
    #11 0x5378ae in PlaylistModel::setPlaylist(Mlt::Playlist&) models/playlistmodel.cpp:587
    #12 0x5d105b in MultitrackModel::loadPlaylist() models/multitrackmodel.cpp:2364
    #13 0x5d382a in MultitrackModel::load() models/multitrackmodel.cpp:2589
    #14 0x45cbe2 in MainWindow::onProducerOpened() /home/harald/shotcut/src/shotcut/src/mainwindow.cpp:1669
    #15 0x62c287 in MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/harald/shotcut/src/shotcut/src/moc_mainwindow.cpp:454
    #16 0x7fbb70e4e009 in QMetaObject::activate(QObject*, int, int, void**) kernel/qobject.cpp:3711
    #17 0x7fbb70e4d7f5 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) kernel/qobject.cpp:3576
    #18 0x62de04 in MainWindow::producerOpened() /home/harald/shotcut/src/shotcut/src/moc_mainwindow.cpp:619
    #19 0x450bcd in MainWindow::open(Mlt::Producer*) /home/harald/shotcut/src/shotcut/src/mainwindow.cpp:716
    #20 0x4534d5 in MainWindow::open(QString, Mlt::Properties const*) /home/harald/shotcut/src/shotcut/src/mainwindow.cpp:930
    #21 0x43d949 in main /home/harald/shotcut/src/shotcut/src/main.cpp:241
    #22 0x7fbb6fca4a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Thread T9 (Thread (pooled)) created by T0 here:
    #0 0x7fbb734196a3 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x366a3)
    #1 0x7fbb70bcc287 in QThread::start(QThread::Priority) thread/qthread_unix.cpp:609
    #2 0x7fbb70bc57e3 in QThreadPoolPrivate::startThread(QRunnable*) thread/qthreadpool.cpp:248
    #3 0x7fbb70bc53b8 in QThreadPoolPrivate::tryStart(QRunnable*) thread/qthreadpool.cpp:192
    #4 0x7fbb70bc60da in QThreadPool::start(QRunnable*, int) thread/qthreadpool.cpp:456
    #5 0x5373b1 in PlaylistModel::refreshThumbnails() models/playlistmodel.cpp:555
    #6 0x45ef52 in MainWindow::updateThumbnails() /home/harald/shotcut/src/shotcut/src/mainwindow.cpp:1948
    #7 0x62cb65 in MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/harald/shotcut/src/shotcut/src/moc_mainwindow.cpp:498
    #8 0x7fbb70e4e009 in QMetaObject::activate(QObject*, int, int, void**) kernel/qobject.cpp:3711
    #9 0x7fbb70e4d7f5 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) kernel/qobject.cpp:3576
    #10 0x63ead8 in PlaylistModel::loaded() /home/harald/shotcut/src/shotcut/src/moc_playlistmodel.cpp:264
    #11 0x5378ae in PlaylistModel::setPlaylist(Mlt::Playlist&) models/playlistmodel.cpp:587
    #12 0x5d105b in MultitrackModel::loadPlaylist() models/multitrackmodel.cpp:2364
    #13 0x5d382a in MultitrackModel::load() models/multitrackmodel.cpp:2589
    #14 0x45cbe2 in MainWindow::onProducerOpened() /home/harald/shotcut/src/shotcut/src/mainwindow.cpp:1669
    #15 0x62c287 in MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/harald/shotcut/src/shotcut/src/moc_mainwindow.cpp:454
    #16 0x7fbb70e4e009 in QMetaObject::activate(QObject*, int, int, void**) kernel/qobject.cpp:3711
    #17 0x7fbb70e4d7f5 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) kernel/qobject.cpp:3576
    #18 0x62de04 in MainWindow::producerOpened() /home/harald/shotcut/src/shotcut/src/moc_mainwindow.cpp:619
    #19 0x450bcd in MainWindow::open(Mlt::Producer*) /home/harald/shotcut/src/shotcut/src/mainwindow.cpp:716
    #20 0x4534d5 in MainWindow::open(QString, Mlt::Properties const*) /home/harald/shotcut/src/shotcut/src/mainwindow.cpp:930
    #21 0x43d949 in main /home/harald/shotcut/src/shotcut/src/main.cpp:241
    #22 0x7fbb6fca4a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

SUMMARY: AddressSanitizer: double-free ??:0 realloc
==19307==ABORTING

Seems to have something to do with the thumbnail database.

metellius commented 8 years ago

Haven't been able to reproduce in gdb yet due to the race conditions.

ddennedy commented 8 years ago

Does it look like some kind of concurrency problem around the database to you too?

metellius commented 8 years ago

After looking at the code now for a few moments, yes. looks like it could be about get/putThumbnail getting called from multiple threads simultanously (this is certainly the case after loading this project with lots of clips wanting thumbnails). I'll add some mutexes and test the theory.

metellius commented 8 years ago

Well, adding a mutex for get/put thumbnail seems to fix it, but I think we might need more engineering to do this in accordance with the docs: http://doc.qt.io/qt-5/threads-modules.html says

Threads and the SQL Module

A connection can only be used from within the thread that created it. Moving connections between threads or creating queries from a different thread is not supported.

Maybe there needs to be a database worker thread that takes care of the database. Feels overly complicated though; to be honest I'm wondering if we even need a database for this? For comparison the xdg thumbnail specification that most linux file browsers like nautlius and dolphin use for storing thumbnails simply says to write into files with hash-filenames in ~/.thumbnails...

metellius commented 8 years ago

http://specifications.freedesktop.org/thumbnail-spec/thumbnail-spec-latest.html

ddennedy commented 8 years ago

A database is used because it is a cache to prevent consuming disk space without limit and because there is no cross-platform way to sort a directory by access time.

metellius commented 8 years ago

hmm. yes, i forgot that it's about atime and not mtime. I'm looking at a solution that makes Database a QThread and uses waitconditions in order to keep the exact same api, but use a worker thread internally.