Looks like the lookups only happen on import :)

I have used CalDAVClientLibrary to connect to the server and run a simple ls on a users calendar directory and it results in the script erroring with "Connection reset by peer", it really seems like the server cannot process large amounts of .ics files (this user has about 2500 .ics fileS). It took almost 5min before the reset by peer happened.
/calendars/users/henk/calendar > logging
HTTP logging turned on
/calendars/users/henk/calendar > props

        <-------- BEGIN HTTP CONNECTION -------->
Server: ical.ripe.net

        <-------- BEGIN HTTP REQUEST -------->
PROPFIND /calendars/users/henk/calendar/ HTTP/1.1
Host: ical.ripe.net
Authorization: Digest username="smcavoy", realm="/Search", 
nonce="43994434910922769081766855450", uri="/calendars/users/henk/calendar/", 
response="449d36a475477c2fe48c98b9caae4722", algorithm="md5"
Content-Length: 110
Content-Type: text/xml; charset=utf-8
Depth: 0

<?xml version='1.0' encoding='utf-8'?>
<ns0:propfind xmlns:ns0="DAV:">
  <ns0:propname />
</ns0:propfind>

        <-------- BEGIN HTTP RESPONSE -------->
HTTP/1.1 207 Multi-Status
Content-Length: 1125
Accept-Ranges: bytes
Server: Twisted/2.5.0 TwistedWeb/[twisted.web2, version 0.2.0] 
TwistedCalDAV/1.2 (unknown)
Last-Modified: Tue, 17 Feb 2009 06:46:18 GMT
DAV: 1, access-control, calendar-access, calendar-schedule, 
calendar-availability, inbox-availability, calendar-proxy
ETag: "13725B-123CA-499A5D3A"
Date: Tue, 17 Feb 2009 15:58:47 GMT
Content-Type: text/xml
<?xml version='1.0' encoding='UTF-8'?>
<multistatus xmlns='DAV:'>
  <response>
    <href>/calendars/users/henk/calendar/</href>
    <propstat>
      <prop>
        <current-user-privilege-set/>
        <quota-used-bytes/>
        <supported-calendar-data xmlns='urn:ietf:params:xml:ns:caldav'/>
        <getetag/>
        <supported-calendar-component-set 
xmlns='urn:ietf:params:xml:ns:caldav'/>
        <owner/>
        <displayname/>
        <inherited-acl-set/>
        <calendar-color xmlns='http://apple.com/ns/ical/'/>
        <getctag xmlns='http://calendarserver.org/ns/'/>
        <getcontenttype/>
        <supportedlock/>
        <acl-restrictions/>
        <resourcetype/>
        <supported-report-set/>
        <acl/>
        <getcontentlength/>
        <supported-privilege-set/>
        <getlastmodified/>
        <principal-collection-set/>
        <creationdate/>
        <resource-class xmlns='http://twistedmatrix.com/xml_namespace/dav/'/>
        <quota-available-bytes/>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

        <-------- END HTTP RESPONSE -------->

        <-------- END HTTP CONNECTION -------->

        <-------- BEGIN HTTP CONNECTION -------->
Server: ical.ripe.net

        <-------- BEGIN HTTP REQUEST -------->
PROPFIND /calendars/users/henk/calendar/ HTTP/1.1
Host: ical.ripe.net
Authorization: Digest username="smcavoy", realm="/Search", 
nonce="43994434910922769081766855450", uri="/calendars/users/henk/calendar/", 
response="449d36a475477c2fe48c98b9caae4722", algorithm="md5"
Content-Length: 1022
Content-Type: text/xml; charset=utf-8
Depth: 0

<?xml version='1.0' encoding='utf-8'?>
<ns0:propfind xmlns:ns0="DAV:">
  <ns0:prop>
    <ns0:displayname />
    <ns0:owner />
    <ns0:supportedlock />
    <ns0:supported-privilege-set />
    <ns0:getcontenttype />
    <ns1:supported-calendar-data xmlns:ns1="urn:ietf:params:xml:ns:caldav" />
    <ns0:acl />
    <ns0:supported-report-set />
    <ns0:creationdate />
    <ns0:current-user-privilege-set />
    <ns1:supported-calendar-component-set 
xmlns:ns1="urn:ietf:params:xml:ns:caldav" />
    <ns0:quota-available-bytes />
    <ns1:getctag xmlns:ns1="http://calendarserver.org/ns/"; />
    <ns1:resource-class xmlns:ns1="http://twistedmatrix.com/xml_namespace/dav/"; 
