[OBMFULL-5922] T#10053 T#10377 Some events aren't synchronized from OBM to Lightning Created: 14/Apr/14  Updated: 15/Jan/15  Resolved: 12/Sep/14

Status: Closed
Project: OBM
Component/s: opush, ui
Affects Version/s: 2.5.7
Fix Version/s: 2.5.8

Type: Bug Priority: Normal
Reporter: David Dolcimascolo Assignee: jeremie kornobis
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File obm-connector-log.txt     Text File obm-sync&opushLog.txt    
Issue Links:
Cloners
is cloned by OBMFULL-6043 CLONE 3.0 - T#10053 T#10377 Some even... Closed
is cloned by OBMFULL-6113 T#10053 T#10377 Some events aren't sy... Closed
Relates
relates to OBMFULL-5304 An occurence deleted in ui in edit fo... Closed
Similar Issues: Show 10 results 
Rank: 6136

 Description   

Information

We don't know which event types/details trigger the issue, but two of our major clients do reproduce the issue. It's at least worth trying to reproduce.

Tosca

https://www.08000linux.com/lstm/issues/10377
https://www.08000linux.com/lstm/issues/10053-Ev-nements-non-visibles-dans-TB



 Comments   
Comment by jeremie kornobis [ 30/Jun/14 ]

Test

Before patch

  • Create exdate to recurrent event
  • Check in database, event exception have bad time (22H the day before the good day)

After patch :

  • Check in database, event exception have good time setted, event exception works in TB : OK
Comment by Jenkins Continuous Integration Server [ 01/Jul/14 ]

SUCCESS: Integrated in poll-qa-25 308-54e6437102c74b9d1ee7f7c3700846aeea9f134a
OBMFULL-5922 Good date and time format for removed exception (thilaire: 762d360c0ef812e58ee359b2b3fd29423982b5d6)

  • ui/php/calendar/calendar_index.php
Comment by Stephane COLSON [ 08/Jul/14 ]

With OBM 2.5.8-0.alpha0+git20140701_1725_54e6437, TB24 + connector 4.0.5s + ligthning 2.6.5

Case 1 - Reproduction steps

  1. As usera with ui, create a recurrent event
  2. As usera with ui, click on the title of one occurence
  3. Edit this event
  4. Click on Delete

Current behavior

  1. The event is deleted in ui OK
  2. The event is deleted in TBird OK

Additional informations

With version 2.5.7, the deleted occurence was not removed from TBird

Case 2 - Reproduction steps

  1. As usera with ui, create a recurrent event
  2. As usera with iphone, open one occurence and delete it# Edit this event
  3. Synchronize

Current behavior

  1. The occurence is deleted in ui OK
  2. The occurence is not deleted in TBird NOK

Additional informations

With version 2.5.7, the deleted occurence was not removed from TBird

Additional informations

Same behavior as with version 2.5.7. Apparently what is described in https://www.08000linux.com/lstm/issues/10377 is not correct

If there is any other test case ? Please describe it here...

Comment by Ba Tuan NGO [ 29/Aug/14 ]

Reproduce Case 2:
Impacts: The exception event is converted wrongly in opush

Request From iphone to OPUSH:

<?xml version="1.0" encoding="UTF-8"?><Sync>
<Collections>
<Collection>
<SyncKey>bb874d35-19e6-49ba-944f-63cdbee00100</SyncKey>
<CollectionId>1</CollectionId>
<DeletesAsMoves/>
<GetChanges/>
<WindowSize>5</WindowSize>
<Options>
<FilterType>4</FilterType>
<BodyPreference>
<Type>2</Type>
<TruncationSize>102400</TruncationSize>
</BodyPreference>
<Conflict>1</Conflict>
</Options>
<Commands>
<Change>
<ServerId>1:4</ServerId>
<ApplicationData>
<TimeZone>xP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAFAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAIAAAAAAAAAxP///w==</TimeZone>
<AllDayEvent>0</AllDayEvent>
<BusyStatus>2</BusyStatus>
<DTStamp>20140901T153631Z</DTStamp>
<EndTime>20140901T070000Z</EndTime>
<MeetingStatus>0</MeetingStatus>
<Sensitivity>0</Sensitivity>
<Subject>daily test</Subject>
<StartTime>20140901T060000Z</StartTime>
<UID>373038626139376262386336613135633233333237633862393935326139303038636633336334623564613431373435653435323439346139343364356433356264663630313264366564356264626234353233353138396562623363343136303737356266393861633766396661613064626538313865616364663135666264376339633135626336653832323638</UID>
<Attendees>
<Attendee>
<AttendeeName>user A</AttendeeName>
<AttendeeEmail>usera@obmv2.lng</AttendeeEmail>
<AttendeeType>1</AttendeeType>
</Attendee>
</Attendees>
<Recurrence>
<RecurrenceInterval>1</RecurrenceInterval>
<RecurrenceType>0</RecurrenceType>
</Recurrence>
<Exceptions>
<Exception>
<ExceptionIsDeleted>1</ExceptionIsDeleted>
<ExceptionStartTime>20140930T060000Z</ExceptionStartTime>
</Exception>
</Exceptions>
</ApplicationData>
</Change>
</Commands>
</Collection>
</Collections>
</Sync>

