Bug 434506 - Crash when attempting to play a video in the preview of the information panel with Phonon-VLC
Summary: Crash when attempting to play a video in the preview of the information panel...
Status: RESOLVED FIXED
Alias: None
Product: phonon-backend-vlc
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 0.11.2
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords: drkonqi, regression, reproducible, wayland
Depends on:
Blocks:
 
Reported: 2021-03-16 18:23 UTC by geisserml
Modified: 2021-03-23 12:31 UTC (History)
11 users (show)

See Also:
Latest Commit:
Version Fixed In: phonon-vlc 0.11


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description geisserml 2021-03-16 18:23:28 UTC
Application: dolphin (20.12.3)

Qt Version: 5.15.2
Frameworks Version: 5.80.0
Operating System: Linux 5.4.0-67-generic x86_64
Windowing System: Wayland
Drkonqi Version: 5.21.2
Distribution: KDE neon User Edition 5.21

-- Information about the crash:
Attempted to start playing a video in the preview of the information panel.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault

[New LWP 10647]
[New LWP 10648]
[New LWP 10649]
[New LWP 10650]
[New LWP 10651]
[New LWP 10652]
[New LWP 10662]
[New LWP 10663]
[New LWP 10664]
[New LWP 10665]
[New LWP 10666]
[New LWP 10667]
[New LWP 10668]
[New LWP 10669]
[New LWP 10670]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007fda82ecbaff in __GI___poll (fds=0x7ffcc3e57328, nfds=1, timeout=1000) at ../sysdeps/unix/sysv/linux/poll.c:29
[Current thread is 1 (Thread 0x7fda7bf596c0 (LWP 10646))]

