Crash when clicking a modified Google event right after editing it (due to the preview popover)
Affected version
- Fedora 38
- gnome-calendar-44~rc-1.fc38.x86_64
- gtk4-4.10.0-2.fc38.x86_64
Bug summary
If an event from a Google calendar is edited, and I click on it right after editing it, Calendar crashes or gets unresponsive.
- The event needs to be from Google calendar (or possibly other remote source), it doesn't crash with a local calendar
- I can edit e.g. event name or location
- To trigger this, I have to click on the event quite quickly after confirming the change. It seems that if I click on the event before the change is submitted to Google servers and then refreshed, it triggers this problem. If I wait for a few seconds and then click on the event, it's fine.
- There are two options, either it crashes, or the window becomes unresponsive, nothing can be clicked on, and it can't be closed either (gnome-shell doesn't invoke the unresponsive window dialog, so the only option is to send sigterm to the process, to close the window).
Steps to reproduce
- Create an event in a Google calendar
- Edit the event name
- Immediately click on the event again
Relevant logs, screenshots, screencasts etc.
See here:
There's a crash report in downstream bug:
https://bugzilla.redhat.com/show_bug.cgi?id=2177238
Here's an excerpt:
Thread no. 1 (16 frames)
#0 _gtk_widget_is_sensitive at ../gtk/gtkwidgetprivate.h:482
#1 gtk_propagate_event_internal.isra.0 at ../gtk/gtkmain.c:1918
#2 gtk_main_do_event at ../gtk/gtkmain.c:1703
#3 surface_event at ../gtk/gtkwindow.c:4747
#4 _gdk_marshal_BOOLEAN__POINTERv at gdk/gdkmarshalers.c:302
#5 gdk_surface_event_marshallerv at ../gdk/gdksurface.c:463
#6 _g_closure_invoke_va at ../gobject/gclosure.c:895
#9 gdk_surface_handle_event.isra.0 at ../gdk/gdksurface.c:2956
#10 gdk_surface_ensure_motion at ../gdk/gdksurface.c:2473
#11 gdk_surface_flush_events at ../gdk/gdksurface.c:2484
#13 signal_emit_unlocked_R.isra.0 at ../gobject/gsignal.c:3802
#16 _gdk_frame_clock_emit_flush_events at ../gdk/gdkframeclock.c:668
#17 gdk_frame_clock_flush_idle at ../gdk/gdkframeclockidle.c:369
#21 g_main_context_iterate.isra.0 at ../glib/gmain.c:4276
#22 g_main_context_iteration at ../glib/gmain.c:4343
#23 g_application_run at ../gio/gapplication.c:2573