Bug 2135772 - Editing the recurring event freezes Calendar.
Summary: Editing the recurring event freezes Calendar.
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: gnome-calendar
Version: 37
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: GNOME SIG Unassigned
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: AcceptedBlocker
: 2137576 (view as bug list)
Depends On:
Blocks: F37FinalBlocker
TreeView+ depends on / blocked
 
Reported: 2022-10-18 11:39 UTC by Lukas Ruzicka
Modified: 2022-11-08 01:49 UTC (History)
8 users (show)

Fixed In Version: gnome-calendar-43.1-3.fc37
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-11-08 01:49:14 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
gdb traceback with gnome-calendar-43.1-2.fc37 (99.20 KB, text/plain)
2022-11-01 13:25 UTC, Kamil Páral
no flags Details
valgrind output (139.41 KB, text/plain)
2022-11-01 14:56 UTC, Kamil Páral
no flags Details
ICS with a crash-causing event (775 bytes, text/calendar)
2022-11-02 06:53 UTC, Peter Simonyi
no flags Details
crashing calendar (730 bytes, text/plain)
2022-11-02 07:42 UTC, Kamil Páral
no flags Details


Links
System ID Private Priority Status Summary Last Updated
GNOME Gitlab GNOME gnome-calendar issues 892 0 None opened Editing the recurring event freezes Calendar. 2022-10-18 11:39:55 UTC

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.


Note You need to log in before you can comment on or make changes to this bug.