Thread 16 (Thread 0x7f9a298bc700 (LWP 10670)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fda809aef25 in QBasicMutex::lockInternal() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007fda703679f9 in Phonon::VLC::SurfacePainter::lockCallback(void**) (this=0x56245db35310, planes=0x7f9a298bb6e0) at ./src/video/videowidget.cpp:69
#3  0x00007f9a297b7350 in  () at /usr/lib/x86_64-linux-gnu/vlc/plugins/video_output/libvmem_plugin.so
#4  0x00007fda70265804 in  () at /lib/x86_64-linux-gnu/libvlccore.so.9
#5  0x00007fda702675f8 in  () at /lib/x86_64-linux-gnu/libvlccore.so.9
#6  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 15 (Thread 0x7f9a29c57700 (LWP 10669)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f9a3804f0d0) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f9a3804f130, cond=0x7f9a3804f0a8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7f9a3804f0a8, mutex=0x7f9a3804f130) at pthread_cond_wait.c:638
#3  0x00007f9a2f0639ab in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007f9a2ec9e4e3 in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#5  0x00007f9a2ec9ef08 in avcodec_send_packet () at /lib/x86_64-linux-gnu/libavcodec.so.58
#6  0x00007f9a50db2c8d in  () at /usr/lib/x86_64-linux-gnu/vlc/plugins/codec/libavcodec_plugin.so
#7  0x00007fda70232b58 in  () at /lib/x86_64-linux-gnu/libvlccore.so.9
#8  0x00007fda7023272b in  () at /lib/x86_64-linux-gnu/libvlccore.so.9
#9  0x00007fda70232da9 in  () at /lib/x86_64-linux-gnu/libvlccore.so.9
#10 0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#11 0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 14 (Thread 0x7f9a2a458700 (LWP 10668)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f9a3804f400) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f9a3804f468, cond=0x7f9a3804f3d8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7f9a3804f3d8, mutex=0x7f9a3804f468) at pthread_cond_wait.c:638
#3  0x00007f9a2f063ff6 in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#5  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 13 (Thread 0x7f9a2ac59700 (LWP 10667)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f9a3804f250) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f9a3804f2b8, cond=0x7f9a3804f228) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7f9a3804f228, mutex=0x7f9a3804f2b8) at pthread_cond_wait.c:638
#3  0x00007f9a2f063ff6 in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#5  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 12 (Thread 0x7f9a2b45a700 (LWP 10666)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f9a200213e0) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f9a20021390, cond=0x7f9a200213b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7f9a200213b8, mutex=0x7f9a20021390) at pthread_cond_wait.c:638
#3  0x00007fda7028b90b in picture_pool_Wait () at /lib/x86_64-linux-gnu/libvlccore.so.9
#4  0x00007fda70268c6e in vout_GetPicture () at /lib/x86_64-linux-gnu/libvlccore.so.9
#5  0x00007f9a50db1b46 in  () at /usr/lib/x86_64-linux-gnu/vlc/plugins/codec/libavcodec_plugin.so
#6  0x00007f9a2eca0e3b in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#7  0x00007f9a2f064e1e in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#8  0x00007f9a2edb6ab0 in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#9  0x00007f9a2edbaf88 in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#10 0x00007f9a2edc0188 in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#11 0x00007f9a2f063eab in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#12 0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7f9a2bc5b700 (LWP 10665)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f9a3804eef4) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f9a3804ef58, cond=0x7f9a3804eec8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7f9a3804eec8, mutex=0x7f9a3804ef58) at pthread_cond_wait.c:638
#3  0x00007f9a2f063ff6 in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#5  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7f9a2c45c700 (LWP 10664)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f9a3804ed44) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f9a3804eda8, cond=0x7f9a3804ed18) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7f9a3804ed18, mutex=0x7f9a3804eda8) at pthread_cond_wait.c:638
#3  0x00007f9a2f063ff6 in  () at /lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#5  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7f9a52e96700 (LWP 10663)):
#0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7f9a52e95c90, clockid=<optimized out>, expected=0, futex_word=0x56245db525f0) at ../sysdeps/nptl/futex-internal.h:320
#1  __pthread_cond_wait_common (abstime=0x7f9a52e95c90, clockid=<optimized out>, mutex=0x56245db525a0, cond=0x56245db525c8) at pthread_cond_wait.c:520
#2  __pthread_cond_timedwait (cond=0x56245db525c8, mutex=0x56245db525a0, abstime=0x7f9a52e95c90) at pthread_cond_wait.c:656
#3  0x00007fda7029d53c in vlc_cond_timedwait () at /lib/x86_64-linux-gnu/libvlccore.so.9
#4  0x00007fda70249b26 in  () at /lib/x86_64-linux-gnu/libvlccore.so.9
#5  0x00007fda7024c523 in  () at /lib/x86_64-linux-gnu/libvlccore.so.9
#6  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7f9a57697700 (LWP 10662)):
#0  __GI___libc_read (nbytes=10, buf=0x7f9a57696b1e, fd=33) at ../sysdeps/unix/sysv/linux/read.c:26
#1  __GI___libc_read (fd=33, buf=0x7f9a57696b1e, nbytes=10) at ../sysdeps/unix/sysv/linux/read.c:24
#2  0x00007fda7e42c975 in pa_read () at /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-13.99.so
#3  0x00007fda7f2d5416 in pa_mainloop_prepare () at /lib/x86_64-linux-gnu/libpulse.so.0
#4  0x00007fda7f2d5eb4 in pa_mainloop_iterate () at /lib/x86_64-linux-gnu/libpulse.so.0
#5  0x00007fda7f2d5f70 in pa_mainloop_run () at /lib/x86_64-linux-gnu/libpulse.so.0
#6  0x00007fda7f2e411d in  () at /lib/x86_64-linux-gnu/libpulse.so.0
#7  0x00007fda7e45b72c in  () at /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-13.99.so
#8  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7fda719b9700 (LWP 10652)):
#0  0x00007fda82ecbaff in __GI___poll (fds=0x7fda60004e60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fda7e8aa36e in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fda7e8aa4a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fda80beeffb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fda80b931eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fda809ada52 in QThread::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fda809aebec in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fda721ba700 (LWP 10651)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x56245d1599d8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56245d159988, cond=0x56245d1599b0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x56245d1599b0, mutex=0x56245d159988) at pthread_cond_wait.c:638
#3  0x00007fda73717e6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fda73717a6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fda729bb700 (LWP 10650)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x56245d1599d8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56245d159988, cond=0x56245d1599b0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x56245d1599b0, mutex=0x56245d159988) at pthread_cond_wait.c:638
#3  0x00007fda73717e6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fda73717a6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fda731bc700 (LWP 10649)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x56245d1599d8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56245d159988, cond=0x56245d1599b0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x56245d1599b0, mutex=0x56245d159988) at pthread_cond_wait.c:638
#3  0x00007fda73717e6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fda73717a6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fda78b78700 (LWP 10648)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x56245d1599d8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56245d159988, cond=0x56245d1599b0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x56245d1599b0, mutex=0x56245d159988) at pthread_cond_wait.c:638
#3  0x00007fda73717e6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fda73717a6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fda7b58d700 (LWP 10647)):
#0  0x00007fda82ecbaff in __GI___poll (fds=0x7fda74005240, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fda7e8aa36e in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fda7e8aa4a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fda80beeffb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fda80b931eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fda809ada52 in QThread::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fda81c44f4b in  () at /lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007fda809aebec in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fda7f328609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fda82ed8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fda7bf596c0 (LWP 10646)):
[KCrash Handler]
#4  0x00007fda81141210 in  () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#5  0x00007fda81225a7d in  () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#6  0x00007fda81241861 in QPainter::drawImage(QRectF const&, QImage const&, QRectF const&, QFlags<Qt::ImageConversionFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#7  0x00007fda7036774f in QPainter::drawImage(QRect const&, QImage const&) (image=..., r=..., this=0x7ffcc3e57f48) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h:269
#8  Phonon::VLC::SurfacePainter::handlePaint(QPaintEvent*) (event=0x7ffcc3e58300, this=0x56245db35310) at ./src/video/videowidget.cpp:57
#9  Phonon::VLC::VideoWidget::paintEvent(QPaintEvent*) (this=<optimized out>, event=0x7ffcc3e58300) at ./src/video/videowidget.cpp:448
#10 0x00007fda816aec06 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007fda8166bdc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007fda81674bb8 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007fda80b946da in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007fda816a700a in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007fda816a7832 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007fda8167e427 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007fda8167ef44 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007fda816a86d5 in QWidgetPrivate::syncBackingStore() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007fda816af5fc in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007fda817c78c8 in QMainWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007fda8230dc73 in KMainWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#22 0x00007fda8235913b in KXmlGuiWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#23 0x00007fda830039c8 in DolphinMainWindow::event(QEvent*) (this=<optimized out>, event=<optimized out>) at ./src/dolphinmainwindow.cpp:2428
#24 0x00007fda8166bdc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007fda81674bb8 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007fda80b946da in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007fda80b96fe1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007fda80bef987 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007fda7e8aa17d in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007fda7e8aa400 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fda7e8aa4a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fda80beefe2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007fda80b931eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007fda80b9b394 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x00007fda82ffbfa2 in kdemain(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:222
#36 0x00007fda82ddd0b3 in __libc_start_main (main=0x56245c4db060 <main>, argc=1, argv=0x7ffcc3e591c8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffcc3e591b8) at ../csu/libc-start.c:308
#37 0x000056245c4db09e in _start ()
[Inferior 1 (process 10646) detached]
Comment 1 geisserml 2021-03-16 18:27:21 UTC
I am not sure whether the report includes all necessary symbols, but I can create a new backtrace if you tell me which packages are missing.
I already clicked on the Install Required Symbols button in the crash reporter, but it kept complaining the backtrace might be useless.
Comment 2 Justin Zobel 2021-03-17 22:04:30 UTC
That looks correct to me, it's not showing any ?? which usually indicates missing symbols.
Comment 3 Nate Graham 2021-03-17 22:36:32 UTC
We are crashing in Phonon:

#8  Phonon::VLC::SurfacePainter::handlePaint(QPaintEvent*) (event=0x7ffcc3e58300, this=0x56245db35310) at ./src/video/videowidget.cpp:57
#9  Phonon::VLC::VideoWidget::paintEvent(QPaintEvent*) (this=<optimized out>, event=0x7ffcc3e58300) at ./src/video/videowidget.cpp:448
Comment 4 Harald Sitter 2021-03-19 10:33:58 UTC
Unfortunately the crash is actually in qtgui and precisely those frames are missing debug symbols. Please try to get a new backtrace with the debug symbols for qtgui installed https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Backtraces
Comment 5 geisserml 2021-03-19 11:34:38 UTC
Somehow the crash reporter (drkonqi) does not start anymore:
```
Unable to start Dr. Konqi
org.kde.drkonqi: The specified process does not exist.
```
How can I fix this, or can I also create the new backtrace with gdb?
Comment 6 Harald Sitter 2021-03-19 12:11:19 UTC
(In reply to Manuel Geißer from comment #5)
> or can I also create the new backtrace with gdb?

sure
Comment 7 geisserml 2021-03-19 12:18:44 UTC
New backtrace - I hope it's more useful now:

Reading symbols from /usr/bin/dolphin...
Reading symbols from /usr/lib/debug/.build-id/ce/2deed90dc691ba2e343a422e00e67b5680dcdf.debug...
(gdb) run
Starting program: /usr/bin/dolphin 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff046b700 (LWP 1518)]
[New Thread 0x7fffecc13700 (LWP 1519)]
[New Thread 0x7fffe7fff700 (LWP 1520)]
[New Thread 0x7fffe77fe700 (LWP 1521)]
[New Thread 0x7fffe6ffd700 (LWP 1522)]
[New Thread 0x7fffe67fc700 (LWP 1523)]
[Detaching after fork from child process 1525]
[Detaching after fork from child process 1527]
[Detaching after fork from child process 1528]
[Detaching after fork from child process 1529]
[Detaching after fork from child process 1530]
[Detaching after fork from child process 1531]
[New Thread 0x7fffe4877700 (LWP 1532)]
[New Thread 0x7fffd3fff700 (LWP 1533)]
[New Thread 0x7fffd35db700 (LWP 1534)]
[Thread 0x7fffd35db700 (LWP 1534) exited]
[New Thread 0x7fffd35db700 (LWP 1535)]
[New Thread 0x7fffd2dda700 (LWP 1536)]
QGestureManager::deliverEvent: could not find the target for gesture
QGestureManager::deliverEvent: could not find the target for gesture
[New Thread 0x7fbf98367700 (LWP 1537)]
[New Thread 0x7fbf97b66700 (LWP 1538)]
[New Thread 0x7fbf97365700 (LWP 1539)]
[New Thread 0x7fbf96b64700 (LWP 1540)]
[New Thread 0x7fbf96363700 (LWP 1541)]
[New Thread 0x7fbf95b62700 (LWP 1542)]
[New Thread 0x7fbf95791700 (LWP 1543)]

Thread 1 "dolphin" received signal SIGSEGV, Segmentation fault.
0x00007ffff601f210 in qt_scale_image_32bit<Blend_RGB32_on_RGB32_NoAlpha> (
    destPixels=0x7fffe5694000 "\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377"..., dbpl=5120, 
    srcPixels=0x7fbf952f0028 <error: Cannot access memory at address 0x7fbf952f0028>, sbpl=5120, srch=<optimized out>, targetRect=..., srcRect=..., 
    clip=..., blender=...) at painting/qblendfunctions_p.h:223
223     painting/qblendfunctions_p.h: Datei oder Verzeichnis nicht gefunden.
(gdb) backtrace full
#0  0x00007ffff601f210 in qt_scale_image_32bit<Blend_RGB32_on_RGB32_NoAlpha>(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, Blend_RGB32_on_RGB32_NoAlpha)                                                                                                             
    (destPixels=0x7fffe5694000 "\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377"..., dbpl=5120, srcPixels=0x7fbf952f0028 <error: Cannot access memory at address 0x7fbf952f0028>, sbpl=5120, srch=<optimized out>, targetRect=..., srcRect=..., clip=..., blender=...) at painting/qblendfunctions_p.h:223
        src = 0x7fbf95639428
        srcx = <optimized out>
        x = <optimized out>
        sx = 7.191011235955056
        sy = 7.2000000000000002
        ix = 471270
        iy = 471859
        tr = {x1 = 1094, y1 = 158, x2 = 1271, y2 = 257}
        tx1 = <optimized out>
        ty1 = <optimized out>
        h = 6
        w = <optimized out>
        basex = 235635
        srcy = 44118816
        dst = 0x7fffe57ced18
        ystart = <optimized out>
        xstart = <optimized out>
        yend = <optimized out>
        xend = <optimized out>
#1  0x00007ffff6103a7d in QRasterPaintEngine::drawImage(QRectF const&, QImage const&, QRectF const&, QFlags<Qt::ImageConversionFlag>) (this=
    0x555555db0100, r=..., img=..., sr=...) at ../../include/QtGui/5.15.2/QtGui/private/../../../../../src/gui/painting/qpaintengine_raster_p.h:446
        sourceRect2x = <optimized out>
        scale2x = <optimized out>
        func = 0x7ffff601bd00 <qt_scale_image_rgb32_on_rgb32(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int)>
        targetBounds = {xp = 1094, yp = 158, w = 178, h = 100}
        offs = <optimized out>
        m = 
          {affine = {_m11 = 6.9533558071792804e-310, _m12 = 6.9533558071654466e-310, _m21 = 4.6355709067866939e-310, _m22 = -4.5033391262525684e-263, _dx = 4.6355711882163671e-310, _dy = 6.9533475721928474e-310}, m_13 = 5.5335352334219613e-322, m_23 = 4.9406564584124654e-324, m_33 = 4.635571188197395e-310, m_type = 9, m_dirty = 28, d = 0x555555cc6390}
        exceedsPrecision = false
        copy = 
          {affine = {_m11 = 6.9533558071452887e-310, _m12 = 4.6355706630415814e-310, _m21 = 4.6355709051594393e-310, _m22 = 5.2370958459172134e-322, _dx = 5.3754342267527624e-321, _dy = 6.9533478050938118e-310}, m_13 = 4.6355707809782131e-310, m_23 = 6.9533478050890194e-310, m_33 = 4.6355710078776633e-310, m_type = 0, m_dirty = 24, d = 0x55e64730}
        path = {d_ptr = {d = 0x7fffffffc8e0}}
        d = 0x555555db49d0
        s = <optimized out>
        stretch_sr = true
        clip = <optimized out>
