Sunbirdにやられた

(超ひさしぶりの更新です。)

MacOSX Server (Leopard) で CalDAV / Sunbirdでアクセス

SunbirdLeopardiCal サービスに作成したカレンダーを閲覧・修正できます。 やり方は Jonathan Saggau's Blog: Leopard server, calDAV, and Mozilla Sunbird が詳しいです。

問題

スケジュールがある一定数を超えた際に、Sunbirdからの閲覧ができなくなってしまった。
caldavd のログを見る (/var/log/caldavd/error.log) と、

2008-05-14 17:32:06+0900 [-] [caldav-8009] [-] 'Too many matching components in calendar-query report'

というエラーが出ている。

原因

Appleの掲示板での議論 によれば、Sunbirdが一度に多くの件数を取得しようとしているためらしい。さらに、これはCalDAVの仕様からいって正しくないという事らしい。

Note that the use of a limit is clearly discussed in the specification and well-behaved clients must account for that possibility.

とりあえずの対策

iCalサーバーのソースを弄ってmax_number_of_results を変更。 iCal サービスの再起動を忘れずに。

bash-3.2# pwd
/usr/share/caldavd/lib/python/twistedcaldav/method
bash-3.2# vi report_calquery.py
bash-3.2# rcsdiff -r1.1 -r1.2 report_calquery.py
===================================================================
RCS file: RCS/report_calquery.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -r1.1 -r1.2
41c41< max_number_of_results = 1000

    • -

> max_number_of_results = 10000

Sunbirdの中の人にはまだ連絡していません。あるいは既知の問題かもしれません。

(2008/5/31) Bugzillaにポストしてみました。英語がまずいかもしれないけれど、伝わるだろうか?
https://bugzilla.mozilla.org/show_bug.cgi?id=436641