This bug is a tracking bug to its upstream bug (https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/892) that server the Blocker Review process.
For details, see the upstream bug.
Description of problem:
When a recurring event that spread weekly until a certain date in the future, i.e. for several weeks, is added, it cannot be edited or deleted any more.
Any attempt to open the event freezes the application and a Force Quit dialogue appears and eventually must be used to quit the application. See the bottom for journal logs.
Proposed as a Blocker for 37-final by Fedora user lruzicka using the blocker tracking app because:
I am proposing this because I think that it seriously hinders the basic functionality of a calendar application.
+6 in https://pagure.io/fedora-qa/blocker-review/issue/977 , marking accepted.
*** Bug 2137576 has been marked as a duplicate of this bug. ***
A full backtrace from ABRT is available in bug 2137576.
The issue has been fixed upstream, now we need a new build in Fedora.
FEDORA-2022-ce3b8fbd4d has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-ce3b8fbd4d
I did the build now, gnome-calendar-43.1-2.fc37 and edited it into the https://bodhi.fedoraproject.org/updates/FEDORA-2022-ce3b8fbd4d update.
(In reply to Kalev Lember from comment #7)
> I did the build now, gnome-calendar-43.1-2.fc37 and edited it into the
> https://bodhi.fedoraproject.org/updates/FEDORA-2022-ce3b8fbd4d update.
With this update, I still can't edit the event. When I click Edit, gnome-calendar crashes (in the earlier version, the window stayed up, just looked frozen; in the latest version, the window disappears). I captured the traceback using gdb, attaching.
Created attachment 1921540 [details]
gdb traceback with gnome-calendar-43.1-2.fc37
FEDORA-2022-ce3b8fbd4d has been pushed to the Fedora 37 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-ce3b8fbd4d`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-ce3b8fbd4d
See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
I do not face this crash. Copying the relevant part from the attachment:
Thread 1 (Thread 0x7fa079314a80 (LWP 81747)):
#0 0x000055b0affff96b in calendar_compute_days (self=self@entry=0x55b0b21c0d90) at ../src/gui/event-editor/gcal-date-chooser.c:152
#1 0x000055b0b0000957 in gcal_date_chooser_set_date (view=<optimized out>, date=date@entry=0x0) at ../src/gui/event-editor/gcal-date-chooser.c:476
#2 0x000055b0b0000e43 in multi_choice_changed (self=0x55b0b21c0d90, year=<optimized out>, month=1) at ../src/gui/event-editor/gcal-date-chooser.c:715
Could you try to reproduce under valgrind, please? Something like the following can work:
G_SLICE=always-malloc valgrind --leak-check=no --num-callers=30 --track-origins=yes --aspace-minaddr=0x100000000 gnome-calendar
Even when it will not crash, it can print some information on the terminal.
Created attachment 1921547 [details]
Hmm, would it be possible to share the event as an iCalendar file, please?
I tried all three types of the weekly recurrence, by creating the event in an On This Computer/Personal calendar, but none reproduces NULL `date` being used (it's what the backtrace and the valrgind log shows), thus I'm wondering what the component looks like. Maybe if you create the second component, similar to the first, it'll work, because this one is broken from the previous test (and the previous version of the gnome-calendar)?
How to get the iCalendar data in gnome-calendar I do not know. In Evolution, you simply right-click the component and pick "Save as iCalendar..." in the context menu, but whether it's possible in the gnome-calendar I do not know - I definitely do not have it offered here. I guess the component has set wrong end date, some invalid value, which causes the date to be NULL, but I'd like to be sure of it.
Created attachment 1921656 [details]
ICS with a crash-causing event
When starting from only the 43.1-2 version I can't create an event that causes a crash. However, I did create an event in the -1 version (before upgrading) that does cause a crash and it continues to do so in -2 (even after restarting).
Since gnome-calendar uses evolution-data-server the calendar itself is shared with Evolution. The ICS file is stored at ~/.local/share/evolution/calendar/system/calendar.ics
I've attached my test ICS: the "Garbage" event causes a crash when I try to open the editing window; "repeat" does not.
The ABRT report for the crash I'm seeing is https://retrace.fedoraproject.org/faf/reports/493468/
so I think it's the same as Kamil's
Aha, it has invalid time part of the UNTIL=20221102T261824 , I tried with invalid date and it did not reproduce the problem.
Created attachment 1921672 [details]
> The ICS file is stored at ~/.local/share/evolution/calendar/system/calendar.ics
Thanks, Peter, that was very helpful.
> Hmm, would it be possible to share the event as an iCalendar file, please?
Attached. It's the event called "test".
Please note that if the crash only occurs on events containing invalid data (created by a broken version of gnome-calendar), we can propose to re-evaluate the blocker status (after pushing gnome-calendar-43.1-2.fc37 stable).
Yours has also broken time part UNTIL=20221121T261401 I guess this happened due to the use of the freed GDateTime structure (which is fixed by the upstream change). The memory where the hour was stored had been overwritten with something else, which modified the value to an invalid hour.
I'll propose a fix upstream for this, but I agree with you that the broken event had been created by a broken gnome-calendar. You won't be able to reproduce this (create a broken event) in a fixed gnome-calendar.
Yeah, when I create new recurring events, I can no longer reproduce the crash on those events. So I believe this problem is sufficiently resolved with the existing update.
I went ahead and backported Milan's https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/270 as well to fix the crash with invalid data (created by a broken version of gnome-calendar) to gnome-calendar-43.1-3.fc37
(In reply to Kalev Lember from comment #20)
> I went ahead and backported Milan's
> https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/270 as well
> to fix the crash with invalid data (created by a broken version of
> gnome-calendar) to gnome-calendar-43.1-3.fc37
Thanks, I confirm that I can now edit or remove the affected event.
FEDORA-2022-ce3b8fbd4d has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.