olive-editor/olive

[CRASH] Trying to save a new project crashes Olive

kolaente opened this issue · 10 comments

Commit Hash

Olive 0.2.0

image

Platform

NixOS 23.05

Summary

Trying to save a new project crashes Olive.

Steps to Reproduce

  1. Create a new project
  2. Add a few files (not sure if required)
  3. Try to save it via File -> Save 'untitled' or CTRL+S
  4. UI freezes for a few seconds, then crashes
Crash Report


Where should I get that crash report?

Additional Information

You need to add commit hash. Is there something looking like random string of letters And numbers in the window title? If not where did you get it from?

No commit hash in the about dialog. Where else should I look? Isn't the 0.2 pointing to a tag anyway so no need for a commit hash of that because it's already unique?

I got it through nixos packages. Here's the code it fetches from olive: https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/applications/video/olive-editor/default.nix#L25-L31

That Is really wierd. I do not think that there is anything like that. 0.2 Is not really out yet. There is no such tag as 0.2. Is not there any text of semingly random letters and numbers on the title of main window?

@kolaente Third-party packages are not maintained by the Olive project, so it is recommended to either avoid them or not report bugs about them; the only official methods of installation are by running the AppImage or by compiling locally, though the latter has some caveats when it comes to bug reporting with regards to the compiler flags used if custom ones are used.

Since we're here though, might as well dig a bit deeper. In the section of the Nix package definition that you've linked to, does the rev variable correspond to the hash of the commit that has been compiled by any chance? My laptop is not available in a sense for the time being and I'm not that adept at using the GitHub app on my phone, so I can't verify that myself at the moment 😅. If this turns out to be true, then there should be some way to build Olive without losing this bit of information, since the commit hash as seen in the application itself is just an argument to a compiler flag for a few compilation units if I recall correctly; specifically, it's a macro that normally gets defined when building from a repository clone.


Edit

Also, regarding tags, until 0.2 is more-or-less finalised, they will very likely not be coming back; releases right now work more like releases of Firefox Nightly than regular Firefox for example, that is they go by commit instead of by tag or version. As for when tags will make a comeback, I personally don't know unfortunately.

does the rev variable correspond to the hash of the commit that has been compiled by any chance?

Yes, that's exactly what it does. I'm not sure how complicated it is to get the compile flag into nixos, but it probably is possible.

I'll update the package and check if my original problem still happens.

The originally reported bug still happens with 2036fff. Could this be related to the DE I'm using? (i3) Maybe it's missing a file picker from Gnome or KDE or something?

I've just tried this with GNOME and everything seems to work fine.

can you use gdb to run the app?

  1. gdb olive-editor
  2. type and enter run
    2-a. if prompted "Enable debuginfod for this session? (y or [n]) " do no
  3. cause crash (app will be very slow, that is normal)
  4. type and enter bt
  5. if prompted for more information do it

copy and paste the full output of bt

The originally reported bug still happens with 2036fff. Could this be related to the DE I'm using? (i3) Maybe it's missing a file picker from Gnome or KDE or something?

even if this is the case, it probaly shouldn't crash. QT does have it's own file picker it should open, but I suppose it may be possible to not compile with it

EDIT:
you can use QT_QPA_PLATFORMTHEME=xdgdesktopportal to force using xdg and along with https://github.com/Decodetalkers/xdg-desktop-portal-shana you should be able to use any of the main xdg-desktop-portal providers

Here's the backtrace and what led up to it:

(olive-editor:6784): GLib-GIO-ERROR **: 10:08:56.170: Settings schema 'org.gtk.Settings.FileChooser' is not installed

Thread 1 ".olive-editor-w" received signal SIGTRAP, Trace/breakpoint trap.
0x00007fffefda5b57 in g_log_structured_array () from /nix/store/bxkjfzv01fldw1kb5laq2kqai8iwbzb3-glib-2.76.4/lib/libglib-2.0.so.0
(gdb) bt
#0  0x00007fffefda5b57 in g_log_structured_array () from /nix/store/bxkjfzv01fldw1kb5laq2kqai8iwbzb3-glib-2.76.4/lib/libglib-2.0.so.0
#1  0x00007fffefda5fae in g_log_default_handler () from /nix/store/bxkjfzv01fldw1kb5laq2kqai8iwbzb3-glib-2.76.4/lib/libglib-2.0.so.0
#2  0x00007fffefda6218 in g_logv () from /nix/store/bxkjfzv01fldw1kb5laq2kqai8iwbzb3-glib-2.76.4/lib/libglib-2.0.so.0
#3  0x00007fffefda64cf in g_log () from /nix/store/bxkjfzv01fldw1kb5laq2kqai8iwbzb3-glib-2.76.4/lib/libglib-2.0.so.0
#4  0x00007fffdd29c94f in g_settings_set_property () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgio-2.0.so.0
#5  0x00007fffdd15a88d in object_set_property () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#6  0x00007fffdd15b168 in g_object_new_internal () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#7  0x00007fffdd15cd93 in g_object_new_valist () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#8  0x00007fffdd15d3e9 in g_object_new () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#9  0x00007fffdd792cdc in _gtk_file_chooser_get_settings_for_widget () from /nix/store/fpd6sdn9pkkwnj9krpqdrsc2l1lb4dav-gtk+3-3.24.37/lib/libgtk-3.so.0
#10 0x00007fffdd793da7 in gtk_file_chooser_widget_get_default_size () from /nix/store/fpd6sdn9pkkwnj9krpqdrsc2l1lb4dav-gtk+3-3.24.37/lib/libgtk-3.so.0
#11 0x00007fffdd78e277 in file_chooser_widget_default_size_changed () from /nix/store/fpd6sdn9pkkwnj9krpqdrsc2l1lb4dav-gtk+3-3.24.37/lib/libgtk-3.so.0
#12 0x00007fffdd1554c0 in g_closure_invoke () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#13 0x00007fffdd168576 in signal_emit_unlocked_R.isra.0 () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#14 0x00007fffdd16f48d in g_signal_emit_valist () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#15 0x00007fffdd16f928 in g_signal_emit_by_name () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#16 0x00007fffdd15a88d in object_set_property () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#17 0x00007fffdd15d5af in g_object_setv () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#18 0x00007fffdd15e65b in g_object_set_property () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#19 0x00007fffdd15a88d in object_set_property () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#20 0x00007fffdd15d9bc in g_object_set_valist () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#21 0x00007fffdd15e52c in g_object_set () from /nix/store/4vrk6zldfblhry2hi4p0jsy4j7nsvgaz-glib-2.76.2/lib/libgobject-2.0.so.0
#22 0x00007fffddf2b636 in QGtk3FileDialogHelper::QGtk3FileDialogHelper() ()
   from /nix/store/z0hbywx1p5cd8vmnw5gmkcj49r0rj7wr-qgnomeplatform-0.8.4/lib/qt-6/plugins/platformthemes/libqgnomeplatformtheme.so
