Open
Bug 1384198
Opened 8 years ago
Updated 5 years ago
Lightning hangs with Yearly rule and BYDAY + BYMONTHDAY with values that don't match
Categories
(Calendar :: Internal Components, defect)
Calendar
Internal Components
Tracking
(Not tracked)
NEW
People
(Reporter: jean_milost, Unassigned)
References
Details
(Keywords: dataloss, hang)
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
Build ID: 20170628075643
Steps to reproduce:
I tried to import the following .ics file:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:CopyTrans Contacts
BEGIN:VEVENT
SUMMARY:Yearly G
CATEGORIES:WindSolutions
DTSTART:20150914T190000Z
DTEND:20150914T200000Z
CREATED:20160617T195112Z
RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20220103T025959Z;BYDAY=-1TH;BYMONTHDAY=9
END:VEVENT
END:VCALENDAR
Actual results:
Thunderbird became completely frozen. I was forced to kill it. After trying to open again, Thunderbird just remained open in background, refused to show the user interface, and did nothing else. I was obliged to kill Thunderbird again, then open my profile folder and manually delete the calendar-data dir to unblock the situation.
Expected results:
Importing the iCal content in my calendar.
| Reporter | ||
Updated•8 years ago
|
Summary: Importing a .ics file may freeze Thunderbird completely and make it unable to open again → Importing a .ics file may freeze Thunderbird completely and turn it unable to open again
Updated•8 years ago
|
Component: Untriaged → Import and Export
Product: Thunderbird → Calendar
I can confirm without testing on both libical and ical.js.
During the initialization of the iterator, an infinite loop arises for a yearly rule when BYDAY and BYMONTHDAY have values impossible to match in any year, like those ones in calendar for test.
With reference to ical.js, the function expand_year_days() returns an empty |this.days| array for every iteration:
https://dxr.mozilla.org/comm-central/source/calendar/base/modules/ical.js#6971
https://dxr.mozilla.org/comm-central/source/calendar/libical/src/libical/icalrecur.c#1007
At first glance it would need a counter that sets a maximum number of iterations.
Status: UNCONFIRMED → NEW
Component: Import and Export → Internal Components
Ever confirmed: true
Keywords: hang
OS: Unspecified → All
Hardware: Unspecified → All
Summary: Importing a .ics file may freeze Thunderbird completely and turn it unable to open again → Lightning hangs with Yearly rule and BYDAY + BYMONTHDAY with values that don't match
Updated•7 years ago
|
Severity: normal → critical
You need to log in
before you can comment on or make changes to this bug.
Description
•