[Calypso] Incorrect parsing of rrule?

Petter Reinholdtsen pere at hungry.com
Sun Jan 24 12:11:22 PST 2016


[Petter Reinholdtsen]
> After looking at the code, I suspect the problem is related to the
> content of some calendar entry, but am unsure exactly what.  Anyone got
> any idea what to look for?  The code in question seem to operate og
> rrule entries.

I enabled debugging, and got some more information about the exception.

First line 'REPORT /calendars/user/ HTTP/1.1
'
keep-alive
reqlen 514
Path /calendars/user/ results in collection: /calendars/user
entity Calendar-/calendars/user/ (at /home/calypso/.config/calypso/calcards/calendars/user) user user
REPORT /calendars/user/ <?xml version="1.0" encoding="utf-8"?>
<calendar-query xmlns="urn:ietf:params:xml:ns:caldav">
 <prop xmlns="DAV:">
  <getetag xmlns="DAV:"/>
  <resourcetype xmlns="DAV:"/>
 </prop>
 <filter xmlns="urn:ietf:params:xml:ns:caldav">
  <comp-filter xmlns="urn:ietf:params:xml:ns:caldav" name="VCALENDAR">
   <comp-filter xmlns="urn:ietf:params:xml:ns:caldav" name="VEVENT">
    <time-range xmlns="urn:ietf:params:xml:ns:caldav" start="20151021T201004Z"/>
   </comp-filter>
  </comp-filter>
 </filter>
</calendar-query>
Path /calendars/user/ results in collection: /calendars/user
Path /calendars/user/ results in name: None
Failed REPORT for /calendars/user/
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/calypso/__init__.py", line 495, in do_REPORT
    self._answer = xmlutils.report(self.path, xml_request, self._collection)
  File "/usr/lib/python2.7/dist-packages/calypso/xmlutils.py", line 352, in report
    if not match_filter(item, filter_element):
  File "/usr/lib/python2.7/dist-packages/calypso/xmlutils.py", line 307, in match_filter
    if match_filter_element(item.object, fe):
  File "/usr/lib/python2.7/dist-packages/calypso/xmlutils.py", line 256, in match_filter_element
    if match_filter_element (vc, fc):
  File "/usr/lib/python2.7/dist-packages/calypso/xmlutils.py", line 251, in match_filter_element
    if match_filter_element(vobject, fc):
  File "/usr/lib/python2.7/dist-packages/calypso/xmlutils.py", line 284, in match_filter_element
    end_datetime = dateutil.parser.parse(end)
  File "/usr/lib/python2.7/dist-packages/dateutil/parser.py", line 748, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/usr/lib/python2.7/dist-packages/dateutil/parser.py", line 310, in parse
    res, skipped_tokens = self._parse(timestr, **kwargs)
  File "/usr/lib/python2.7/dist-packages/dateutil/parser.py", line 366, in _parse
    l = _timelex.split(timestr)
  File "/usr/lib/python2.7/dist-packages/dateutil/parser.py", line 150, in split
    return list(cls(s))
  File "/usr/lib/python2.7/dist-packages/dateutil/parser.py", line 147, in next
    return self.__next__()  # Python 2.x support
  File "/usr/lib/python2.7/dist-packages/dateutil/parser.py", line 141, in __next__
    token = self.get_token()
  File "/usr/lib/python2.7/dist-packages/dateutil/parser.py", line 72, in get_token
    nextchar = self.instream.read(1)
AttributeError: 'NoneType' object has no attribute 'read'
84.215.38.245 - - [24/Jan/2016 21:00:43] "REPORT /calendars/user/ HTTP/1.1" 400 -
SSL request error: 'The read operation timed out'
First line 'REPORT /calendars/user/ HTTP/1.1
'
keep-alive
reqlen 513
Path /calendars/user/ results in collection: /calendars/user
entity Calendar-/calendars/user/ (at /home/calypso/.config/calypso/calcards/calendars/user) user user
REPORT /calendars/user/ <?xml version="1.0" encoding="utf-8"?>
<calendar-query xmlns="urn:ietf:params:xml:ns:caldav">
 <prop xmlns="DAV:">
  <getetag xmlns="DAV:"/>
  <resourcetype xmlns="DAV:"/>
 </prop>
 <filter xmlns="urn:ietf:params:xml:ns:caldav">
  <comp-filter xmlns="urn:ietf:params:xml:ns:caldav" name="VCALENDAR">
   <comp-filter xmlns="urn:ietf:params:xml:ns:caldav" name="VTODO">
    <time-range xmlns="urn:ietf:params:xml:ns:caldav" start="20151021T201004Z"/>
   </comp-filter>
  </comp-filter>
 </filter>
</calendar-query>
Path /calendars/user/ results in collection: /calendars/user
Path /calendars/user/ results in name: None
REPORT ANSWER <ns0:multistatus xmlns:ns0="DAV:" />
84.215.38.245 - - [24/Jan/2016 21:00:48] "REPORT /calendars/user/ HTTP/1.1" 207 -

Is the problem perhaps that the <time-range> xml tag is missing an end
tag?  Is this required by the protocol?

-- 
Happy hacking
Petter Reinholdtsen


More information about the Calypso mailing list