........................
Request From OPUSH to OBM-SYNC:

[t19/c/r39/] action /login/doLogin, request {origin=[o-push], login=[usera@obmv2.lng], password=[usera]}

Response of OBM-SYNC to OPUSH:

response <?xml version="1.0" encoding="UTF-8"?><token xmlns="http://www.obm.org/xsd/sync/token.xsd">
<sid>dcbb6f9f-87af-4f38-bd3b-aa9017617ac1</sid>
<version major="2" minor="5" release="8"/>
<email>usera@obmv2.lng</email>
<displayname>user A</displayname>
<domain uuid="7135ef5f-13b6-3883-ec0f-0e2ce4f1bfdd">obmv2.lng</domain>
<settings>
<setting name="set_allday_opacity">TRANSPARENT</setting>
<setting name="set_cal_display_days">1111111</setting>
<setting name="set_cal_first_hour">8</setting>
<setting name="set_cal_interval">2</setting>
<setting name="set_cal_last_hour">20</setting>
<setting name="set_commentorder">0</setting>
<setting name="set_csv_sep">;</setting>
<setting name="set_date">Y-m-d</setting>
<setting name="set_date_upd">m/d/Y</setting>
<setting name="set_day_weekstart">monday</setting>
<setting name="set_debug">0</setting>
<setting name="set_display">no</setting>
<setting name="set_dsrc">0</setting>
<setting name="set_lang">fr</setting>
<setting name="set_mail">yes</setting>
<setting name="set_mail_participation">yes</setting>
<setting name="set_menu">both</setting>
<setting name="set_public_fb">0</setting>
<setting name="set_rows">20</setting>
<setting name="set_theme">default</setting>
<setting name="set_timeformat">24H</setting>
<setting name="set_timezone">Europe/Paris</setting>
<setting name="set_todo">event_priority</setting>
</settings>
<server-capabilities>
<server-capability name="CONFIDENTIAL_EVENTS">true</server-capability>
<server-capability name="CALENDAR_HANDLER_SUPPORTS_NOTALLOWEDEXCEPTION">true</server-capability>
<server-capability name="ADDRESS_BOOK_HANDLER_SUPPORTS_STORECONTACT">true</server-capability>
<server-capability name="CALENDAR_HANDLER_SUPPORTS_PAGINATION">true</server-capability>
<server-capability name="CALENDAR_HANDLER_SUPPORTS_STOREEVENT">true</server-capability>
<server-capability name="SERVER_SIDE_ANONYMIZATION">true</server-capability>
</server-capabilities>
</token>

Request From OPUSH to OBM-SYNC:

 action /calendar/getEventFromId, request {id=[4], sid=[dcbb6f9f-87af-4f38-bd3b-aa9017617ac1], calendar=[usera]}

Response of OBM-SYNC to OPUSH:

response <?xml version="1.0" encoding="UTF-8"?><event xmlns="http://www.obm.org/xsd/sync/event.xsd" allDay="false" anonymized="false" id="4" isInternal="true" sequence="0" type="VEVENT">
<timeupdate>1409585662745</timeupdate>
<timecreate>1409585662729</timecreate>
<extId>708ba97bb8c6a15c23327c8b9952a9008cf33c4b5da41745e452494a943d5d35bdf6012d6ed5bdbb45235189ebb3c4160775bf98ac7f9faa0dbe818eacdf15fbd7c9c15bc6e82268</extId>
<opacity>OPAQUE</opacity>
<title>daily test</title>
<owner>usera</owner>
<ownerEmail>usera@obmv2.lng</ownerEmail>
<tz>Europe/Paris</tz>
<date>1409551200000</date>
<duration>3600</duration>
<priority>2</priority>
<privacy>0</privacy>
<attendees>
<attendee displayName="user A" email="usera@obmv2.lng" isOrganizer="true" percent="0" required="REQ" state="ACCEPTED"/>
</attendees>
<recurrence days="" freq="1" kind="daily">
<exceptions/>
<eventExceptions/>
</recurrence>
</event>

