View Issue Details

IDProjectCategoryView StatusLast Update
0003905SOGoApple Calendar (Mac OS X)public2017-04-14 15:48
ReportersHk Assigned Toludovic  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformApple CalendarAgent/316.1OSMac OS XOS Version10.10.5
Product Version2.3.10 
Fixed in Version3.2.8 
Summary0003905: Organizer Missing in VCALENDAR Objects
Description

The ORGANIZER field in VCALENDAR objects is missing in SOGos mysql database everytime a MAC OS X CalendarAgent answers an invitation. Due to SOGos database schema in SOGo v.2 every user has his own 'copy' of the event in his table. The only user affected by the missing ORGANIZER is the invited OS X User after he answered.

Steps To Reproduce
  1. Create an invitation from SOGo Webif, invite attendees.
    In my example: severin.gebhard@kochan.de (WebIF Organizer) invites foo.bar@kochan.de (Apple Calendar answerer)

This VCALENDAR object is created in SOGOs mysql database in the table of the answerer foo. All good so far:

BEGIN:VCALENDAR
PRODID:-//Inverse inc./SOGo 2.3.10//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
UID:816-582C6000-13-2756E340
SUMMARY:foo
CLASS:PUBLIC
ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CN=Foo Bär:ma
ilto:foo.bar@kochan.de
ORGANIZER;CN=Severin Gebhard:mailto:severin.gebhard@kochan.de
CREATED:20161116T133309Z
DTSTAMP:20161116T133309Z
LAST-MODIFIED:20161116T133309Z
DTSTART;TZID=Europe/Berlin:20161116T144500
DTEND;TZID=Europe/Berlin:20161116T154500
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

  1. Now foo.bar@kochan.de answers the invitation from the Apple Calendar application.

I've captured this object with tcpdump, it's part of the PUT request that was sent to answer the invitation.
An important detail is that the ORGANIZER field is further above the ORGANIZER field compared to WebIF creation object.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//Mac OS X 10.10.5//EN
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
DTSTART:19810329T020000
TZNAME:MESZ
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
DTSTART:19961027T030000
TZNAME:MEZ
TZOFFSETTO:+0100
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
TRANSP:TRANSPARENT
DTEND;TZID=Europe/Berlin:20161116T154500
ORGANIZER;CN="Severin Gebhard":mailto:severin.gebhard@kochan.de
UID:816-582C6000-13-2756E340
DTSTAMP:20161116T133309Z
SEQUENCE:0
CLASS:PUBLIC
SUMMARY:foo
DTSTART;TZID=Europe/Berlin:20161116T144500
LAST-MODIFIED:20161116T133309Z
CREATED:20161116T133309Z
ATTENDEE;CN="Foo B..r";CUTYPE=INDIVIDUAL;PARTSTAT=TENTATIVE;ROLE=REQ-PART
ICIPANT:mailto:foo.bar@kochan.de
ATTENDEE;CN="Severin Gebhard";CUTYPE=INDIVIDUAL:mailto:severin.gebhard@k
ochan.de
END:VEVENT
END:VCALENDAR

  1. If I look again (as in step one) in the mysql table of the answerer the organizer is missing:

BEGIN:VCALENDAR
PRODID:-//Apple Inc.//Mac OS X 10.10.5//EN
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
DTSTART:19810329T020000
TZNAME:MESZ
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
DTSTART:19961027T030000
TZNAME:MEZ
TZOFFSETTO:+0100
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
TRANSP:TRANSPARENT
DTEND;TZID=Europe/Berlin:20161116T154500
UID:816-582C6000-13-2756E340
DTSTAMP:20161116T133309Z
SEQUENCE:0
CLASS:PUBLIC
SUMMARY:foo
DTSTART;TZID=Europe/Berlin:20161116T144500
LAST-MODIFIED:20161116T133309Z
CREATED:20161116T133309Z
ATTENDEE;PARTSTAT=TENTATIVE;ROLE=REQ-PARTICIPANT;CN=Foo Bär:mailto:foo.bar@
kochan.de
END:VEVENT
END:VCALENDAR

Additional Information

This leads to the problem that an OS X client may sometimes "take over" the ORGANIZER to itself inviting all other attendees again.

TagsNo tags attached.

Activities

sHk

sHk

2016-11-24 11:14

reporter   ~0010908

Last edited: 2016-11-24 11:16

I've tested the scenario again with SOGo v.3.2.1 and the new mysql schema. It's still prone to this bug.

Reproduce:

  1. Create appointment.
  2. iCal answerer PUT causes missing ORGANIZER.

If sogo and memcached is restarted and the iCal client cache is cleared it will take over the ORGANIZER on the next appointment user action.

ludovic

ludovic

2016-12-09 13:57

administrator   ~0010975

I've tried with both SOGo v2.3.18/19 and SOGo v3.2.4 and it works as expected with Apple Calendar 8.0 (2092.3).

ludovic

ludovic

2016-12-29 19:42

administrator   ~0011132

Closing until more evidence is provided.

sHk

sHk

2017-01-11 09:37

reporter   ~0011186

Last edited: 2017-01-11 09:38

Hello Ludovic,

I've tested this Zenario myself with an El Captian iCal Client:
Mac+OS+X/10.11.3 (15D21) CalendarAgent/361.1

The important differnce I was figuring out is that Yosemite inserts the ORGANIZER also as an Attendee while El Capitan dosen't.

Here are two shortent VCALENDAR Objects, both captured with tcpdump:

Yosemite:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//Mac OS X 10.10.5//EN
...
ORGANIZER;CN="Foo B..r":mailto:foo.bar@kochan.de
...
ATTENDEE;CN="Foo B..r";CUTYPE=INDIVIDUAL:mailto:foo.bar@kochan.de
ATTENDEE;CN="Severin Gebhard";CUTYPE=INDIVIDUAL;PARTSTAT=DECLINED;ROLE=R
EQ-PARTICIPANT:mailto:severin.gebhard@kochan.de
END:VEVENT
END:VCALENDAR

El Capitan:

BEGIN:VCALENDAR
PRODID:-//Apple Inc.//Mac OS X 10.11.3//EN
...
ORGANIZER;CN=Foo Bär:mailto:foo.bar@kochan.de
...
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=Severin Gebhard;CUTYPE=I
NDIVIDUAL:mailto:severin.gebhard@kochan.de
END:VEVENT
END:VCALENDAR

Now I did the following:

On the Apache Webserver I've made a mod_ext_filter filter that removes the redundant Attendee line before Proxing the HTTP Put Request to the sogod Server:

<Location />
Require all granted
SetInputFilter external_sed
</Location>

ExtFilterDefine external_sed mode=input intype=text/calendar cmd=&quot;/bin/sed /ATTENDEE;CN=\&quot;Foo/d&quot;

Then it also works with Yosemite.

ludovic

ludovic

2017-03-07 15:47

administrator   ~0011451

Fix pushed for both v2 and v3 - please try the upcoming nightly builds.

ludovic

ludovic

2017-03-07 15:47

administrator   ~0011452

  • 2.3.20
sHk

sHk

2017-03-15 12:45

reporter   ~0011484

Hello Ludovic,

I've installed SOGo v2.3.20 Release from source. I've looked in the Changelog and in: SoObjects/Appointments/SOGoAppointmentObject.m

https://sogo.nu/download.html#/v2
Your changes are included in this version.

Unfortunately the Organizer still gets deleted.

ludovic

ludovic

2017-03-15 12:49

administrator   ~0011485

The organizer will be deleted from the list of participants - that was the issue.

The ORGANIZER field is left untouched.

sHk

sHk

2017-03-15 12:55

reporter   ~0011486

What I did: I've setup a new Debian Jessie Host and installed a fresh SOGo v2.3.20.

The ORGANIZER Field is still beeing deleted.

