Closed Bug 727943 Opened 14 years ago Closed 14 years ago

Accessing Google Calendar via CalDAV protocol in Lightning is broken with SPDY

Categories

(Core :: Networking: HTTP, defect)

13 Branch
defect
Not set
major

Tracking

()

RESOLVED FIXED
mozilla13

People

(Reporter: ssitter, Assigned: mcmanus)

References

Details

(Keywords: regression, Whiteboard: [spdy])

Attachments

(1 file)

Accessing Google Calendar via CalDAV Provider is broken in current Thunderbird 13.0a1 nightly builds. Calendar will be marked as not available. Using Lightning 1.5a1 (BuildID: 20120216041923) I observed the following regression range: Works: Mozilla/5.0 (Windows NT 6.1; rv:13.0a1) Gecko/20120208 Thunderbird/13.0a1 (Build ID: 20120208030040) Fails: Mozilla/5.0 (Windows NT 6.1; rv:13.0a1) Gecko/20120209 Thunderbird/13.0a1 (Build ID: 20120209090229) Checkins during regression range: ================================= https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=4b9608fd670c&tochange=fe7a433de8ff https://hg.mozilla.org/comm-central/pushloghtml?fromchange=8dfd634cfb27&tochange=e63a3641c3d4 Console output: =============== CalDAV: send: <D:propfind xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/" xmlns:C="urn:ietf:params:xml:ns:caldav"> <D:prop> <D:resourcetype/> <D:owner/> <D:supported-report-set/> <C:supported-calendar-component-set/> <CS:getctag/> </D:prop> </D:propfind> CalDAV: Status 400 on initial PROPFIND for calendar Google Calendar CalDAV: Authentication scheme for Google Calendar is Basic CalDAV: recv: <!DOCTYPE html> <html lang=en> <meta charset=utf-8> <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width"> <title>Error 400 (Bad Request)!!1</title> <style> *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}} </style> <a href=//www.google.com/><img src=//www.google.com/images/errors/logo_sm.gif alt=Google></a> <p><b>400.</b> <ins>That’s an error.</ins> <p>Your client has issued a malformed or illegal request. <ins>That’s all we know.</ins> Warning: There has been an error reading data for calendar: Google Calendar. However, this error is believed to be minor, so the program will attempt to continue. Error code: DAV_NOT_DAV. Description: The resource at https://www.google.com/calendar/dav/[...]/events is either not a DAV collection or not available Warning: There has been an error reading data for calendar: Google Calendar. However, this error is believed to be minor, so the program will attempt to continue. Error code: READ_FAILED. Description:
It seems to be caused by enabling SPDY (Bug 724563). It works fine again if I set "network.http.spdy.enabled" to "false".
Summary: Accessing Google Calendar via CalDAV Provider is broken [CalDAV: Status 400 on initial PROPFIND] → Accessing Google Calendar via CalDAV Provider is broken with SPDY [CalDAV: Status 400 on initial PROPFIND]
I'm not familiar with caldav or lightning.. can you provide pointers?
Lightning (https://www.mozilla.org/projects/calendar/lightning/) is a calendaring extension for Thunderbird and SeaMonkey. Nightly builds can be found at https://ftp.mozilla.org/pub/mozilla.org/calendar/lightning/nightly/latest-comm-central/ The instructions on how to setup access to Google Calendar using the CalDAV protocol can be found at https://support.google.com/calendar/bin/answer.py?hl=en&answer=99358#sunbird Source code is at http://mxr.mozilla.org/comm-central/source/calendar/providers/caldav/
thanks stefan. I'll look into it.
(In reply to Stefan Sitter from comment #3) > The instructions on how to setup access to Google Calendar using the CalDAV The quickie answer is: Location = https://www.google.com/calendar/dav/[YourGMailAddress]/events
Time for a round of thank you's, some great collaboration here: Stefan, thank you very much for the great analysis where this problem comes from. Peter, thanks for reporting this issue and giving the initial hint. Patrick, thanks in advance for finding out whats going wrong here.
the issue was that the internal http<>spdy request conversion code assumed non-core http methods didn't have message bodies and propfind (among others probably) do. Patch forthcoming. I was skeptical that google was actually providing spdy services for caldav, but they are (I'm not sure if they know it either) :).. and I suspect lightning is the world's first spdy caldav client. I do have to note, however, that lightning was completely unusable for me when I tried to hook it up to my normal gcal calendar. That calendar is 5 years old and has thousands of events. The main thread just spun and spun for long periods, it took me 5 minutes just to dismiss a reminder box that came up with hundreds of old events. Insanely painful - eventually I just had to make a new profile with a new gcal account to troubleshoot this bug. That worked fine.
Status: NEW → ASSIGNED
Whiteboard: [spdy]
Attached patch patch 0Splinter Review
Assignee: nobody → mcmanus
Attachment #598350 - Flags: review?(honzab.moz)
Component: Provider: CalDAV → Networking: HTTP
OS: Windows 7 → All
Product: Calendar → Core
QA Contact: caldav-provider → networking.http
Hardware: x86 → All
Summary: Accessing Google Calendar via CalDAV Provider is broken with SPDY [CalDAV: Status 400 on initial PROPFIND] → Accessing Google Calendar via CalDAV protocol in Lightning is broken with SPDY
Version: Lightning 1.5 → 13 Branch
Comment on attachment 598350 [details] [diff] [review] patch 0 Review of attachment 598350 [details] [diff] [review]: ----------------------------------------------------------------- I have to say that one empty body and two duplicates are unusual :) But I got understanding what it does easily at the first look. r=honzab
Attachment #598350 - Flags: review?(honzab.moz) → review+
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
With Reminderfox it seems we are the second(?) CalDAV calendar running into the SPDY problem. Working with Google Calendar is was no problem until Firefox 33 or Thunderbird 33. After upgrading to FX34/Nightly sync with Google Calendar failed with similar error described by Stefan before (see comments https://bugzilla.mozilla.org/show_bug.cgi?id=727943#c0) Confirming > It works fine again if I set "network.http.spdy.enabled" to "false". also here. A FX34 snippet of a REPORT request "network.http.spdy.enabled" to "true".: > PROPFIND https://www.googleapis.com/caldav/v2/username%40gmail.com/events/ > Authorization: Bearer ya29.qABfXXa.........szm49koY- > Depth: 0 > Content-Type: application/xml > <d:propfind xmlns:d="DAV:" xmlns:cs="http://calendarserver.org/ns/"> > <d:prop> > <d:displayname /> > <cs:getctag /> > </d:prop> > </d:propfind> > > -- response -- > 207 No Reason Phrase > Alternate-Protocol: 443:quic,p=0.01 > Cache-Control: private, max-age=0 > Content-Encoding: gzip > Content-Length: 346 > Content-Type: text/xml; charset=UTF-8 > Date: Fri, 24 Oct 2014 02:07:15 GMT > Expires: Fri, 24 Oct 2014 02:07:15 GMT > Server: GSE > Vary: Origin, Referer, X-Origin > x-content-type-options: nosniff > X-Frame-Options: SAMEORIGIN > X-XSS-Protection: 1; mode=block > X-Firefox-Spdy: h2-14 On FX34 setting "network.http.spdy.enabled" to "false" with the same request: > -- response -- > 207 Multi-Status > Vary: Origin, Referer, X-Origin > Content-Type: text/xml; charset=UTF-8 > Content-Encoding: gzip > Date: Fri, 24 Oct 2014 02:47:49 GMT > Expires: Fri, 24 Oct 2014 02:47:49 GMT > Cache-Control: private, max-age=0 > x-content-type-options: nosniff > X-Frame-Options: SAMEORIGIN > X-XSS-Protection: 1; mode=block > Server: GSE > Alternate-Protocol: 443:quic,p=0.01 > Transfer-Encoding: chunked So NO **X-Firefox-Spdy** is returned! Another observation: the FF 34 response header is slightly different: > X-Firefox-Spdy: h2-14 versus FF 33: > X-Firefox-Spdy: 3.1 Because setting "network.http.spdy.enabled" to "false" may limit some other communication feature this can't be the final solution. >> Need to reopen this bug?!
you're bumping into 1072525 - which is believed to be a google.com problem with DAV and their h2 implementation
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: