> On Feb 5, 2015, at 7:58 PM, Jacques Distler <dist...@golem.ph.utexas.edu> 
> wrote:
> 
> 
>> On Feb 5, 2015, at 8:28 PM, Andre LaBranche <d...@apple.com> wrote:
>> 
>> To enable 'accounting' logs for Calendar Server, edit caldavd.plist to add 
>> target principals whose activity should be logged, e.g.:
>> 
>>    <!-- Enable accounting for certain operations -->
>>    <key>AccountingCategories</key>
>>    <dict>
>>      <key>iTIP</key>
>>      <false/>
>>      <key>HTTP</key>
>>      <true/>
>>    </dict>
>> 
>>    <!-- Enable accounting for specific principals -->
>>    <key>AccountingPrincipals</key>
>>    <array>
>>      
>> <string>/principals/__uids__/454D85C0-09F0-4DC6-A3C6-97DFEB4622CD/</string>
>>    </array>
>> 
>> Once the change is made, HUP the master process or restart the service. The 
>> logs are written to an 'accounting' directory adjacent to the other logs.
> 
> OK, so I did that, and I now have a directory full of text files containing 
> request/response pairs. But they all look like they completed successfully.
> 
> Does the server not log ABORTED responses (which, after all, is what we are 
> talking about here)?

Hi,

I don't think we log things we cannot send back to the client, just that the 
connection was aborted.

In general, this log message means one of two things:

1) We successfully wrote all response data to the client and called 
socket.close() and that took more than 20 secs to complete

2) We timed out the connection because the response took more than 5 mins to 
generate and when trying to call socket.close() that timed out after 20 secs

Based on your original description, I'm leaning towards #2. We can try enabling 
some database logging to see what's happening and how long it's taking. In 
caldavd.plist, create a LogDatabase dict that looks like this:

    <key>LogDatabase</key>
    <dict>
        <key>TransactionWaitSeconds</key>
        <integer>30</integer>
        <key>Statistics</key>
        <false/>
    </dict>

Then HUP or bounce the service. You should now see entries in error.log 
whenever a running database transaction lasts longer than 30 seconds. If you 
can link those entries to the requests from your clients with large calendars, 
that strongly suggests that these requests are now taking long enough that the 
client gives up.

While there is a server-side timeout, the client's timeout (if you're using 
Apple clients) is less than our default, so adjusting our timeout will likely 
not help.

Once we can identify what types of transactions are taking too long, maybe we 
can offer some advice on how to proceed.

-dre
_______________________________________________
calendarserver-users mailing list
calendarserver-users@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/calendarserver-users

Reply via email to