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)

defect
Not set
critical

Tracking

(Not tracked)

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.
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
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
Keywords: dataloss
Severity: normal → critical
See Also: → 377487
You need to log in before you can comment on or make changes to this bug.