#2  0x00007ffff611f861 in QPainter::drawImage(QRectF const&, QImage const&, QRectF const&, QFlags<Qt::ImageConversionFlag>)
    (this=this@entry=0x7fffffffcb78, targetRect=..., image=..., sourceRect=..., flags=flags@entry=...)
    at ../../include/QtCore/../../src/corelib/tools/qrect.h:644
        d = 0x5555561dd540
        x = 0
--Type <RET> for more, q to quit, c to continue without paging--c
        y = 46
        w = 178
        h = 100
        sx = <optimized out>
        sy = 0
        sw = <optimized out>
        sh = 720
        imageScale = <optimized out>
#3  0x00007fffec06a74f in QPainter::drawImage(QRect const&, QImage const&) (image=..., r=..., this=0x7fffffffcb78) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h:269
        painter = {static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff63162c0 <qt_meta_stringdata_QPainter>, data = 0x7ffff63161e0 <qt_meta_data_QPainter>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x5555561dd540}}
#4  Phonon::VLC::SurfacePainter::handlePaint(QPaintEvent*) (event=0x7fffffffcf30, this=0x5555561b5bd0) at ./src/video/videowidget.cpp:57
        painter = {static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff63162c0 <qt_meta_stringdata_QPainter>, data = 0x7ffff63161e0 <qt_meta_data_QPainter>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x5555561dd540}}
#5  Phonon::VLC::VideoWidget::paintEvent(QPaintEvent*) (this=<optimized out>, event=0x7fffffffcf30) at ./src/video/videowidget.cpp:448
#6  0x00007ffff658cc06 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007ffff6549dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff6552bb8 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff5a726da in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff658500a in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff6585832 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff655c427 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff655cf44 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff65866d5 in QWidgetPrivate::syncBackingStore() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff658d5fc in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff66a58c8 in QMainWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff71ebc73 in KMainWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#18 0x00007ffff723713b in KXmlGuiWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#19 0x00007ffff7ee19c8 in DolphinMainWindow::event(QEvent*) (this=<optimized out>, event=<optimized out>) at ./src/dolphinmainwindow.cpp:2428
#20 0x00007ffff6549dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff6552bb8 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff5a726da in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff5a74fe1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff5acd987 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff378817d in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007ffff3788400 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ffff37884a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffff5accfe2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007ffff5a711eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007ffff5a79394 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff7ed9fa2 in kdemain(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:222
        app = <unvollständiger Typ>
        migrate = {d = std::unique_ptr<Kdelibs4ConfigMigratorPrivate> = {get() = 0x555555633370}}
        aboutData = {static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff6cfc940, data = 0x7ffff6cfc840, static_metacall = 0x7ffff6c94d00, relatedMetaObjects = 0x0, extradata = 0x0}}, d = std::unique_ptr<KAboutDataPrivate> = {get() = 0x555555631110}}
        parser = {d = 0x5555555bec20}
        splitView = <optimized out>
        openFiles = <optimized out>
        args = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7ffff5b61490 <QListData::shared_null>}, d = 0x7ffff5b61490 <QListData::shared_null>}}, <No data fields>}
        urls = {<QListSpecialMethods<QUrl>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55555562db40}, d = 0x55555562db40}}
        startedWithURLs = <optimized out>
        mainWindow = <optimized out>
        dolphinDBusService = <unvollständiger Typ>
        interface = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff5d03ae0 <QObject::staticMetaObject>}, stringdata = 0x7ffff7f580e0 <qt_meta_stringdata_DBusInterface>, data = 0x7ffff7f58020 <qt_meta_data_DBusInterface>, static_metacall = 0x7ffff7ed7af0 <DBusInterface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_isDaemon = false}