Request From OPUSH to OBM-SYNC:

action /calendar/modifyEvent, request {updateAttendees=[true], sid=[dcbb6f9f-87af-4f38-bd3b-aa9017617ac1], event=[<?xml version="1.0" encoding="UTF-8"?><event xmlns="http://www.obm.org/xsd/sync/event.xsd" allDay="false" anonymized="false" id="4" isInternal="true" sequence="0" type="VEVENT"><timeupdate>1409585791000</timeupdate><timecreate>1409585662729</timecreate><extId>708ba97bb8c6a15c23327c8b9952a9008cf33c4b5da41745e452494a943d5d35bdf6012d6ed5bdbb45235189ebb3c4160775bf98ac7f9faa0dbe818eacdf15fbd7c9c15bc6e82268</extId><opacity>OPAQUE</opacity><title>daily test</title><ownerEmail>usera@obmv2.lng</ownerEmail><tz>Europe/Paris</tz><date>1409551200000</date><duration>3600</duration><priority>2</priority><privacy>0</privacy><attendees><attendee displayName="user A" email="usera@obmv2.lng" isOrganizer="true" percent="0" required="REQ" state="ACCEPTED"/></attendees><recurrence days="" freq="1" kind="daily"><exceptions><exception>1412028000000</exception></exceptions><eventExceptions/></recurrence></event>], notification=[true], calendar=[usera]}

Response of OBM-SYNC to OPUSH:

response <?xml version="1.0" encoding="UTF-8"?><event xmlns="http://www.obm.org/xsd/sync/event.xsd" allDay="false" anonymized="false" id="4" isInternal="true" sequence="0" type="VEVENT">
<timeupdate>1409585795985</timeupdate>
<timecreate>1409585662729</timecreate>
<extId>708ba97bb8c6a15c23327c8b9952a9008cf33c4b5da41745e452494a943d5d35bdf6012d6ed5bdbb45235189ebb3c4160775bf98ac7f9faa0dbe818eacdf15fbd7c9c15bc6e82268</extId>
<opacity>OPAQUE</opacity>
<title>daily test</title>
<owner>usera</owner>
<ownerEmail>usera@obmv2.lng</ownerEmail>
<tz>Europe/Paris</tz>
<date>1409551200000</date>
<duration>3600</duration>
<priority>2</priority>
<privacy>0</privacy>
<attendees>
<attendee displayName="user A" email="usera@obmv2.lng" isOrganizer="true" percent="0" required="REQ" state="ACCEPTED"/>
</attendees>
<recurrence days="" freq="1" kind="daily">
<exceptions>
<exception>1412028000000</exception>
</exceptions>
<eventExceptions/>
</recurrence>
</event>

Response From OPUSH to iphone:

