Closed Bug 1877640 Opened 8 months ago Closed 12 days ago

Updating event doesn't always send notification to attendees

Categories

(Calendar :: E-mail based Scheduling (iTIP/iMIP), defect)

Thunderbird 115
defect

Tracking

(thunderbird_esr128 affected, thunderbird131 affected)

RESOLVED FIXED
132 Branch
Tracking Status
thunderbird_esr128 --- affected
thunderbird131 --- affected

People

(Reporter: merome, Assigned: gumara-dev)

References

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0

Steps to reproduce:

  1. Create an event and add an attendee, save & send
  2. Modify the description of the event, save & send
  3. Add an attendee to the event , save & send
  4. Modify the Location fields, save & send

Client side scheduling is on.
Offline mode is off.

Actual results:

  1. Create an event and add an attendee => invitation is sent to the attendee OK
  2. Modify the description of the event => notification not sent to the attendee not OK
  3. Add an attendee to the event => he never receives a notification not OK
  4. Modify the Location fields => All attendees receive a notification OK

Expected results:

  1. Create an event and add an attendee => invitation is sent to the attendee
  2. Modify the description of the event => notification is sent to attendee
  3. Add an attendee to the event => All attendee receive a notification update
  4. Modify the Location fields => All attendees receive a notification

Which exact version are you using?

115.7.0 (64 bits) / Debian
But tested with older version (115.?) / Windows as well.

This has also affected me (and others I work with).
115.7.0 on Windows 10.

Seems I can reproduce #3. #2 works for me.

Status: UNCONFIRMED → NEW
Ever confirmed: true

I've re-tested exhaustively , with TB 115.6 / Xubuntu

  1. Sending invitation to Google account => notification sent
  2. Modifying event title => no notification sent
  3. Modifying event description => no notification sent
  4. Adding attendee => no notification sent (neither to the newly added attendee, nor to the first attendee)
  5. Deleting attendee => notification sent to the deleted attendee only (calendar.itip.updateInvitationForNewAttendeesOnly is set to false)
  6. Modifying event category => no notification sent
  7. Modifying event reminder/alarm => no notification sent
  8. Modifying event priority => no notification sent
  9. Modifying event privacy => no notification sent
  10. Modifying event availability => no notification sent
  11. Adding attachment link => notifications sent to all participants
  12. Modifying event status (confirmed, cancelled...) => notifications sent to all participants
  13. Modifying event recurring options => notifications sent to all participants
  14. Modifying event location => notifications sent to all participants
  15. Modifying event date and/or hour => notifications sent to all participants
  16. Deleting event => notifications sent to all participants

I suppose the relevant code is here (calendar/itip/CalItipMessageSender.jsm) :