#32 0x00007ffff7cbb0b3 in __libc_start_main (main=0x555555555060 <main>, argc=1, argv=0x7fffffffddf8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdde8) at ../csu/libc-start.c:308
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {93824992235888, -7378732541055937274, 93824992235632, 140737488346608, 0, 0, 7378732540072219910, 7378750303349298438}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x1, 0x7fffffffddf8}, data = {prev = 0x0, cleanup = 0x0, canceltype = 1}}}
        not_first_call = <optimized out>
#33 0x000055555555509e in _start ()
Comment 8 Harald Sitter 2021-03-19 13:06:35 UTC
Strangely the source refs are wrong in the frames below the top one,

> #2  0x00007ffff611f861 in QPainter::drawImage(QRectF const&, QImage const&, QRectF const&, QFlags<Qt::ImageConversionFlag>)
    (this=this@entry=0x7fffffffcb78, targetRect=..., image=..., sourceRect=..., flags=flags@entry=...)
    at ../../include/QtCore/../../src/corelib/tools/qrect.h:644

qrect.h most definitely doesn't contain QPainter::drawImage.

The top one may be correct though and point at a problem with the memory calculation for the image so I'm going with that theory, not that I have any idea what could possibly be wrong there.
Comment 9 geisserml 2021-03-19 15:02:22 UTC
(In reply to Harald Sitter from comment #8)
> qrect.h most definitely doesn't contain QPainter::drawImage.
> 
> The top one may be correct though and point at a problem with the memory
> calculation for the image so I'm going with that theory, not that I have any
> idea what could possibly be wrong there.

Strange, but I can only paste what the debugger throws out...
Comment 10 Harald Sitter 2021-03-19 15:07:48 UTC
I have a theory and I have a plan for fixing it, but I'd like to do some more testing. Are you able to build phonon-vlc with a patch?
Comment 11 geisserml 2021-03-19 15:09:15 UTC
I think yes, provided there are some instructions on how to do it.
Comment 12 geisserml 2021-03-19 15:19:29 UTC
I have just tried building latest phonon-vlc from git and was able to do it. However, how do I 'tell' dolphin to use the self-built version of phonon, and not the system-provided one?
Comment 13 Harald Sitter 2021-03-19 15:26:55 UTC
Since you are on neon I've just thrown the patch into the package.
You'll want to edit /etc/apt/sources.list.d/neon.list and change /user to /release, then update the package with a command like `pkcon refresh && pkcon update phonon4qt5-backend-vlc`
Once done you can switch back to /user

The patch introduces a number of different image calculation branches controlled through environment variables. Please make note which variants crashed or not:

- make sure all dolphins are closed in between steps
- run dolphin with `P_OUR_MATHS=1 dolphin --new-window`
- try to get it to crash
- run dolphin with `P_QIMAGE=1 dolphin --new-window`
- try to get it to crash
- run dolphin with `P_PIC_ALIGN=1 dolphin --new-window`
- try to get it to crash
- run dolphin with `P_PIC_VIS=1 dolphin --new-window`
- try to get it to crash

Comment on the bug which variants crashed and which did not.

Please also grab the console output of at least one run. Specifically I'm intrested in the lines that look like this:

Phonon::VLC::SurfacePainter::formatCallback: -------- 1920 1088 V
Phonon::VLC::SurfacePainter::formatCallback: rgb32 7680 1088 8355840
Phonon::VLC::SurfacePainter::formatCallback: V rgb32 7680 1090 8371200
Phonon::VLC::SurfacePainter::formatCallback: :: V rgb32 [ 0 ] 7680 1090 7680 1088 4
Phonon::VLC::VideoMemoryStream::formatCallbackInternal: FORMAT[chroma: RV32, w: 1920, h: 1088, pitch: 7680, lines: 7680, size: 58982400]
Comment 14 geisserml 2021-03-19 15:43:11 UTC
P_OUR_MATHS=1 dolphin --new-window
-> sometimes crashes, but perhaps less than before

P_QIMAGE=1 dolphin --new-window
-> there was one crash when I was very fast with starting the video

P_PIC_ALIGN=1 dolphin --new-window
-> I was not able to make it crash at all

P_PIC_VIS=1 dolphin --new-window
-> crashes, but I also need to be fast

The command-line output lines you wrote about did not turn up - I don't know why
Comment 15 geisserml 2021-03-19 15:58:46 UTC
All output I get basically consists of this:
```
[h264 @ 0x7ec244c9b280] get_buffer() failed
[h264 @ 0x7ec244c9b280] thread_get_buffer() failed
[h264 @ 0x7ec244c9b280] decode_slice_header error
[h264 @ 0x7ec244c9b280] no frame!
```
Comment 16 Harald Sitter 2021-03-19 16:46:40 UTC
Interesting.

I've put another build into the /release repo, if you could update and try the P_QIMAGE case again, please. It should now also produce some output like I've described.

It'd be super awesome if you could also check if that qimage crash indeed has the same backtrace, I would rather have expected qimage to never crash based on the files I have tired.
Comment 17 geisserml 2021-03-19 17:37:56 UTC
(In reply to Harald Sitter from comment #16)
> Interesting.
> 
> I've put another build into the /release repo, if you could update and try
> the P_QIMAGE case again, please. It should now also produce some output like
> I've described.
I've updated, but still don't have the output.
However, `P_QIMAGE=1 dolphin --new-window` now crashes much more often, virtually always, which I find peculiar.

> It'd be super awesome if you could also check if that qimage crash indeed
> has the same backtrace, I would rather have expected qimage to never crash
> based on the files I have tired.
Yes. I will post the backtrace in the next comment. It looks fairly similar to me.
Comment 18 geisserml 2021-03-19 17:38:01 UTC
manuel@lx2020:~$ export P_QIMAGE=1
manuel@lx2020:~$ gdb --args dolphin --new-window
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from dolphin...
Reading symbols from /usr/lib/debug/.build-id/ce/2deed90dc691ba2e343a422e00e67b5680dcdf.debug...
(gdb) run
Starting program: /usr/bin/dolphin --new-window
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff046b700 (LWP 6669)]
[New Thread 0x7fffecc13700 (LWP 6670)]
[New Thread 0x7fffe7fff700 (LWP 6671)]
[New Thread 0x7fffe77fe700 (LWP 6672)]
[New Thread 0x7fffe6ffd700 (LWP 6673)]
[New Thread 0x7fffe67fc700 (LWP 6674)]
[Detaching after fork from child process 6684]
[Detaching after fork from child process 6690]
[Detaching after fork from child process 6692]
[Detaching after fork from child process 6693]
[Detaching after fork from child process 6694]
[Detaching after fork from child process 6695]
[New Thread 0x7fbfcbfff700 (LWP 6696)]
[Thread 0x7fbfcbfff700 (LWP 6696) exited]
[New Thread 0x7fbfcbfff700 (LWP 6697)]
[New Thread 0x7fffe4600700 (LWP 6698)]
[New Thread 0x7fbfa1366700 (LWP 6699)]
[New Thread 0x7fbfa0b65700 (LWP 6700)]
[New Thread 0x7fbfa0364700 (LWP 6701)]
[New Thread 0x7fbf9fb63700 (LWP 6702)]
[New Thread 0x7fbf9f362700 (LWP 6703)]
[New Thread 0x7fbf9eb61700 (LWP 6704)]
[New Thread 0x7fbf9e795700 (LWP 6705)]

Thread 1 "dolphin" received signal SIGSEGV, Segmentation fault.
0x00007ffff601f210 in qt_scale_image_32bit<Blend_RGB32_on_RGB32_NoAlpha> (
    destPixels=0x7fffe5694000 "\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377"..., dbpl=5120, 
    srcPixels=0x7fbf9e2f4028 <error: Cannot access memory at address 0x7fbf9e2f4028>, sbpl=5120, srch=<optimized out>, targetRect=..., srcRect=..., 
    clip=..., blender=...) at painting/qblendfunctions_p.h:223
223     painting/qblendfunctions_p.h: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0  0x00007ffff601f210 in qt_scale_image_32bit<Blend_RGB32_on_RGB32_NoAlpha>(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, Blend_RGB32_on_RGB32_NoAlpha)                                                                                                             
    (destPixels=0x7fffe5694000 "\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377"..., dbpl=5120, srcPixels=0x7fbf9e2f4028 <error: Cannot access memory at address 0x7fbf9e2f4028>, sbpl=5120, srch=<optimized out>, targetRect=..., srcRect=..., clip=..., blender=...) at painting/qblendfunctions_p.h:223
#1  0x00007ffff6103a7d in QRasterPaintEngine::drawImage(QRectF const&, QImage const&, QRectF const&, QFlags<Qt::ImageConversionFlag>) (this=
    0x555555db3820, r=..., img=..., sr=...) at ../../include/QtGui/5.15.2/QtGui/private/../../../../../src/gui/painting/qpaintengine_raster_p.h:446
#2  0x00007ffff611f861 in QPainter::drawImage(QRectF const&, QImage const&, QRectF const&, QFlags<Qt::ImageConversionFlag>)
    (this=this@entry=0x7fffffffcb38, targetRect=..., image=..., sourceRect=..., flags=flags@entry=...)
    at ../../include/QtCore/../../src/corelib/tools/qrect.h:644
#3  0x00007fffec06a74f in QPainter::drawImage(QRect const&, QImage const&) (image=..., r=..., this=0x7fffffffcb38)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h:269
#4  Phonon::VLC::SurfacePainter::handlePaint(QPaintEvent*) (event=0x7fffffffcef0, this=0x555556176430) at ./src/video/videowidget.cpp:57
#5  Phonon::VLC::VideoWidget::paintEvent(QPaintEvent*) (this=<optimized out>, event=0x7fffffffcef0) at ./src/video/videowidget.cpp:448
#6  0x00007ffff658cc06 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007ffff6549dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff6552bb8 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff5a726da in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff658500a in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff6585832 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff655c427 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff655cf44 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff65866d5 in QWidgetPrivate::syncBackingStore() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff658d5fc in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff66a58c8 in QMainWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff71ebc73 in KMainWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#18 0x00007ffff723713b in KXmlGuiWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#19 0x00007ffff7ee19c8 in DolphinMainWindow::event(QEvent*) (this=<optimized out>, event=<optimized out>) at ./src/dolphinmainwindow.cpp:2428
#20 0x00007ffff6549dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff6552bb8 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff5a726da in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff5a74fe1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff5acd987 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff378817d in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007ffff3788400 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ffff37884a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffff5accfe2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007ffff5a711eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007ffff5a79394 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff7ed9fa2 in kdemain(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:222
#32 0x00007ffff7cbb0b3 in __libc_start_main (main=
    0x555555555060 <main>, argc=2, argv=0x7fffffffddb8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdda8)
    at ../csu/libc-start.c:308
#33 0x000055555555509e in _start ()
Comment 19 geisserml 2021-03-19 17:44:02 UTC
(In reply to Manuel Geißer from comment #17)
> I've updated, but still don't have the output.
> However, `P_QIMAGE=1 dolphin --new-window` now crashes much more often,
> virtually always, which I find peculiar.
I clarify: It really always crashes. It didn't even work once (also outside gdb).
Comment 20 Harald Sitter 2021-03-22 10:03:09 UTC
It is profoundly strange that the debug output still doesn't show, it's now being sent to stderr directly. Seeing as there is only a single option that doesn't ever crash, even without the debug output, the solution is clear.
Thanks!
Comment 21 Harald Sitter 2021-03-22 12:30:41 UTC
I've been thinking about this some more...

It is suspicious that some of the cases only crash when you are quick enough. That sounds an awful lot like a race condition in the code.

I've pushed yet another build to neon. Please update and simply try to crash dolphin, `dolphin --new-window` (no environment variable necessary).

Assuming my theory is correct this shouldn't crash. If it does, please check if the backtrace is still the same.
Comment 22 geisserml 2021-03-22 13:13:27 UTC
I've tried the new version - in fact, it always crashes at the very beginning. It didn't even work once.

Backtrace (seems similar to me):
Reading symbols from dolphin...
Reading symbols from /usr/lib/debug/.build-id/ce/2deed90dc691ba2e343a422e00e67b5680dcdf.debug...
(gdb) run
Starting program: /usr/bin/dolphin --new-window
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff046b700 (LWP 8335)]
[New Thread 0x7fffecc13700 (LWP 8336)]
[New Thread 0x7fffe7fff700 (LWP 8337)]
[New Thread 0x7fffe77fe700 (LWP 8338)]
[New Thread 0x7fffe6ffd700 (LWP 8339)]
[New Thread 0x7fffe67fc700 (LWP 8340)]
[Detaching after fork from child process 8342]
[Detaching after fork from child process 8343]
[Detaching after fork from child process 8344]
[Detaching after fork from child process 8345]
[Detaching after fork from child process 8346]
[New Thread 0x7fbfcbfff700 (LWP 8347)]
[Thread 0x7fbfcbfff700 (LWP 8347) exited]
[New Thread 0x7fbfcbfff700 (LWP 8348)]
[New Thread 0x7fffe4627700 (LWP 8349)]
[New Thread 0x7fbfa1382700 (LWP 8350)]
[New Thread 0x7fbfa0b81700 (LWP 8351)]
[New Thread 0x7fbfa0380700 (LWP 8352)]
[New Thread 0x7fbf9fb7f700 (LWP 8353)]
[New Thread 0x7fbf9f37e700 (LWP 8354)]
[New Thread 0x7fbf9eb7d700 (LWP 8355)]
[New Thread 0x7fbf9e7ac700 (LWP 8356)]

Thread 1 "dolphin" received signal SIGSEGV, Segmentation fault.
0x00007ffff601f210 in qt_scale_image_32bit<Blend_RGB32_on_RGB32_NoAlpha> (
    destPixels=0x7fffe4878000 "\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377"..., dbpl=5120, 
    srcPixels=0x7fbf9e30b028 <error: Cannot access memory at address 0x7fbf9e30b028>, sbpl=5120, srch=<optimized out>, targetRect=..., srcRect=..., 
    clip=..., blender=...) at painting/qblendfunctions_p.h:223
