Olive: Crash when deleting last remaining keyframe of one parameter in Graph Editor

Created on 25 Feb 2019  路  6Comments  路  Source: olive-editor/olive

__Olive version:__
__Source:__ Compiled from Git f4668e317a4fb39968a6bf3b03cc3d968b393c07
__Operating system:__ Windows 10 or Ubuntu 18.10
__CPU:__ i7-3770 or i5-6300HQ
__GPU:__ Intel i915 or NVidia Quadro FX 380

Detailed Description

Crash when deleting the last keyframe of X position within Graph Editor (and presumably other similar situations)

Steps to reproduce

  1. Open attached keyframe-crash.ove project keyframe-crash.zip
  2. Select "Bars" item in timeline
  3. Open Graph Editor and Effects: Bars tabs
  4. In Effects tab, click the word Position:
  5. In Graph Editor, select the leftmost keyframe on the top (red) line and press Delete
  6. In Graph Editor, select the rightmost keyframe on the top (red) line and press Delete

This causes the crash.

Output log

Windows:

2019-02-25T14:17:03 [FATAL] ASSERT: "!isEmpty()" in file C:/msys64/mingw64/include/QtCore/qvector.h, line 237 (C:/msys64/mingw64/include/QtCore/qvector.h:237, (null))

Linux:

2019-02-25T14:19:07 [FATAL] ASSERT: "!isEmpty()" in file /usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h, line 237 (/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h:237, (null))
Aborted (core dumped)

All 6 comments

Backtrace:

(gdb) bt
#0  0x00007ffff4a8e077 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff4a6f535 in __GI_abort () at abort.c:79
#2  0x00007ffff507f8d7 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff507ed59 in qt_assert_x(char const*, char const*, char const*, int) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x000055555567d961 in QVector<int>::first() (this=0x7fffffffd150)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h:237
#5  0x000055555567bac2 in GraphView::mouseMoveEvent(QMouseEvent*)
    (this=0x555555de9320, event=0x7fffffffd5d0) at ui/graphview.cpp:611
#6  0x00007ffff5c667d8 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007ffff5c284a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff5c2fd28 in QApplication::notify(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff5269499 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff5c2f029 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff5c81304 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff5c83e8e in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff5c284a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff5c2fae0 in QApplication::notify(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff5269499 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff566e53b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#17 0x00007ffff5670435 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#18 0x00007ffff564ab6b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#19 0x00007fffe2e48e5b in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#20 0x00007ffff526816b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007ffff52702e2 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x000055555559a306 in main(int, char**) (argc=1, argv=0x7fffffffdf98) at main.cpp:141

I know this is off-topic, but how did you manage to successfully compile Olive on Windows?

This issue should be corrected as of 47d0065effc36e4306a6464cb256315f37ad07dd

Edit: @BrimsonBhin not sure about @mdmayfield, but an alternative is to download Qt from https://qt.io/ and use their installer which comes with either MSVC-built libraries (requires Visual Studio, but I can confirm works) or MinGW-built libraries which I believe comes with their own MinGW set up. That may be a better solution for now until the current error is solved.

@BrimsonBhin I'd never used MinGW or MSYS2 before, and basically I spent a few hours installing...stuff within its package manager. I also kept getting errors during qmake, but then on a whim tried make despite qmake's errors, and it just kind of worked. It was one of those things where you get "in the zone" and just keep banging your head against the wall until it cracks. ("It" being the wall, in a best-case scenario.) So I unfortunately don't recall all the details of how I got it to work.

The executable is generated in

If it's helpful, FWIW here's what I found in my history within the MSYS2 environment; this will probably be more packages than necessary, but I at least got it to work after installing these.

Some of these were mistakes and will likely return an error!

pacman -S mingw-w64-x86_84-qt5
pacman -h
pacman -h -D
pacman -S mingw-w64-x86_64-qt5
pacman -S mingw-w64-x86_64-ffmpeg
pacman -S git
pacman -S mingw-w64-x86_64-g++
pacman -Syu
pacman -S mingw-w64-4-x86_64-qt5
pacman -S mingw-w64-x86_64-qt5
pacman -S mingw-w64-x86_64-ffmpeg
pacman -Su
pacman -Ss g++
pacman -Ss gcc
pacman -S mingw64/mingw-w64-x86_64-gcc-objc
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64
pacman -Ss nano
pacman -S nano
pacman -U /var/cache/pacman/pkg/git-2.10.2-1-x86_64.pkg.tar.xz
pacman --needed -S bash pacman pacman-mirrors msys2-runtime
pacman -Ss autotools
pacman -Ss make
pacman -S mingw-w64-x86_64-cmake
pacman -Ss make
pacman -S msys/cmake
pacman -Ss make
pacman -S automake
pacman -S --needed base-devel mingw-w64-x86_64-toolchain git subversion mercurial mingw-w64-x86_64-cmake

image

@itsmattkc Tested, and the use case does not crash anymore! Thanks.

@itsmattkc btw, http://download.qt.io is the directory, there are plenty of packages and archived versions. Easier way to download than over site.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

naj59 picture naj59  路  33Comments

Symbian9 picture Symbian9  路  23Comments

frink picture frink  路  16Comments

sobotka picture sobotka  路  35Comments

prokoudine picture prokoudine  路  38Comments