// Check to see if some part of the item was updated, if so, re-send REQUEST
    if (!originalItem || cal.itip.compare(item, originalItem) > 0) {
      // REQUEST
      // check whether it's a simple UPDATE (no SEQUENCE change) or real (RE)REQUEST,
      // in case of time or location/description change.
      const isMinorUpdate =
        originalItem && cal.itip.getSequence(item) == cal.itip.getSequence(originalItem);

      if (
        !isMinorUpdate ||
        !cal.item.compareContent(stripUserData(item), stripUserData(originalItem))
      ) {
        const requestItem = item.clone();
        if (!requestItem.organizer) {
          requestItem.organizer = cal.itip.createOrganizer(requestItem.calendar);
        }

Maybe cal.itip.compare() function returns no apparent modification
Or the compareContent() function in calendar/base/modules/utils/calItemUtils.sys.mjs is bugged ?
(I can't go further in this investigation, not having a sufficient knowledge for that sorry)

Duplicate of this bug: 1886476

I first noticed this occurring in TB v. 115.10.0 (64-bit) under openSUSE Leap 15.5. The RPM package source is openSUSE's "mozilla" repository. It continues under TB 115.10.1 (64-bit), again from the same source. I got exactly the same behavior as reported by Merome in his first post, but have not done all the testing he details in his post #5.

Tested with last changes comm-central changeset 41381. 2024/04/20

2, 3, 4, 5, 8, 9, 10 still buggy.

  1. ok
  2. Changing title => no email sent
  3. Changing description => no email sent
  4. Adding attendee - => no notification sent (neither to the newly added attendee, nor to the first attendee)
  5. Deleting attendee => no notification sent to the deleted attendee only
  6. Modifying event category => no email sent (seem's okay for me - its only for me)
  7. Modifying event reminder/alarm => no email sent (seem's okay for me - its only for me)
  8. Modifying event priority => no email sent
  9. Modifying event privacy => no email sent
  10. Modifying event availability => no email sent
  11. ok
  12. ok
  13. ok
  14. ok
  15. ok
  16. ok

I have found a workaround for 3, 4 and 8, 9, 10:
First remove the email address of the creator from the invite list and then add the others.

(In reply to Stephan Raab [:gumara-dev] from comment #8)

Tested with last changes comm-central changeset 41381. 2024/04/20

2, 3, 4, 5, 8, 9, 10 still buggy.

  1. ok
  2. Changing title => no email sent
  3. Changing description => no email sent
  4. Adding attendee - => no notification sent (neither to the newly added attendee, nor to the first attendee)
  5. Deleting attendee => no notification sent to the deleted attendee only
  6. Modifying event category => no email sent (seem's okay for me - its only for me)
  7. Modifying event reminder/alarm => no email sent (seem's okay for me - its only for me)
  8. Modifying event priority => no email sent
  9. Modifying event privacy => no email sent
  10. Modifying event availability => no email sent
  11. ok
  12. ok
  13. ok
  14. ok
  15. ok
  16. ok

I have found a workaround for 3, 4 and 8, 9, 10:
First remove the email address of the creator from the invite list and then add the others.

I made a small mistake all bugs are fixed with that workaround :)
I have found a workaround for 2, 3, 4, 5 and 8, 9, 10:
First remove the email address of the creator from the invite list and then add the others.

There is a simplest workaround : always modify the location, by adding an invisible space at the end of the actual location for example.

https://searchfox.org/comm-central/rev/9b1457d41bd9154a5d7617689f0963d197d7c4ec/calendar/itip/CalItipMessageSender.sys.mjs#285

if (!originalItem || cal.itip.compare(item, originalItem) > 0) {

I have found out that the "DTSTAMP" is not set in the originalItem and the dirty flag is true.
If the calendar owner is not in the attendee list, the "DTSTAMP" is present and all its good.
At the moment I have no idea, how to find the bug...I will try later.

If the attendee list contains the organizer of the event, the event is incorrectly recognized as an unanswered event and the event is updated before it is processed. This sets the dirty flag for the oldItem. When stampTime is checked, the timestamp is set to the same value so that no difference is recognized.
To correct this error, a check is now made beforehand to ensure that the calendar organizer is not also the organizer of this event.

Assignee: nobody → info
Status: NEW → ASSIGNED

Stephan, THANK YOU! Quite the detective work. I look forward to the fix. Until then, I will do as Merome suggests in comment 10.

Now we know that it's the organizer in attendee list which causes the problem (thanks to Stefan), it's safer to remove the organizer from the attendee list (if you can) when you want to send updates to all attendees on further modifications.

I have a weird case where modifying the location isn't enough to throw the update.

Tested with TB 128, the problem is still there.

The trick (removing organizer from attendees) works but you have to do that (remove the organizer), save the event, then all future modification will be sent to attendees. If you remove the organizer AND make a modification (title, description...), this modification will not be sent.

Target Milestone: --- → 132 Branch

Pushed by toby@thunderbird.net:
https://hg.mozilla.org/comm-central/rev/7fd91488c455
Fix Updating event doesn't always send notification to attendees r=mkmelin

Status: ASSIGNED → RESOLVED
Closed: 12 days ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: