A couple things I forgot to add to the previous email:

* an example transaction wait log entry looks like this:
2015-02-06 11:28:15-0800 [-] [caldav-3]  [-] [txdav.common.datastore.sql#error] 
Transaction wait: PG-TXN<ultimatelyPerform: 28243 
<SCHEDULE_ORGANIZER_SEND_WORK>>, Statements: 745, IUDs: 724, Statement: select 
WORK_ID, JOB_ID, ICALENDAR_UID, WORK_TYPE from SCHEDULE_WORK where 
ICALENDAR_UID = %s and WORK_ID != %s order by WORK_ID asc limit %s

* If you set the Statistics sub-key to true, every DB transaction will be 
logged to a separate sqlstats.log file adjacent to error.log. This might be 
useful if you really want to see everything happening in the DB.

-dre

> On Feb 6, 2015, at 11:28 AM, Andre LaBranche <d...@apple.com> wrote:
> 
>> 
>> 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 
> <mailto:calendarserver-users@lists.macosforge.org>
> https://lists.macosforge.org/mailman/listinfo/calendarserver-users 
> <https://lists.macosforge.org/mailman/listinfo/calendarserver-users>
_______________________________________________
calendarserver-users mailing list
calendarserver-users@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/calendarserver-users

Reply via email to