<?xml version="1.0" encoding="UTF-8"?><Sync>
<Collections>
<Collection>
<Class>Calendar</Class>
<SyncKey>b0c3683a-d2bd-49e2-8b46-c3abc2ec209c</SyncKey>
<CollectionId>1</CollectionId>
<Status>1</Status>
<Commands>
<Change>
<ServerId>1:4</ServerId>
<ApplicationData>
<Calendar:TimeZone>xP///0gAZQB1AHIAZQAgAGQAJwBFAHUAcgBvAHAAZQAgAGMAZQBuAHQAcgBhAGwAZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAFAAMAAAAAAAAAAAAAAEgAZQB1AHIAZQAgAGQAJwDpAHQA6QAgAGQAJwBFAHUAcgBvAHAAZQAgAGMAZQBuAHQAcgBhAGwAZQAAAAAAAAAAAAMAAAAFAAIAAAAAAAAAxP///w==</Calendar:TimeZone>
<Calendar:DTStamp>20140901T153635Z</Calendar:DTStamp>
<Calendar:StartTime>20140901T060000Z</Calendar:StartTime>
<Calendar:Subject>daily test</Calendar:Subject>
<Calendar:UID>373038626139376262386336613135633233333237633862393935326139303038636633336334623564613431373435653435323439346139343364356433356264663630313264366564356264626234353233353138396562623363343136303737356266393861633766396661613064626538313865616364663135666264376339633135626336653832323638</Calendar:UID>
<Calendar:OrganizerName>user A</Calendar:OrganizerName>
<Calendar:OrganizerEmail>usera@obmv2.lng</Calendar:OrganizerEmail>
<Calendar:Attendees>
<Calendar:Attendee>
<Calendar:AttendeeEmail>usera@obmv2.lng</Calendar:AttendeeEmail>
<Calendar:AttendeeName>user A</Calendar:AttendeeName>
<Calendar:AttendeeStatus>3</Calendar:AttendeeStatus>
<Calendar:AttendeeType>1</Calendar:AttendeeType>
</Calendar:Attendee>
</Calendar:Attendees>
<Calendar:EndTime>20140901T070000Z</Calendar:EndTime>
<AirSyncBase:Body>
<AirSyncBase:Type>1</AirSyncBase:Type>
<AirSyncBase:EstimatedDataSize>0</AirSyncBase:EstimatedDataSize>
</AirSyncBase:Body>
<Calendar:Categories/>
<Calendar:Recurrence>
<Calendar:RecurrenceType>0</Calendar:RecurrenceType>
<Calendar:RecurrenceInterval>1</Calendar:RecurrenceInterval>
</Calendar:Recurrence>
<Calendar:Sensitivity>0</Calendar:Sensitivity>
<Calendar:BusyStatus>2</Calendar:BusyStatus>
<Calendar:AllDayEvent>0</Calendar:AllDayEvent>
<Calendar:Exceptions>
<Calendar:Exception>
<Calendar:ExceptionIsDeleted>1</Calendar:ExceptionIsDeleted>
<Calendar:MeetingStatus>5</Calendar:MeetingStatus>
<Calendar:ExceptionStartTime>20140930T060000Z</Calendar:ExceptionStartTime>
</Calendar:Exception>
</Calendar:Exceptions>
<Calendar:MeetingStatus>0</Calendar:MeetingStatus>
<AirSyncBase:NativeBodyType>1</AirSyncBase:NativeBodyType>
</ApplicationData>
</Change>
</Commands>
</Collection>
</Collections>
</Sync>

Response of OBM-SYNC to ThunderBird:

<updated><event allDay="false" anonymized="false" id="4" isInternal="true" sequence="0" type="VEVENT"><timeupdate>1409585795985</timeupdate><timecreate>1409585662729</timecreate><extId>708ba97bb8c6a15c23327c8b9952a9008cf33c4b5da41745e452494a943d5d35bdf6012d6ed5bdbb45235189ebb3c4160775bf98ac7f9faa0dbe818eacdf15fbd7c9c15bc6e82268</extId><opacity>OPAQUE</opacity><title>daily test</title><owner>usera</owner><ownerEmail>usera@obmv2.lng</ownerEmail><tz>Europe/Paris</tz><date>1409551200000</date><duration>3600</duration><priority>2</priority><privacy>0</privacy><attendees><attendee displayName="user A" email="usera@obmv2.lng" isOrganizer="true" percent="0" required="REQ" state="ACCEPTED"/></attendees><recurrence days="" freq="1" kind="daily"><exceptions><exception>1412028000000</exception></exceptions><eventExceptions/></recurrence></event></updated>

Problem:
Iphone send this event exception to opush 20140930T060000Z.
Opush decoded and converted this event to OBMEvent but changed its start time to 0h00
When ThunderBird synchronize, obm-sync sent the Exception time which is modified and is not matched with any event in the store of ThunderBird, so it can't do an update
Solution:
Revert MSEventToOBMEventConverterImpl in OBMFULL-4703 .

Tested on:
obm 2.5.7 on Debian Squeeze server
obm 2.5.7 on Debian Wheezy server
obm 3.0.0 with Opush 3 on Debian Wheezy server
Tests done:
Thunderbird synchronized all deleted events
Addition Informations:
The issue OBMFULL-4703 is resolved by CR-4960 of this ticket, moreover CR-2854 and CR-2870 caused the problem of this case. So i revert CR-2854 and CR-2870 to fix this issue
Tested on SSII 4.1.2 and HTC ONE 4.4.2, IPhone 4 IOS 7, Ipad IOS 7, Iphone 3S IOS 6

Comment by Ba Tuan NGO [ 01/Sep/14 ]

added Thunderbird's log , obm-sync and opush' log

Comment by Matthieu EXT_BAECHLER [ 02/Sep/14 ]

I agree opush shouldn't modify the hour to midnight but you have to check that OBMFULL-4703 fix still works.
Maybe OBMFULL-4703 fix was wrong and deserves a new fix.

Comment by Thomas HILAIRE [ 05/Sep/14 ]

About the "opush set exception time at midnight" problem :
When we developed that feature we just tried to clone the obm-ui behavior.
What is wrong is that obm-ui has two different behaviors depending on the way used to create an exception.

  • at creation time: every exception start time is persisted as occurence.startTime in UTC
  • at modification time: every exception start time is persisted as occurence.midnightTime in UTC