223     painting/qblendfunctions_p.h: Datei oder Verzeichnis nicht gefunden.
(gdb) bt full
#0  0x00007ffff601f210 in qt_scale_image_32bit<Blend_RGB32_on_RGB32_NoAlpha>(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, Blend_RGB32_on_RGB32_NoAlpha)                                                                                                             
    (destPixels=0x7fffe4878000 "\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377\f\f\f\377"..., dbpl=5120, srcPixels=0x7fbf9e30b028 <error: Cannot access memory at address 0x7fbf9e30b028>, sbpl=5120, srch=<optimized out>, targetRect=..., srcRect=..., clip=..., blender=...) at painting/qblendfunctions_p.h:223
        src = 0x7fbf9e5a2c28
        srcx = <optimized out>
        x = <optimized out>
        sx = 8
        sy = 8
        ix = 524288
        iy = 524288
        tr = {x1 = 1112, y1 = 155, x2 = 1271, y2 = 244}
        tx1 = <optimized out>
        ty1 = <optimized out>
        h = 23
        w = <optimized out>
        basex = 262143
        srcy = 34865151
        dst = 0x7fffe498d560
        ystart = <optimized out>
        xstart = <optimized out>
        yend = <optimized out>
        xend = <optimized out>
#1  0x00007ffff6103a7d in QRasterPaintEngine::drawImage(QRectF const&, QImage const&, QRectF const&, QFlags<Qt::ImageConversionFlag>) (this=
    0x555555c0b600, r=..., img=..., sr=...) at ../../include/QtGui/5.15.2/QtGui/private/../../../../../src/gui/painting/qpaintengine_raster_p.h:446
        sourceRect2x = <optimized out>
        scale2x = <optimized out>
        func = 0x7ffff601bd00 <qt_scale_image_rgb32_on_rgb32(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int)>
        targetBounds = {xp = 1112, yp = 155, w = 160, h = 90}
        offs = <optimized out>
        m = 
          {affine = {_m11 = 6.9533558071776994e-310, _m12 = 1.8897412473187624e-116, _m21 = 4.6355708548983388e-310, _m22 = 1.8897412473187624e-116, _dx = 4.635571128515846e-310, _dy = 6.9533475721928474e-310}, m_13 = 5.5335352334219613e-322, m_23 = 4.9406564584124654e-324, m_33 = 4.6355711284968738e-310, m_type = 9, m_dirty = 28, d = 0x55555609b8b0}
        exceedsPrecision = false
        copy = 
          {affine = {_m11 = 6.9533558071437077e-310, _m12 = 1.8897412473187624e-116, _m21 = 6.9533558072176199e-310, _m22 = 6.9533558072176199e-310, _dx = 4.6355705476361469e-310, _dy = 6.9533484472143311e-310}, m_13 = 6.953355807228687e-310, m_23 = 6.9533428057777792e-310, m_33 = 6.9533558071433124e-310, m_type = 8, m_dirty = 10, d = 0x7fffffffc950}
        path = {d_ptr = {d = 0x7fffffffcf30}}
        d = 0x555555de9c90
        s = <optimized out>
        stretch_sr = true
        clip = <optimized out>
#2  0x00007ffff611f861 in QPainter::drawImage(QRectF const&, QImage const&, QRectF const&, QFlags<Qt::ImageConversionFlag>)
    (this=this@entry=0x7fffffffcb58, targetRect=..., image=..., sourceRect=..., flags=flags@entry=...)
    at ../../include/QtCore/../../src/corelib/tools/qrect.h:644
        d = 0x555555fba050
        x = 0
--Type <RET> for more, q to quit, c to continue without paging--c
        y = 43
        w = 160
        h = 90
        sx = <optimized out>
        sy = 0
        sw = <optimized out>
        sh = 720
        imageScale = <optimized out>
#3  0x00007fffec07a74f in QPainter::drawImage(QRect const&, QImage const&) (image=..., r=..., this=0x7fffffffcb58) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h:269
        painter = {static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff63162c0 <qt_meta_stringdata_QPainter>, data = 0x7ffff63161e0 <qt_meta_data_QPainter>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x555555fba050}}
#4  Phonon::VLC::SurfacePainter::handlePaint(QPaintEvent*) (event=0x7fffffffcf10, this=0x55555608a590) at ./src/video/videowidget.cpp:57
        painter = {static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff63162c0 <qt_meta_stringdata_QPainter>, data = 0x7ffff63161e0 <qt_meta_data_QPainter>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x555555fba050}}
#5  Phonon::VLC::VideoWidget::paintEvent(QPaintEvent*) (this=<optimized out>, event=0x7fffffffcf10) at ./src/video/videowidget.cpp:448
#6  0x00007ffff658cc06 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007ffff6549dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff6552bb8 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff5a726da in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff658500a in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff6585832 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff655c427 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff655cf44 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff65866d5 in QWidgetPrivate::syncBackingStore() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff658d5fc in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff66a58c8 in QMainWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff71ebc73 in KMainWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#18 0x00007ffff723713b in KXmlGuiWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#19 0x00007ffff7ee19c8 in DolphinMainWindow::event(QEvent*) (this=<optimized out>, event=<optimized out>) at ./src/dolphinmainwindow.cpp:2428
#20 0x00007ffff6549dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff6552bb8 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff5a726da in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff5a74fe1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff5acd987 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff378817d in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007ffff3788400 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ffff37884a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffff5accfe2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007ffff5a711eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007ffff5a79394 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff7ed9fa2 in kdemain(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:222
        app = <unvollständiger Typ>
        migrate = {d = std::unique_ptr<Kdelibs4ConfigMigratorPrivate> = {get() = 0x555555625130}}
        aboutData = {static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff6cfc940, data = 0x7ffff6cfc840, static_metacall = 0x7ffff6c94d00, relatedMetaObjects = 0x0, extradata = 0x0}}, d = std::unique_ptr<KAboutDataPrivate> = {get() = 0x5555555bbe00}}
        parser = {d = 0x5555555f6210}
        splitView = <optimized out>
        openFiles = <optimized out>
        args = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7ffff5b61490 <QListData::shared_null>}, d = 0x7ffff5b61490 <QListData::shared_null>}}, <No data fields>}
        urls = {<QListSpecialMethods<QUrl>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x555555635880}, d = 0x555555635880}}
        startedWithURLs = <optimized out>
        mainWindow = <optimized out>
        dolphinDBusService = <unvollständiger Typ>
        interface = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff5d03ae0 <QObject::staticMetaObject>}, stringdata = 0x7ffff7f580e0 <qt_meta_stringdata_DBusInterface>, data = 0x7ffff7f58020 <qt_meta_data_DBusInterface>, static_metacall = 0x7ffff7ed7af0 <DBusInterface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_isDaemon = false}
#32 0x00007ffff7cbb0b3 in __libc_start_main (main=0x555555555060 <main>, argc=2, argv=0x7fffffffddd8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffddc8) at ../csu/libc-start.c:308
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {93824992235888, -9098853407025089255, 93824992235632, 140737488346576, 0, 0, 9098853405917099289, 9098835439382738201}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x2, 0x7fffffffddd8}, data = {prev = 0x0, cleanup = 0x0, canceltype = 2}}}
        not_first_call = <optimized out>
