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