If I remove the the the Attendee who is ORGANIZER with Apache mod_ext_filter and give the modified Version of the VCALENDAR Object to SOGo the ORGANIZER Field is included. If I pass the VCALENDAR Object untouched to SOGo the ORGANIZER Field is still missing.

ludovic

ludovic

2017-03-15 12:56

administrator   ~0011487

Can you provide me ssh root access to that server and can we do a test together?

sHk

sHk

2017-03-15 12:57

reporter   ~0011488

Ok

ludovic

ludovic

2017-03-15 13:04

administrator   ~0011489

Contact me privately.

sHk

sHk

2017-03-16 13:41

reporter   ~0011499

Today I tested it with nightly: 2.3.20.20170316-1

https://sogo.nu/nc/support/faq/article/how-to-install-nightly-sogo-versions-on-debian.html

This link doesn't provide apt-srcs of the nightlys.

Is this commit already included?: https://github.com/inverse-inc/sogo/commit/b6d9c3e8e04a6f4d13856a2b19854ef8adeb63da

The ORGANIZER still gets removed.

ludovic

ludovic

2017-03-18 18:40

administrator   ~0011511

Let's plan for a test session next Friday, March 24th.

Related Changesets

sogo: master 6a963bf8

2017-03-07 10:45

ludovic


Details Diff
(fix) remove attendees that have the same identity of the organizer (fixes 0003905) Affected Issues
0003905
mod - SoObjects/Appointments/SOGoAppointmentObject.m Diff File

sogo: v2 05ab2015

2017-03-07 10:45

ludovic


Details Diff
(fix) remove attendees that have the same identity of the organizer (fixes 0003905) Affected Issues
0003905
mod - SoObjects/Appointments/SOGoAppointmentObject.m Diff File

Issue History

Date Modified Username Field Change
2016-11-16 14:52 sHk New Issue
2016-11-24 11:14 sHk Note Added: 0010908
2016-11-24 11:15 sHk Note Edited: 0010908
2016-11-24 11:16 sHk Note Edited: 0010908
2016-12-09 13:57 ludovic Note Added: 0010975
2016-12-09 13:57 ludovic Severity major => minor
2016-12-29 19:42 ludovic Note Added: 0011132
2016-12-29 19:42 ludovic Status new => closed
2016-12-29 19:42 ludovic Assigned To => ludovic
2016-12-29 19:42 ludovic Resolution open => suspended
2017-01-11 09:37 sHk Note Added: 0011186
2017-01-11 09:37 sHk Status closed => feedback
2017-01-11 09:37 sHk Resolution suspended => reopened
2017-01-11 09:38 sHk Note Edited: 0011186
2017-03-07 15:46 ludovic Changeset attached => sogo master 6a963bf8
2017-03-07 15:46 ludovic Changeset attached => sogo v2 05ab2015
2017-03-07 15:47 ludovic Note Added: 0011451
2017-03-07 15:47 ludovic Note Added: 0011452
2017-03-07 15:47 ludovic Status feedback => resolved
2017-03-07 15:47 ludovic Fixed in Version => 3.2.8
2017-03-07 15:47 ludovic Resolution reopened => fixed
2017-03-15 12:45 sHk Note Added: 0011484
2017-03-15 12:45 sHk Status resolved => feedback
2017-03-15 12:45 sHk Resolution fixed => reopened
2017-03-15 12:49 ludovic Note Added: 0011485
2017-03-15 12:55 sHk Note Added: 0011486
2017-03-15 12:55 sHk Status feedback => assigned
2017-03-15 12:56 ludovic Note Added: 0011487
2017-03-15 12:57 sHk Note Added: 0011488
2017-03-15 13:04 ludovic Note Added: 0011489
2017-03-16 13:41 sHk Note Added: 0011499
2017-03-18 18:40 ludovic Note Added: 0011511
2017-04-14 15:48 ludovic Status assigned => resolved
2017-04-14 15:48 ludovic Resolution reopened => fixed