Closed Bug 388925 Opened 17 years ago Closed 17 years ago

Sunbird loses updates written to an ICS store by a second client

Categories

(Calendar :: Provider: ICS/WebDAV, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 329570

People

(Reporter: advax, Unassigned)

Details

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5
Build Identifier: Sunbird 0.5

If a user logs on to an ICS store from two different machines (home and work maybe), and makes an update from one machine, that update will be lost if a second update is made from the second machine without explicitly doing "reload remote calendars".

Sunbird does a GET of the remote calendar prior to adding an event; I presume this
is being ignored and overwritten with Sunbird's internal copy


Reproducible: Always

Steps to Reproduce:
1. Upload event A with client #1
2. Upload event B with client #2
3. On client #1, reload remote calendar.
Actual Results:  
Event A has disappeared. Event B is present.

Expected Results:  
Both events A and B should be present.

When adding an event to an ICS calendar store, Sunbird does a GET then PUT.
It should update its internal copy from this GET to match the remote store,
using If-Modified-Since if the store supports Last-Modified, before making the change and uploading the modified calendar with PUT.

To minimize interference, my ICS store returns HTTP status 503 "busy"
if client #2 does a GET or PUT within a few seconds of client #1 doing a GET.
Sunbird ignores the 503 status on GET entirely, but if it sees it on PUT flags an error and marks the store read-only. The HTTP spec (RFC2616) suggests that clients should honour the retry time in the Retry-After header, but Sunbird (and probably most browsers) treats it as a permanent error on PUT. Ideally, Sunbird should honour the retry time in the GET, avoiding data loss unless the two clients make requests very close together (within a few milliseconds), but the real problem is that data is lost when the requests are a long way apart and
do not overlap at all.
From the release notes: "Concurrent editing of remote calendars by multiple users can lose data (bug 329570)" [http://www.mozilla.org/projects/calendar/releases/common0.5.html]
Status: UNCONFIRMED → RESOLVED
Closed: 17 years ago
Resolution: --- → DUPLICATE
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.