#33 0x000055555555509e in _start ()
Comment 23 Harald Sitter 2021-03-22 14:21:57 UTC
Meh. New build. Please try again.
Comment 24 geisserml 2021-03-22 17:37:12 UTC
Yes, that one looks better, at least it does not crash directly on play. I'll try it out a little more and will report whether or not I was able to make it crash.
Comment 25 geisserml 2021-03-22 17:46:10 UTC
Good news: I was never able to crash this version, regardless of how quickly I started the video. The latest changes must have fixed the bug. Thanks very much!
Comment 26 geisserml 2021-03-22 17:57:51 UTC
Unfortunately, I have directly found a new way to crash/freeze dolphin now, related to preview video playback, but I'm certain it's different from the previous and not caused by phonon.
This happens if I click the pause button and then quickly afterwards resize the panel. I have only tried it on Wayland so far, maybe it doesn't happen on X, will need to check that.
I already have two backtraces, one with SIGABRT and one with SIG32. Should I open a new issue, or continue here?
Comment 27 geisserml 2021-03-22 17:59:40 UTC
Ah, probably that is really a Wayland problem. When on crash, the command-line output says "The Wayland connection broke. Did the Wayland compositor die?".
Comment 28 geisserml 2021-03-22 18:00:01 UTC
* On crash
Comment 29 geisserml 2021-03-22 18:01:51 UTC
Backtrace 1:
Starting program: /usr/bin/dolphin --new-window
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff046b700 (LWP 7677)]
[New Thread 0x7fffecc13700 (LWP 7678)]
[New Thread 0x7fffe7fff700 (LWP 7679)]
[New Thread 0x7fffe77fe700 (LWP 7680)]
[New Thread 0x7fffe6ffd700 (LWP 7681)]
[New Thread 0x7fffe67fc700 (LWP 7682)]
[Detaching after fork from child process 7692]
[Detaching after fork from child process 7698]
[Detaching after fork from child process 7700]
[Detaching after fork from child process 7701]
[Detaching after fork from child process 7702]
[New Thread 0x7fbfcbfff700 (LWP 7703)]
[Thread 0x7fbfcbfff700 (LWP 7703) exited]
[New Thread 0x7fbfcbfff700 (LWP 7704)]
[New Thread 0x7fffe4627700 (LWP 7705)]
[New Thread 0x7fbfa1382700 (LWP 7706)]
[New Thread 0x7fbfa0b81700 (LWP 7707)]
[New Thread 0x7fbfa0380700 (LWP 7708)]
[New Thread 0x7fbf9fb7f700 (LWP 7709)]
[New Thread 0x7fbf9f37e700 (LWP 7710)]
[New Thread 0x7fbf9eb7d700 (LWP 7711)]
[New Thread 0x7fbf9e7ac700 (LWP 7712)]
[h264 @ 0x7fbfac0e0fc0] get_buffer() failed
[h264 @ 0x7fbfac0e0fc0] thread_get_buffer() failed
[h264 @ 0x7fbfac0e0fc0] decode_slice_header error
[h264 @ 0x7fbfac0e0fc0] no frame!
[Thread 0x7fbf9eb7d700 (LWP 7711) exited]
[Thread 0x7fbfa1382700 (LWP 7706) exited]
[Thread 0x7fbfa0380700 (LWP 7708) exited]
[Thread 0x7fbfa0b81700 (LWP 7707) exited]
[Thread 0x7fbf9fb7f700 (LWP 7709) exited]
[Thread 0x7fbf9f37e700 (LWP 7710) exited]
[Thread 0x7fffe4627700 (LWP 7705) exited]
[New Thread 0x7fffe4627700 (LWP 7715)]
This plugin supports grabbing the mouse only for popup windows
This plugin supports grabbing the mouse only for popup windows
This plugin supports grabbing the mouse only for popup windows
This plugin supports grabbing the mouse only for popup windows
[New Thread 0x7fbf9f37e700 (LWP 7716)]
[New Thread 0x7fbf9fb7f700 (LWP 7717)]
[New Thread 0x7fbfa0380700 (LWP 7718)]
[New Thread 0x7fbfa0b81700 (LWP 7719)]
[New Thread 0x7fffe5ffb700 (LWP 7720)]
[New Thread 0x7fffe57fa700 (LWP 7721)]
The Wayland connection broke. Did the Wayland compositor die?

Thread 1 "dolphin" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt full
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = 
            {__val = {2560, 0, 0, 0, 71777214294589695, 71777214294589695, 18303028646048598135, 18303028646048598135, 4635165809045603508, 0, 4601133428098110976, 0, 4650362439446036480, 0, 4636033603912859648, 0}}
        pid = <optimized out>
        tid = <optimized out>
#1  0x00007ffff7cb9859 in __GI_abort () at abort.c:79
        save_stage = 1
        act = 
          {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0, sa_restorer = 0x5555555e0a00}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007ffff5851bf7 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff34edd65 in  () at /lib/x86_64-linux-gnu/libQt5WaylandClient.so.5
#4  0x00007ffff34ff16c in QtWaylandClient::QWaylandDisplay::flushRequests() () at /lib/x86_64-linux-gnu/libQt5WaylandClient.so.5
#5  0x00007ffff5aa9730 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff5accfb6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff5a711eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007ffff5a79394 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007ffff7ed9fa2 in kdemain(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:222
        app = <unvollständiger Typ>
        migrate = {d = std::unique_ptr<class Kdelibs4ConfigMigratorPrivate> = {get() = 0x555555632840}}
        aboutData = 
            {static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff6cfc940, data = 0x7ffff6cfc840, static_metacall = 0x7ffff6c94d00, relatedMetaObjects = 0x0, extradata = 0x0}}, d = std::unique_ptr<class KAboutDataPrivate> = {get() = 0x5555555bc1a0}}
        parser = {d = 0x5555555f5e70}
        splitView = <optimized out>
        openFiles = <optimized out>
        args = 
              {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7ffff5b61490 <QListData::shared_null>}, d = 0x7ffff5b61490 <QListData::shared_null>}}, <No data fields>}
        urls = 
            {<QListSpecialMethods<QUrl>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x555555630cc0}, d = 0x555555630cc0}}
        startedWithURLs = <optimized out>
        mainWindow = <optimized out>
        dolphinDBusService = <unvollständiger Typ>
        interface = 
          {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff5d03ae0 <QObject::staticMetaObject>}, stringdata = 0x7ffff7f580e0 <qt_meta_stringdata_DBusInterface>, data = 0x7ffff7f58020 <qt_meta_data_DBusInterface>, static_metacall = 0x7ffff7ed7af0 <DBusInterface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_isDaemon = false}
#10 0x00007ffff7cbb0b3 in __libc_start_main (main=
    0x555555555060 <main>, argc=2, argv=0x7fffffffddd8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffddc8)
    at ../csu/libc-start.c:308
        result = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {93824992235888, 4479315001357509903, 93824992235632, 140737488346576, 0, 0, -4479315000248359665, -4479297304327609073}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x2, 0x7fffffffddd8}, data = {prev = 0x0, cleanup = 0x0, canceltype = 2}}}
        not_first_call = <optimized out>