#23 0x00007fffddf28c55 in QGnomePlatformTheme::createPlatformDialogHelper(QPlatformTheme::DialogType) const ()
   from /nix/store/z0hbywx1p5cd8vmnw5gmkcj49r0rj7wr-qgnomeplatform-0.8.4/lib/qt-6/plugins/platformthemes/libqgnomeplatformtheme.so
#24 0x00007ffff43eee1d in QDialogPrivate::platformHelper() const () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#25 0x00007ffff4407438 in QFileDialogPrivate::init(QFileDialogArgs const&) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#26 0x00007ffff440798e in QFileDialog::QFileDialog(QWidget*, QString const&, QString const&, QString const&) ()
   from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#27 0x000000000054a9ce in olive::Core::SaveProjectAs() ()
#28 0x00007ffff31ac18e in void doActivate<false>(QObject*, int, void**) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Core.so.6
#29 0x00007ffff3baea32 in QAction::triggered(bool) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Gui.so.6
#30 0x00007ffff3bb19a9 in QAction::activate(QAction::ActionEvent) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Gui.so.6
#31 0x00007ffff435de16 in QMenuPrivate::activateCausedStack(QList<QPointer<QWidget> > const&, QAction*, QAction::ActionEvent, bool) ()
   from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#32 0x00007ffff4365eb1 in QMenuPrivate::activateAction(QAction*, QAction::ActionEvent, bool) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#33 0x00007ffff41e9308 in QWidget::event(QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#34 0x00007ffff4190e11 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#35 0x00007ffff419aacb in QApplication::notify(QObject*, QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#36 0x00007ffff314bae8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Core.so.6
#37 0x00007ffff4366b56 in QMenuPrivate::mouseEventTaken(QMouseEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#38 0x00007ffff4366f3e in QMenu::mouseReleaseEvent(QMouseEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#39 0x00007ffff41e9308 in QWidget::event(QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#40 0x00007ffff4190e11 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#41 0x00007ffff419aacb in QApplication::notify(QObject*, QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#42 0x00007ffff314bae8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Core.so.6
#43 0x00007ffff4199538 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) ()
   from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#44 0x00007ffff41fbfb3 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#45 0x00007ffff41fe690 in QWidgetWindow::event(QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#46 0x00007ffff4190e11 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Widgets.so.6
#47 0x00007ffff314bae8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Core.so.6
--Type <RET> for more, q to quit, c to continue without paging--c
#48 0x00007ffff37d7063 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
   from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Gui.so.6
#49 0x00007ffff382ea3c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Gui.so.6
#50 0x00007fffec6612da in xcbSourceDispatch(_GSource*, int (*)(void*), void*) ()
   from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/qt-6/plugins/platforms/../../../libQt6XcbQpa.so.6
#51 0x00007fffefd9dead in g_main_context_dispatch () from /nix/store/bxkjfzv01fldw1kb5laq2kqai8iwbzb3-glib-2.76.4/lib/libglib-2.0.so.0
#52 0x00007fffefd9e158 in g_main_context_iterate.constprop () from /nix/store/bxkjfzv01fldw1kb5laq2kqai8iwbzb3-glib-2.76.4/lib/libglib-2.0.so.0
#53 0x00007fffefd9e1ec in g_main_context_iteration () from /nix/store/bxkjfzv01fldw1kb5laq2kqai8iwbzb3-glib-2.76.4/lib/libglib-2.0.so.0
#54 0x00007ffff33d6e1c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Core.so.6
#55 0x00007ffff3157ea3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Core.so.6
#56 0x00007ffff3153d58 in QCoreApplication::exec() () from /nix/store/vdj63pdmwss2vvxliris26wnmr8ydyhi-qtbase-6.5.2/lib/libQt6Core.so.6
#57 0x00000000004e4d4c in main ()

When I set QT_QPA_PLATFORMTHEME=xdgdesktopportal it seems to work.

This looks like it might be more of a QT/NixOS issue than an Olive issue. Seeing as you have a work around and I'm not able to reproduce this I'm going to close this for now. If you have any further insights or updates feel free to reopen the issue