CalDav modifyItem() returned Promise can hang if the server sends an etag that indicates no changes were made.
Categories
(Calendar :: Provider: CalDAV, defect)
Tracking
(thunderbird_esr91+ unaffected)
Tracking | Status | |
---|---|---|
thunderbird_esr91 | + | unaffected |
People
(Reporter: lasana, Assigned: lasana)
Details
Attachments
(1 file)
getUpdateItem()
is called to get the latest version of the item after we modify it which uses CalDavMultigetSyncHandler
. This handler can skip providing the calIOperationListener with a result if the server's etag indicates the item has not changed.
The signature of modifyItem()
is expected to provide the item once no errors are encountered so this creates room for subtle bugs. Since we are using Promises now, that means the modifyItem() result can be left in a pending state indefinitely.
So far the only scenario I am aware of where the etag may not change after an update is where the server for whatever reason silently ignores our modifications like bug 1727123.
Assignee | ||
Comment 1•2 years ago
|
||
Assignee | ||
Updated•2 years ago
|
Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/dfe2350b0346
Still parse updated items when etag indicates they are unchanged. r=darktrojan
Updated•2 years ago
|
Assignee | ||
Updated•2 years ago
|
Description
•