/>
    <ns0:resourcetype />
    <ns0:getetag />
    <ns0:quota-used-bytes />
    <ns0:principal-collection-set />
    <ns0:getcontentlength />
    <ns0:acl-restrictions />
    <ns0:inherited-acl-set />
    <ns0:getlastmodified />
    <ns1:calendar-color xmlns:ns1="http://apple.com/ns/ical/"; />
  </ns0:prop>
</ns0:propfind>

        <-------- BEGIN HTTP RESPONSE -------->
HTTP/1.1 207 Multi-Status
Content-Length: 6566
Accept-Ranges: bytes
Server: Twisted/2.5.0 TwistedWeb/[twisted.web2, version 0.2.0] 
TwistedCalDAV/1.2 (unknown)
Last-Modified: Tue, 17 Feb 2009 06:46:18 GMT
DAV: 1, access-control, calendar-access, calendar-schedule, 
calendar-availability, inbox-availability, calendar-proxy
ETag: "13725B-123CA-499A5D3A"
Date: Tue, 17 Feb 2009 15:58:47 GMT
Content-Type: text/xml
<?xml version='1.0' encoding='UTF-8'?>
<multistatus xmlns='DAV:'>
  <response>
    <href>/calendars/users/henk/calendar/</href>
    <propstat>
      <prop>
        <displayname>calendar</displayname>
        <owner>
          
<href>/principals/__uids__/D882088F-33AD-4CBD-8EB0-BD9430ADC65D/</href>
        </owner>
        <supportedlock>
          <lockentry>
            <lockscope>
              <exclusive/>
            </lockscope>
            <locktype>
              <write/>
            </locktype>
          </lockentry>
          <lockentry>
            <lockscope>
              <shared/>
            </lockscope>
            <locktype>
              <write/>
            </locktype>
          </lockentry>
        </supportedlock>
        <supported-privilege-set>
          <supported-privilege>
            <privilege>
              <all/>
            </privilege>
            <description xml:lang='en'>all privileges</description>
            <supported-privilege>
              <privilege>
                <read/>
              </privilege>
              <description xml:lang='en'>read resource</description>
              <supported-privilege>
                <privilege>
                  <read-free-busy xmlns='urn:ietf:params:xml:ns:caldav'/>
                </privilege>
                <description xml:lang='en'>allow free busy report 
query</description>
              </supported-privilege>
            </supported-privilege>
            <supported-privilege>
              <privilege>
                <write/>
              </privilege>
              <description xml:lang='en'>write resource</description>
              <supported-privilege>
                <privilege>
                  <write-properties/>
                </privilege>
                <description xml:lang='en'>write resource 
properties</description>
              </supported-privilege>
              <supported-privilege>
                <privilege>
                  <write-content/>
                </privilege>
                <description xml:lang='en'>write resource content</description>
              </supported-privilege>
              <supported-privilege>
                <privilege>
                  <bind/>
                </privilege>
                <description xml:lang='en'>add child resource</description>
              </supported-privilege>
              <supported-privilege>
                <privilege>
                  <unbind/>
                </privilege>
                <description xml:lang='en'>remove child resource</description>
              </supported-privilege>
            </supported-privilege>
            <supported-privilege>
              <privilege>
                <unlock/>
              </privilege>
              <description xml:lang='en'>unlock resource without ownership of 
lock</description>
            </supported-privilege>
            <supported-privilege>
              <privilege>
                <read-acl/>
              </privilege>
              <description xml:lang='en'>read resource access control 
list</description>
            </supported-privilege>
            <supported-privilege>
              <privilege>
                <write-acl/>
              </privilege>
              <description xml:lang='en'>write resource access control 
list</description>
            </supported-privilege>
            <supported-privilege>
              <privilege>
                <read-current-user-privilege-set/>
              </privilege>
              <description xml:lang='en'>read privileges for current 
principal</description>
            </supported-privilege>
          </supported-privilege>
        </supported-privilege-set>
        <getcontenttype>httpd/unix-directory</getcontenttype>
        <supported-calendar-data xmlns='urn:ietf:params:xml:ns:caldav'>
          <calendar-data version='2.0' content-type='text/calendar'/>
        </supported-calendar-data>
        <supported-report-set>
          <supported-report>
            <report>
              <acl-principal-prop-set/>
            </report>
          </supported-report>
          <supported-report>
            <report>
              <principal-match/>
            </report>
          </supported-report>
          <supported-report>
            <report>
              <principal-property-search/>
            </report>
          </supported-report>
          <supported-report>
            <report>
              <calendar-query xmlns='urn:ietf:params:xml:ns:caldav'/>
            </report>
          </supported-report>
          <supported-report>
            <report>
              <calendar-multiget xmlns='urn:ietf:params:xml:ns:caldav'/>
            </report>
          </supported-report>
          <supported-report>
            <report>
              <free-busy-query xmlns='urn:ietf:params:xml:ns:caldav'/>
            </report>
          </supported-report>
        </supported-report-set>
        <creationdate>2009-02-17T07:46:18Z</creationdate>
        <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'>
          <comp name='VEVENT'/>
          <comp name='VTODO'/>
          <comp name='VTIMEZONE'/>
          <comp name='VJOURNAL'/>
          <comp name='VFREEBUSY'/>
        </supported-calendar-component-set>
        <quota-available-bytes>103281933</quota-available-bytes>
        <getctag xmlns='http://calendarserver.org/ns/'>2009-02-17 
