TB empties the entire calendar on disk
Categories
(Calendar :: Provider: ICS/WebDAV, defect, P1)
Tracking
(thunderbird_esr102+ affected, thunderbird113 affected)
People
(Reporter: BenB, Assigned: leftmostcat)
References
Details
(Keywords: dataloss)
Attachments
(1 file)
Environment:
- I have several calendars, which are configured as ICS calendars. The remove address is a local file
file:///home/<username>/business.ics
. - I had a recurring event.
- Thunderbird 91.2.0 on Ubuntu Linux and XFS file system
- This TB profile is only for calendars and dedicated to calendars. There is an email account configured, but not used (there's not even an email folder tree).
Steps:
- Double-click on the event, to open the event read-only.
- Click Edit
- Select "All instances"
- Modify the text
- Close and save the event
Actual result:
- Saving the event failed. An technical error message MODIFICATION_FAILED or similar appeared.
- The calendar disappears completely. All events of that calendar disappeared.
- The calendar is marked read-only.
- I restart the application:
- The events are still not displaying.
- I change the calendar properties and remove the read-only flag.
- The events are still not displaying.
- I check the business.ics file on the harddisk, and see that only the header of the file is there, but there are no entries The whole file has only 4 lines.
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
Expected result:
- Modifying the recurring event worked.
- The modified event is displayed.
- All other events are unchanged.
Impact:
- Major data loss. This was my primary business calendar. I have lost all the appointments and reminders.
- By definition: Severity S1 / Critical.
Reporter | ||
Comment 2•3 years ago
|
||
I'm really sorry, but I don't know, apart from what I wrote above.
I think the best chance to find this bug is to reason about the code logic. Are there any failure cases while writing a calendar entry where we'd presume that the calendar is empty, or overwrite the calendar items array, or something like that?
Reporter | ||
Comment 3•3 years ago
•
|
||
What's really weird is that Lightning is occasionally failing to write to the calendar. And then, as a consenquence, keeps marking the correspinding calendar as read-only. This has happened many times (usually without wiping the calendar), and I've never figured out why. It seems that this is what is leading to the bug, but only part of the bug. Even in such a situation, we should never wipe the calendar.
Assignee | ||
Updated•2 years ago
|
Reporter | ||
Comment 7•2 years ago
|
||
Thanks, Sean, for taking note of this bug, and assigning it to yourself. I appreciate that.
Most other users would have dropped Thunderbird entirely. Indeed, this data loss was a major disruption, as you can imagine. This should never happen under any circumstance. Thomas D and Wayne, could you please baby-sit this serious bug and ensure it gets fixed? Unfortunately, as much as I'd like to, I cannot contribute any more information than I already did above.
Assignee | ||
Comment 8•2 years ago
|
||
(In reply to Ben Bucksch (:BenB) from comment #7)
Unfortunately, as much as I'd like to, I cannot contribute any more information than I already did above.
I have discovered a bug in the handling of local ICS files which has a tiny chance of causing data loss whenever the calendar file is written, data loss that looks exactly like what you described here. Fortunately, once it's known, the solution to that bug is fairly simple. I can't be certain it's the bug which caused your issue, but I think there's a very, very good chance it is. I should have a first version of the patch up very shortly.
Reporter | ||
Comment 9•2 years ago
|
||
Oh, that's great! Ping me with needinfo once you have a patch, please. I'm curious.
Updated•2 years ago
|
Assignee | ||
Comment 10•2 years ago
|
||
Assignee | ||
Updated•1 years ago
|
Comment 12•1 years ago
|
||
Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/53798c29e640
avoid data loss in locally-hosted ICS calendars. r=mkmelin
Updated•1 years ago
|
Updated•7 months ago
|
Description
•