Exemple, in the database you can see exceptions of a daily recurrent event starting each 18h30 UTC+2:

eventexception_parent_id eventexception_child_id eventexception_date
109282   2014-09-14 16:30:00 exception created at event creation time by obm-ui (exception day 2014-09-14)
109282   2014-09-10 22:00:00 exception created on already existing event by obm-ui (exception day 2014-09-11)

Problem, obm-ui has two differents behaviors but it must have only one.
Then opush and thunderbird must have the same behavior than obm-ui.
I guess that the excepted behavior is to not set the exception date at midnight!

Comment by Jenkins Continuous Integration Server [ 12/Sep/14 ]

SUCCESS: Integrated in poll-qa-25 339-7dfe1968f775d9d651dd190801603589e861b517
OBMFULL-5922 revert OBMFULL-4703 ( CR-2854 and CR-2870) (jkornobis: 7dfe1968f775d9d651dd190801603589e861b517)

  • java/sync/opush/push-module/src/test/java/org/obm/push/calendar/MSEventToObmEventConverterRecurrenceTest.java
  • java/sync/opush/push-service/src/main/java/org/obm/push/calendar/MSEventToObmEventConverterImpl.java
  • java/sync/opush/push-module/src/test/java/org/obm/push/calendar/MSEventToObmEventConverterExceptionTest.java
  • java/sync/opush/push-module/src/test/java/org/obm/push/calendar/MSEventToObmEventConverterTest.java
Comment by Stephane COLSON [ 17/Sep/14 ]

Seems OK with version 2.5.8-0.alpha0+git20140916_1743_b83fdf6 but without clear and precise reproduction steps, we cannot be sure that there is not still any non working behavior.
I tested OBMFULL-5304, OBMFULL-4703 and with obm 2.5.8-0.alpha0+git20140916_1743_b83fdf6 on CentOS:

  • daily recurrent not-allday event, modified by ui (created, delete exception, move exception, delete recurrence...) and checked on TB24, ipad, Fairphone FP1 Android 4.2.2, Samsung Galaxy SII Android 2.3.3, Windows Phone 8
  • allday weekly recurent event, modified by ui (created, delete exception, move exception, delete recurrence...) and checked on TB24, ipad, Fairphone FP1 Android 4.2.2, Samsung Galaxy SII Android 2.3.3, Windows Phone 8: See new OBMFULL-6115, OBMFULL-6116
  • daily recurrent allday event, modified with TB24 (created, delete exception, move exception, delete recurrence...) and checked on ui, ipad, Fairphone FP1 Android 4.2.2, Samsung Galaxy SII Android 2.3.3, Windows Phone 8: See new OBMFULL-6115, OBMFULL-6116
  • daily recurrent not-allday event, modified with TB24 (created, delete exception, move exception, delete recurrence...) and checked on ui, ipad, Fairphone FP1 Android 4.2.2, Samsung Galaxy SII Android 2.3.3, Windows Phone 8: See new OBMFULL-6115
  • daily recurrent allday event, modified with ipad (created, delete exception, move exception, delete recurrence...) and checked on ui, TB24, Fairphone FP1 Android 4.2.2, Samsung Galaxy SII Android 2.3.3, Windows Phone 8
  • daily recurrent allday event, modified with Fairphone FP1 (created, delete exception, move exception, delete recurrence...) and checked on ui, TB24, ipad, Android 4.2.2, Samsung Galaxy SII Android 2.3.3, Windows Phone 8
Comment by Jenkins Continuous Integration Server [ 04/Nov/14 ]

SUCCESS: Integrated in poll-next-30 574-27d7c252df8c018e78d651b8499c155f690f7cae
OBMFULL-5922 Good date and time format for removed exception (jkornobis: 27d7c252df8c018e78d651b8499c155f690f7cae)

  • ui/php/calendar/calendar_index.php
Comment by Jenkins Continuous Integration Server [ 15/Jan/15 ]

FAILURE: Integrated in poll-master-31 42-937f529a0e51f50ef9d93e46c4a340b6ebe0ad71
OBMFULL-5922 Good date and time format for removed exception (ddolcimascolo: ecc30efeb6c8c294106b1901c53b65c1315cbb65)

  • ui/php/calendar/calendar_index.php
Generated at Sun Jul 12 17:15:42 CEST 2020 using JIRA 6.1.1#6155-sha1:7188aeec9a6b57d61ea04c52f235f15f55c105e2.