#11 0x000055555555509e in _start ()
Comment 30 geisserml 2021-03-22 18:02:44 UTC
Backtrace 2 (interestingly, this one is without Wayland warning):
Starting program: /usr/bin/dolphin --new-window
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff046b700 (LWP 7896)]
[New Thread 0x7fffecc13700 (LWP 7897)]
[New Thread 0x7fffe7fff700 (LWP 7898)]
[New Thread 0x7fffe77fe700 (LWP 7899)]
[New Thread 0x7fffe6ffd700 (LWP 7900)]
[New Thread 0x7fffe67fc700 (LWP 7901)]
[Detaching after fork from child process 7911]
[Detaching after fork from child process 7917]
[Detaching after fork from child process 7919]
[Detaching after fork from child process 7921]
[Detaching after fork from child process 7922]
[New Thread 0x7fbfcbfff700 (LWP 7923)]
[New Thread 0x7fbfcbfff700 (LWP 7924)]
[Thread 0x7fbfcbfff700 (LWP 7923) exited]
[New Thread 0x7fffe4627700 (LWP 7925)]
This plugin supports grabbing the mouse only for popup windows
[New Thread 0x7fbfa1382700 (LWP 7926)]
[New Thread 0x7fbfa0b81700 (LWP 7927)]
[New Thread 0x7fbfa0380700 (LWP 7928)]
[New Thread 0x7fbf9fb7f700 (LWP 7929)]
[New Thread 0x7fbf9f37e700 (LWP 7930)]
[New Thread 0x7fbf9eb7d700 (LWP 7931)]
[New Thread 0x7fbf9e7ac700 (LWP 7932)]
This plugin supports grabbing the mouse only for popup windows
This plugin supports grabbing the mouse only for popup windows
This plugin supports grabbing the mouse only for popup windows

Thread 16 "dolphin" received signal SIG32, Real-time event 32.
[Switching to Thread 0x7fbf9eb7d700 (LWP 7931)]
futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7fbfac010d90) at ../sysdeps/nptl/futex-internal.h:183
183     ../sysdeps/nptl/futex-internal.h: Datei oder Verzeichnis nicht gefunden.
(gdb) bt full
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7fbfac010d90) at ../sysdeps/nptl/futex-internal.h:183
        __ret = -512
        oldtype = 0
        err = <optimized out>
        spin = 0
        buffer = {__routine = 0x7ffff420d050 <__condvar_cleanup_waiting>, __arg = 0x7fbf9eb7cc20, __canceltype = -1204620007, __prev = 0x0}
        cbuffer = {wseq = 12, cond = 0x7fbfac010d68, mutex = 0x7fbfac010d40, private = 0}
        err = <optimized out>
        g = 0
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = 12
        seq = 6
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fbfac010d40, cond=0x7fbfac010d68) at pthread_cond_wait.c:508
        spin = 0
        buffer = {__routine = 0x7ffff420d050 <__condvar_cleanup_waiting>, __arg = 0x7fbf9eb7cc20, __canceltype = -1204620007, __prev = 0x0}
        cbuffer = {wseq = 12, cond = 0x7fbfac010d68, mutex = 0x7fbfac010d40, private = 0}
        err = <optimized out>
        g = 0
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = 12
        seq = 6
#2  __pthread_cond_wait (cond=0x7fbfac010d68, mutex=0x7fbfac010d40) at pthread_cond_wait.c:638
#3  0x00007fffe47b700b in  () at /lib/x86_64-linux-gnu/libvlccore.so.9
#4  0x00007ffff4206609 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {140460978329344, -76074712189965297, 140737025041710, 140737025041711, 140737025042208, 140460978327104, 112175596410694671, 76088622723689487}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#5  0x00007ffff7db6293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Comment 31 geisserml 2021-03-22 18:07:15 UTC
The second case is much easier to reproduce. Crash 1 seems to have been luck, I wasn't able to trigger it a second time so far.
Comment 32 Harald Sitter 2021-03-23 09:58:51 UTC
This is great news.

The first trace is indeed the compositor crashing, [1] might help debug that in the future but is unrelated to the bug at hand.
Your second trace isn't even a crash it's simply SIG32, which is sometimes used to synchronize threads, in particular somewhere deep in VLC. You can set `handle 32 pass nostop` in ~/.gdbinit then it won't stop gdb anymore in the future ;)

https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl
Comment 33 Harald Sitter 2021-03-23 10:59:23 UTC
Git commit f263063d1a9c748f92fa8cb021d8d8a85bbace42 by Harald Sitter.
Committed on 23/03/2021 at 10:12.
Pushed by sitter into branch '0.11'.

fix surface painting format setup

originally the format callback was not locked, but since we intercept
qwidget paints that meant we'd be able to receive paints before the
callback/setup had run. this could then result in a race condition where
if the user was quick enough, or supposedly the system under sufficient
load, that paints would be done on random blobs of invalid data. in
particular when the paint would happen right as the other thread was in
the format setup callback.

to deal with this simply lock the format callback function and ensure we
only paint when the frame has been constructed with actual data (frame
is non-null after the callback since we feed it the plane as data,
making it non-null)

M  +7    -1    src/video/videowidget.cpp

https://invent.kde.org/libraries/phonon-vlc/commit/f263063d1a9c748f92fa8cb021d8d8a85bbace42
Comment 34 Harald Sitter 2021-03-23 10:59:32 UTC
Git commit 1fe55de0df172829722bab864f05351f244c116e by Harald Sitter.
Committed on 23/03/2021 at 10:19.
Pushed by sitter into branch '0.11'.

stop using our helper function to calculate pitch and lines

the surface painter was more inefficient than it needed to be by
manually calculating a pitch and stride but then constructing a qimage
anyway. after some research it seems that we can simply construct our
qimage and pass its picture values to VLC with the assumption that VLC
will adjust the data as it gets passed into vmem output (i.e. our data
blob). this then also allow us to get rid of the intermediate plane
bytearray and simply use the memory the qimage allocates anyway.

M  +33   -15   src/video/videowidget.cpp

https://invent.kde.org/libraries/phonon-vlc/commit/1fe55de0df172829722bab864f05351f244c116e
Comment 35 Harald Sitter 2021-03-23 11:11:25 UTC
I've also popped the final patches into the neon packaging, in case you want to give them a last try.
Comment 36 geisserml 2021-03-23 12:09:50 UTC
(In reply to Harald Sitter from comment #35)
> I've also popped the final patches into the neon packaging, in case you want
> to give them a last try.

I tested the final version, and it works alright.
Comment 37 geisserml 2021-03-23 12:12:54 UTC
(In reply to Harald Sitter from comment #32)
> Your second trace isn't even a crash it's simply SIG32, which is sometimes
> used to synchronize threads, in particular somewhere deep in VLC. You can
> set `handle 32 pass nostop` in ~/.gdbinit then it won't stop gdb anymore in
> the future ;)
Oh, sorry. Thanks for explaining how to make gdb ignore this.
Comment 38 Harald Sitter 2021-03-23 12:31:51 UTC
(In reply to Manuel Geißer from comment #36)
> (In reply to Harald Sitter from comment #35)
> > I've also popped the final patches into the neon packaging, in case you want
> > to give them a last try.
> 
> I tested the final version, and it works alright.

Awesome. Thanks for you help debugging this :)