I have been digging a little more and added a http traffic sniffer in between. 
The content that gets discarded is sent as part of a PUT request from the iOS 
to the  owncloud server and it gets an error: HTTP/1.1 412 Precondition failed

Here is the complete request/response pair.

Response first:
HTTP/1.1 412 Precondition failed
Date: Fri, 31 Aug 2012 19:17:52 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Keep-Alive: timeout=10, max=30
Connection: Keep-Alive
Content-Type: application/xml; charset=utf-8
Content-Length: 369

<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns";>
  <s:exception>Sabre_DAV_Exception_PreconditionFailed</s:exception>
  <s:message>An If-None-Match header was specified, but the ETag matched (or * 
was specified).</s:message>
  <s:sabredav-version>1.6.2</s:sabredav-version>
  <s:header>If-None-Match</s:header>
</d:error>


Request as well:
PUT 
/owncloud/remote.php/caldav/calendars/family/default%20calendar/2DFD2DCA-ACE5-44DD-A025-ABE268077278.ics
 HTTP/1.1
User-Agent: iOS/5.1.1 (9B206) dataaccessd/1.0
Content-Length: 731
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
If-None-Match: *
Content-Type: text/calendar; charset=utf-8
Cookie: PHPSESSID=2dcal5ksm4vd2jto4vqvfh1s02
Connection: keep-alive
Proxy-Connection: keep-alive
Authorization: Basic ZmFtaWx5OmQuTHBoaW4=

BEGIN:VCALENDAR
CALSCALE:GREGORIAN
PRODID:-//Apple Inc.//iOS 5.1.1//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:America/New_York
BEGIN:DAYLIGHT
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
TZNAME:EDT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZNAME:EST
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20120831T190906Z
DTEND;TZID=America/New_York:20120831T180000
DTSTAMP:20120831T191752Z
DTSTART;TZID=America/New_York:20120831T170000
LAST-MODIFIED:20120831T191521Z
SEQUENCE:7
SUMMARY:Test
TRANSP:OPAQUE
UID:2DFD2DCA-ACE5-44DD-A025-ABE268077278
END:VEVENT
END:VCALENDAR


Any help is greatly appreciated

Stephan

On Aug 31, 2012, at 1:32 PM, Stephan Hesmer <[email protected]> wrote:

> Hello everybody,
> 
> I have been using OwnCloud for the past two months and are very excited about 
> it - I simply love it.
> 
> Unfortunately I stumbled upon a bug which is hard to track down in the code, 
> otherwise I would have reported it earlier. At least by now I am certain that 
> the error is not caused on my side, e.g. hosting.
> 
> How to reproduce:
> 1. Use iOS device with version 5.1.1
> 2. Connect to your owncloud server using CalDAV
> - I have been using my own server on hostmonster.com with https, but I get 
> the same error on owncube.com with a personal account
> 3. Create a new event in the standard calendar app
> 4. Update the starting time 4 times in a row.
> 4.1. It is important to press done so that you start the sync process in the 
> background
> 4.2. So click on the event, press edit, click on the time, select one hour 
> later, press done, press done, now start with edit again.
> 5. After this has been done 4 times in a row wait for the update icon in the 
> top bar to finish. You will notice that the event suddenly jumps to an 
> earlier time and not the latest.
> => Result: your latest update is lost.
> 
> I can reproduce this with every field, I just used the start/end time here to 
> have an as simple usecase as possible.
> 
> Example:
> Create Event on 8/31 at 2pm. Immediately update to 3pm, then immediately to 
> 4pm, then immediately to 5pm, the immediately to 6pm.
> After the sync process finished it usually jumps back to 4pm or 5 pm - 
> correct would be 6pm.
> 
> Notes:
> * I am using OwnCloud 4.0.7
> * I can reproduce this with an empty calender on owncube.com and my ownserver 
> with a calender running on MySQL and SQLlite.
> * I believe this is a runtime condition because the error doesn't happen all 
> the time, but the more events you have in your calender the more likely it is 
> to appear. In the test above with an empty calender you have to do all of 
> those steps without a pause to have the error show up.
> * There is no error in the php error log
> 
> I was trying to look at the code but don't know the flow from the remote.php 
> into the calDAV code, especially since there is the 3rd party code that 
> handles all the syncing.
> I am more than happy to help the community out in debugging this issue but 
> need a bit help along the way to find the right files. Is there any tracing I 
> can turn on? And where would I find that?
> 
> At this point I am very dedicated to this because if I cannot fix this, I 
> have to move back to zimbra where the error did not appear, but I love 
> owncloud too much as that I want to abandon it :)
> 
> Thanks so much and looking forward working with you
> Stephan
> _______________________________________________
> Owncloud mailing list
> [email protected]
> https://mail.kde.org/mailman/listinfo/owncloud

_______________________________________________
Owncloud mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/owncloud

Reply via email to