07:46:18.642748</getctag>
        <resource-class 
xmlns='http://twistedmatrix.com/xml_namespace/dav/'>CalDAVFile</resource-class>
        <resourcetype>
          <collection/>
          <calendar xmlns='urn:ietf:params:xml:ns:caldav'/>
        </resourcetype>
        <getetag>"13725B-123CA-499A5D3A"</getetag>
        <quota-used-bytes>1575667</quota-used-bytes>
        <principal-collection-set>
          <href>/principals/</href>
        </principal-collection-set>
        <getcontentlength/>
        <acl-restrictions/>
        <inherited-acl-set/>
        <getlastmodified>Tue, 17 Feb 2009 07:46:18 GMT</getlastmodified>
        <calendar-color 
xmlns='http://apple.com/ns/ical/'>#2CA10BFF</calendar-color>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <acl/>
        <current-user-privilege-set/>
      </prop>
      <status>HTTP/1.1 401 Unauthorized</status>
    </propstat>
  </response>
</multistatus>

        <-------- END HTTP RESPONSE -------->

        <-------- END HTTP CONNECTION -------->
OK Properties:
    {DAV:}acl-restrictions: <Element {DAV:}acl-restrictions at 2f1648>
    {DAV:}creationdate: 2009-02-17T07:46:18Z
    {DAV:}displayname: calendar
    {DAV:}getcontentlength: 
    {DAV:}getcontenttype: httpd/unix-directory
    {DAV:}getetag: "13725B-123CA-499A5D3A"
    {DAV:}getlastmodified: Tue, 17 Feb 2009 07:46:18 GMT
    {DAV:}inherited-acl-set: <Element {DAV:}inherited-acl-set at 2f1c60>
    {DAV:}owner: <Element {DAV:}owner at 2d34e0>
    {DAV:}principal-collection-set: URL: /principals/
    {DAV:}quota-available-bytes: <Element {DAV:}quota-available-bytes at 2e6468>
    {DAV:}quota-used-bytes: <Element {DAV:}quota-used-bytes at 2f10d0>
    {DAV:}resourcetype: <Element {DAV:}resourcetype at 2e6ee0>
    {DAV:}supported-privilege-set: <Element {DAV:}supported-privilege-set at 
