Bug 2135772

Summary: Editing the recurring event freezes Calendar.
Product: [Fedora] Fedora Reporter: Lukas Ruzicka <lruzicka>
Component: gnome-calendarAssignee: GNOME SIG Unassigned <gnome-sig>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 37CC: awilliam, gnome-sig, igor.raits, klember, kparal, mcrha, rhbz, robatino
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard: AcceptedBlocker
Fixed In Version: gnome-calendar-43.1-3.fc37 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-08 01:49:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2009539    
Attachments:
Description Flags
gdb traceback with gnome-calendar-43.1-2.fc37
none
valgrind output
none
ICS with a crash-causing event
none
crashing calendar none

Description Lukas Ruzicka 2022-10-18 11:39:55 UTC
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.

Comment 1 Fedora Blocker Bugs Application 2022-10-18 11:40:51 UTC
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.

Comment 2 Adam Williamson 2022-10-18 21:42:23 UTC
+6 in https://pagure.io/fedora-qa/blocker-review/issue/977 , marking accepted.

Comment 3 Kamil Páral 2022-10-25 14:31:24 UTC
*** Bug 2137576 has been marked as a duplicate of this bug. ***

Comment 4 Kamil Páral 2022-10-25 14:31:52 UTC
A full backtrace from ABRT is available in bug 2137576.

Comment 5 Kamil Páral 2022-10-31 13:09:43 UTC
The issue has been fixed upstream, now we need a new build in Fedora.

Comment 6 Fedora Update System 2022-10-31 14:40:36 UTC
FEDORA-2022-ce3b8fbd4d has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-ce3b8fbd4d

Comment 7 Kalev Lember 2022-10-31 14:40:56 UTC
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.

Comment 8 Kamil Páral 2022-11-01 13:24:18 UTC
(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.

Comment 9 Kamil Páral 2022-11-01 13:25:04 UTC
Created attachment 1921540 [details]
gdb traceback with gnome-calendar-43.1-2.fc37

Comment 10 Fedora Update System 2022-11-01 14:47:04 UTC
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.

Comment 11 Milan Crha 2022-11-01 14:47:49 UTC
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.

Comment 12 Kamil Páral 2022-11-01 14:56:57 UTC
Created attachment 1921547 [details]
valgrind output

Comment 13 Milan Crha 2022-11-01 15:28:27 UTC
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.

Comment 14 Peter Simonyi 2022-11-02 06:53:54 UTC
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.

Comment 15 Peter Simonyi 2022-11-02 06:57:26 UTC
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

Comment 16 Milan Crha 2022-11-02 07:40:53 UTC
Aha, it has invalid time part of the UNTIL=20221102T261824 , I tried with invalid date and it did not reproduce the problem.

Comment 17 Kamil Páral 2022-11-02 07:42:43 UTC
Created attachment 1921672 [details]
crashing calendar

> 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).

Comment 18 Milan Crha 2022-11-02 07:48:16 UTC
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.

Comment 19 Kamil Páral 2022-11-02 08:01:32 UTC
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.

Comment 20 Kalev Lember 2022-11-02 13:43:30 UTC
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

Comment 21 Kamil Páral 2022-11-02 14:44:20 UTC
(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.

Comment 22 Fedora Update System 2022-11-03 08:46:37 UTC
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.

Comment 23 Fedora Update System 2022-11-08 01:49:14 UTC
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.