#980479 openshot-qt: Openshot crashes during playback

#980479#5
Date:
2021-01-19 15:27:13 UTC
From:
To:
Dear Maintainer,

I want to remove parts of a video. Unfortunately the video in question
is in a 1.7GB file, so it's difficult to share, but I don't have the
neccessary rights anyway.

I start openshot, import the video and add it to the topmost track of
the project. If I then start a preview of the project (yes, that's a bit
silly, but I can reproduce the error that way, if I start doing
interesting things, openshot either dies or locks up), it plays for a
while (I saw the timer say 02:24 just before it crashed, it might have
gotten just past the 02:25 mark, but I didn't see that).

If openshot is started from a terminal, the following appears:
------output-----
Caught signal 11 (SIGSEGV)
---- Unhandled Exception: Stack Trace ----
  /usr/lib/x86_64-linux-gnu/libswresample.so.3 (                                           + 0x8f46)  [0x7fd468c90f46]
  /usr/lib/x86_64-linux-gnu/libswresample.so.3 ( swr_convert                               + 0x61c )  [0x7fd468c9859c]
  /usr/lib/x86_64-linux-gnu/libopenshot.so.19 ( openshot::FFmpegReader::ProcessAudioPacket(long, long, int)  + 0xfb7 )  [0x7fd4694ac547]
  /usr/lib/x86_64-linux-gnu/libopenshot.so.19 (                                           + 0x8b2e4)  [0x7fd4694b02e4]
  /usr/lib/x86_64-linux-gnu/libgomp.so.1 (                                           + 0x1679e)  [0x7fd46886b79e]
  /lib/x86_64-linux-gnu/libpthread.so.0 (                                           + 0x7fa3)  [0x7fd471ffafa3]
  /lib/x86_64-linux-gnu/libc.so.6 ( clone                                     + 0x3f  )  [0x7fd471b414cf]
---- End of Stack Trace ----
QObject::~QObject: Timers cannot be stopped from another thread
Caught signal 11 (SIGSEGV)
---- Unhandled Exception: Stack Trace ----
  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 ( QPainterState::QPainterState()            + 0x3d  )  [0x7fd46d5eca7d]
  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 ( QRasterPaintEngine::createState(QPainterState*) const  + 0x45  )  [0x7fd46d5de555]
  /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 ( QPainter::begin(QPaintDevice*)            + 0x100 )  [0x7fd46d5efa50]
  /usr/lib/python3/dist-packages/PyQt5/QtGui.cpython-37m-x86_64-linux-gnu.so (                                           + 0x1741d9)  [0x7fd46de0e1d9]
  /usr/lib/python3/dist-packages/sip.cpython-37m-x86_64-linux-gnu.so (                                           + 0x179d4)  [0x7fd4713d69d4]
  /usr/bin/python3               ( _PyObject_FastCallKeywords                + 0x129 )  [0x5ce0e9]
  /usr/bin/python3               ( _PyEval_EvalFrameDefault                  + 0x4c3b)  [0x5467bb]
  /usr/bin/python3               ( _PyEval_EvalCodeWithName                  + 0x252 )  [0x53f732]
  /usr/bin/python3               ( _PyFunction_FastCallDict                  + 0x34e )  [0x5ceb8e]
  /usr/bin/python3               (                                                   )  [0x4c9202]
  /usr/bin/python3               ( PyObject_Call                             + 0x56  )  [0x5d0986]
  /usr/lib/python3/dist-packages/sip.cpython-37m-x86_64-linux-gnu.so (                                           + 0x1153b)  [0x7fd4713d053b]
  /usr/lib/python3/dist-packages/sip.cpython-37m-x86_64-linux-gnu.so (                                           + 0x1161f)  [0x7fd4713d061f]
  /usr/lib/python3/dist-packages/PyQt5/QtWidgets.cpython-37m-x86_64-linux-gnu.so (                                           + 0x14d5fd)  [0x7fd46c4385fd]
  /usr/lib/python3/dist-packages/PyQt5/QtWidgets.cpython-37m-x86_64-linux-gnu.so (                                           + 0x3959fb)  [0x7fd46c6809fb]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QWidget::event(QEvent*)                   + 0x1d8 )  [0x7fd46be314d8]
  /usr/lib/python3/dist-packages/PyQt5/QtWidgets.cpython-37m-x86_64-linux-gnu.so (                                           + 0x38f7f3)  [0x7fd46c67a7f3]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QApplicationPrivate::notify_helper(QObject*, QEvent*)  + 0x81  )  [0x7fd46bdf34c1]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QApplication::notify(QObject*, QEvent*)   + 0x210 )  [0x7fd46bdfa970]
  /usr/lib/python3/dist-packages/PyQt5/QtWidgets.cpython-37m-x86_64-linux-gnu.so (                                           + 0x3a910e)  [0x7fd46c69410e]
  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 ( QCoreApplication::notifyInternal2(QObject*, QEvent*)  + 0x179 )  [0x7fd4703e1489]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QWidgetPrivate::sendPaintEvent(QRegion const&)  + 0x3a  )  [0x7fd46be2a0ca]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)  + 0x867 )  [0x7fd46be2a987]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (                                           + 0x16ea37)  [0x7fd46be02a37]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (                                           + 0x16ee19)  [0x7fd46be02e19]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QWidgetPrivate::syncBackingStore()        + 0xa5  )  [0x7fd46be199d5]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QWidget::event(QEvent*)                   + 0x308 )  [0x7fd46be31608]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QMainWindow::event(QEvent*)               + 0x64  )  [0x7fd46bf37dd4]
  /usr/lib/python3/dist-packages/PyQt5/QtWidgets.cpython-37m-x86_64-linux-gnu.so (                                           + 0x2515b3)  [0x7fd46c53c5b3]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QApplicationPrivate::notify_helper(QObject*, QEvent*)  + 0x81  )  [0x7fd46bdf34c1]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QApplication::notify(QObject*, QEvent*)   + 0x210 )  [0x7fd46bdfa970]
  /usr/lib/python3/dist-packages/PyQt5/QtWidgets.cpython-37m-x86_64-linux-gnu.so (                                           + 0x3a910e)  [0x7fd46c69410e]
  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 ( QCoreApplication::notifyInternal2(QObject*, QEvent*)  + 0x179 )  [0x7fd4703e1489]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (                                           + 0x16f858)  [0x7fd46be03858]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (                                           + 0x170577)  [0x7fd46be04577]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QWidget::repaint(QRect const&)            + 0x97  )  [0x7fd46be1b717]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QWidget::repaint()                        + 0x3c  )  [0x7fd46be1b77c]
  /usr/lib/python3/dist-packages/PyQt5/QtWidgets.cpython-37m-x86_64-linux-gnu.so (                                           + 0x381892)  [0x7fd46c66c892]
  /usr/bin/python3               ( _PyMethodDef_RawFastCallKeywords          + 0x132 )  [0x5ccc42]
  /usr/bin/python3               (                                                   )  [0x53ecf0]
  /usr/bin/python3               ( _PyEval_EvalFrameDefault                  + 0x49ba)  [0x54653a]
  /usr/bin/python3               ( _PyEval_EvalCodeWithName                  + 0x252 )  [0x53f732]
  /usr/bin/python3               ( _PyFunction_FastCallDict                  + 0x34e )  [0x5ceb8e]
  /usr/bin/python3               (                                                   )  [0x4c9202]
  /usr/bin/python3               ( PyObject_Call                             + 0x56  )  [0x5d0986]
  /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-37m-x86_64-linux-gnu.so (                                           + 0x1fa6a0)  [0x7fd4709876a0]
  /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-37m-x86_64-linux-gnu.so (                                           + 0x1fab78)  [0x7fd470987b78]
  /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-37m-x86_64-linux-gnu.so (                                           + 0x1fae60)  [0x7fd470987e60]
  /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-37m-x86_64-linux-gnu.so (                                           + 0x1fb90f)  [0x7fd47098890f]
  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 ( QObject::event(QEvent*)                   + 0xe2  )  [0x7fd47040b072]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QApplicationPrivate::notify_helper(QObject*, QEvent*)  + 0x81  )  [0x7fd46bdf34c1]
  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ( QApplication::notify(QObject*, QEvent*)   + 0x210 )  [0x7fd46bdfa970]
  /usr/lib/python3/dist-packages/PyQt5/QtWidgets.cpython-37m-x86_64-linux-gnu.so (                                           + 0x3a910e)  [0x7fd46c69410e]
  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 ( QCoreApplication::notifyInternal2(QObject*, QEvent*)  + 0x179 )  [0x7fd4703e1489]
  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 ( QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)  + 0x1cb )  [0x7fd4703e446b]
  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (                                           + 0x2bc103)  [0x7fd470433103]
  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 ( g_main_context_dispatch                   + 0x2ae )  [0x7fd46fa77f2e]
  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (                                           + 0x4e1c8)  [0x7fd46fa781c8]
  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 ( g_main_context_iteration                  + 0x2c  )  [0x7fd46fa7825c]
  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 ( QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)  + 0x67  )  [0x7fd470432727]
---- End of Stack Trace ----
zsh: segmentation fault  openshot-qt
-----end of output-----

There were more lines in the output when I used the version in Buster,
but it was still "just" a stack trace, so I guess they effectively say
the same, but I'm going to save that output for a few days if it's
needed.

The same video file plays fine with e.g. mpv from the mpv package.

I would expect openshot to play the video and not die in this case.

This was done using the version from Buster-backports, but it seems to
be the same version that is in testing+unstable.