2ea620>
    {DAV:}supported-report-set: <Element {DAV:}supported-report-set at 2edeb8>
    {DAV:}supportedlock: <Element {DAV:}supportedlock at 2d3440>
    {http://apple.com/ns/ical/}calendar-color: <Element 
{http://apple.com/ns/ical/}calendar-color at 2f1238>
    {http://calendarserver.org/ns/}getctag: <Element 
{http://calendarserver.org/ns/}getctag at 2e6d50>
    {http://twistedmatrix.com/xml_namespace/dav/}resource-class: <Element 
{http://twistedmatrix.com/xml_namespace/dav/}resource-class at 2e60f8>
    {urn:ietf:params:xml:ns:caldav}supported-calendar-component-set: <Element 
{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set at 2e6698>
    {urn:ietf:params:xml:ns:caldav}supported-calendar-data: <Element 
{urn:ietf:params:xml:ns:caldav}supported-calendar-data at 2edd28>
Failed Properties:
    {DAV:}acl: 401
    {DAV:}current-user-privilege-set: 401
/calendars/users/henk/calendar > ls

        <-------- BEGIN HTTP CONNECTION -------->
Server: ical.ripe.net

        <-------- BEGIN HTTP REQUEST -------->
PROPFIND /calendars/users/henk/calendar/ HTTP/1.1
Host: ical.ripe.net
Authorization: Digest username="smcavoy", realm="/Search", 
nonce="43994434910922769081766855450", uri="/calendars/users/henk/calendar/", 
response="449d36a475477c2fe48c98b9caae4722", algorithm="md5"
Content-Length: 145
Content-Type: text/xml; charset=utf-8
Depth: 1

<?xml version='1.0' encoding='utf-8'?>
<ns0:propfind xmlns:ns0="DAV:">
  <ns0:prop>
    <ns0:resourcetype />
  </ns0:prop>
</ns0:propfind>

        <-------- BEGIN HTTP RESPONSE -------->
HTTP/1.1 207 Multi-Status
Content-Length: 507173
Accept-Ranges: bytes
Server: Twisted/2.5.0 TwistedWeb/[twisted.web2, version 0.2.0] 
TwistedCalDAV/1.2 (unknown)
Last-Modified: Tue, 17 Feb 2009 06:46:18 GMT
DAV: 1, access-control, calendar-access, calendar-schedule, 
calendar-availability, inbox-availability, calendar-proxy
ETag: "13725B-123CA-499A5D3A"
Date: Tue, 17 Feb 2009 16:01:09 GMT
Content-Type: text/xml
Traceback (most recent call last):
  File 
"/Users/smcavoy/Projects/iCal/CalDAVClientLibrary/src/browser/baseshell.py", 
line 75, in run
    self.execute(cmdline)
  File 
"/Users/smcavoy/Projects/iCal/CalDAVClientLibrary/src/browser/baseshell.py", 
line 123, in execute
    self.commands[cmd].execute(cmd, options)
  File 
"/Users/smcavoy/Projects/iCal/CalDAVClientLibrary/src/browser/commands/ls.py", 
line 63, in execute
    results = self.shell.account.session.getPropertiesOnHierarchy(resource, 
props)
  File 
"/Users/smcavoy/Projects/iCal/CalDAVClientLibrary/src/client/clientsession.py", 
line 191, in getPropertiesOnHierarchy
    self.runSession(request)
  File 
"/Users/smcavoy/Projects/iCal/CalDAVClientLibrary/src/client/clientsession.py", 
line 525, in runSession
    self.doSession(request)
  File 
"/Users/smcavoy/Projects/iCal/CalDAVClientLibrary/src/client/clientsession.py", 
line 572, in doSession
    self.sendRequest(request)
  File 
"/Users/smcavoy/Projects/iCal/CalDAVClientLibrary/src/protocol/http/session.py",
 line 76, in sendRequest
    self.doRequest(request);
  File 
"/Users/smcavoy/Projects/iCal/CalDAVClientLibrary/src/client/clientsession.py", 
line 651, in doRequest
    self.readResponseData(request, response)
  File 
"/Users/smcavoy/Projects/iCal/CalDAVClientLibrary/src/client/clientsession.py", 
line 696, in readResponseData
    data = response.read()
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/httplib.py",
 line 516, in read
    s = self._safe_read(self.length)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/httplib.py",
 line 598, in _safe_read
    chunk = self.fp.read(min(amt, MAXAMOUNT))
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/socket.py",
 line 309, in read
    data = self._sock.recv(recv_size)
error: (54, 'Connection reset by peer')

this was done against a iCal server running 10.5.6, I plan to do the same with Calendar Server.

On Feb 17, 2009, at 13:53, Sean McAvoy wrote:

Hi,
I think I may have found something.
After importing a very large calendar I ran the calendar server from the terminal (not detached) and noticed 1000s of similar entires: 2009-02-17 13:46:05+0100 [-] [caldav-8009] [-] [twistedcaldav .directory.appleopendirectory.OpenDirectoryService#info] Unable to find any record with email *[email protected]

Could it be that every single event with users attached to it a look up is done and fails? This would explain why large calendars cause problems. It would not however, explain why 1000 entries (no attendees) made in the iCal client results in an non-viewable calendar (others attempting to view it timeout).


On Feb 17, 2009, at 11:30, Sean McAvoy wrote:


On Feb 13, 2009, at 21:17, Cyrus Daboo wrote:

Hi Sean,

--On February 13, 2009 11:49:13 AM +0100 Sean McAvoy <[email protected] > wrote:

I have tried this and found the same basic problem, other users cannot access calendars with lots of events (tested 900-9500 event calendars). Do you have any other suggestions on how to narrow down the problem?

Calendars of several thousand ought to be OK. A lot will depend on disk performance though - are you always using a local disk?
Yes, I am always using local disk RAID 5 on 3 73GB SAS drives. During the peak times I've run both top and iostat, top reports python processes at 100%, iostat reports little activity. I have also created 1000 entries via the iCal client and experienced the same problem, after removing 900 of the entires (using the command line) the problem disappeared.


--
Cyrus Daboo


_______________________________________________
calendarserver-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/calendarserver-users

_______________________________________________
calendarserver-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/calendarserver-users

_______________________________________________
calendarserver-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/calendarserver-users

Reply via email to