Closed Bug 1889607 Opened 10 months ago Closed 18 days ago

Invitations sent twice (from TB and caldav server) when calendar associated email is wrong (case sensitive !)

Categories

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

Thunderbird 115
defect

Tracking

(thunderbird_esr128 fixed)

RESOLVED FIXED
135 Branch
Tracking Status
thunderbird_esr128 --- fixed

People

(Reporter: merome, Assigned: mkmelin)

References

Details

Attachments

(1 file)

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

Steps to reproduce:

  1. On a CALDAV server (tested here with Nextcloud 28.0.4), create a calendar associated with this email address : elton.john@somedomain.com
  2. On TB 115.9.0, add the caldav calendar associated with this email address : Elton.JOHN@somedomain.com (same address but some chars are uppercase)
  3. Check the prefer client-side email scheduling checkbox
  4. Create an event and invite someone@gmail.com

Actual results:

someone@gmail.com receives 2 invitations : one from Thunderbird and one from the Caldav server.

elton.john@somedomain.com also receives a Thunderbird forged invitation coming from Elton.JOHN@somedomain.com (uppercase)

Expected results:

As we have checked client-side scheduling, only one invitation should have been sent, by Thunderbird only and to someone@gmail.com only.

Here is some relevant additional information :
When TB sends the VCALENDAR Object to the caldav server, he "forgets" to set the "SCHEDULE-AGENT=CLIENT" information, we can see it on the Network console :

When the caldav server address === TB calendar address, all is fine, attendees have both "SCHEDULE-AGENT=CLIENT" information :

UID:44e971c3-b3be-45ff-b9b8-8c0921004be9
SUMMARY:test
ORGANIZER;PARTSTAT=NEEDS-ACTION;CUTYPE=INDIVIDUAL:mailto:elton.john@somedomain.com
ATTENDEE;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;SCHEDULE-
 AGENT=CLIENT:mailto:elton.john@somedomain.com
ATTENDEE;CN=Someone;PARTSTAT=NEEDS-ACTION;CUTYPE=INDIVIDUAL;ROLE=REQ-
 PARTICIPANT;SCHEDULE-AGENT=CLIENT:mailto:someone@gmail.com

When the caldav server address differs from the TB calendar address (uppercase on some characters), the VCAL object sent by TB to the caldav doesn't mention the "SCHEDULE-AGENT=client" anymore for the attendees and the organizer has now this flag on :

UID:48daf6b9-6016-4771-9bdf-373b4295023f
SUMMARY:test
ORGANIZER;PARTSTAT=NEEDS-ACTION;CUTYPE=INDIVIDUAL;SCHEDULE-AGENT=CLIENT:mai
 lto:elton.john@somedomain.com
ATTENDEE;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT:mailto:el
 ton.john@somedomain.com
ATTENDEE;CN=Someone;PARTSTAT=NEEDS-ACTION;CUTYPE=INDIVIDUAL;ROLE=REQ-
 PARTICIPANT:mailto:someone@gmail.com

Note that on this VCAL object, all email address are lowercase in both case. Normalization of the addresses is processed somewhere, but at one point, Thunderbird think elton.john@somedomain.com != Elton.John@somedomain.com and it breaks the client-side scheduling.

It can be related to another "case sensitive" bug : https://bugzilla.mozilla.org/show_bug.cgi?id=1878944

See Also: → 1878944

Tested on TB 128.0esr, the problem is still present.

Workaround for Nextcloud users :
in protected function parseEventInfo(VCalendar $calendar = null) in the file /var/www/nextcloud/3rdparty/sabre/vobject/lib/ITip/Broker.php

after

                if ($this->scheduleAgentServerRules &&
                    isset($attendee['SCHEDULE-AGENT']) &&
                    'CLIENT' === strtoupper($attendee['SCHEDULE-AGENT']->getValue())
                ) {
                    continue;
                }

Add these lines

            // Prevent Nextcloud to send invitation already sent by Thunderbird when associated email address is not exactly the same
            if(strpos(strtolower($calendar->PRODID),"mozilla")!==false)

            {

                    continue;

            } 

Bug #1878944 seems to be resolved on TB128, so there is no relation between these 2 bugs.

Thunderbird 128.4.3 / Nextcloud 30.0.2

I've just upgraded Nextcloud from 29.X to 30.0.2 and I forgot to apply my dirty patch mentioned above. Immediately, new invitations are coming twice.

Same problem with accept/decline message => they are received twice by the organizer.

Assignee: nobody → mkmelin+mozilla
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Target Milestone: --- → 135 Branch

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/13a73a665f73
Invitations sent twice (from TB and caldav server) when calendar associated email does not case match exact case. r=arschmitz

Status: ASSIGNED → RESOLVED
Closed: 18 days ago
Resolution: --- → FIXED

Comment on attachment 9445658 [details]
Bug 1889607 - Invitations sent twice (from TB and caldav server) when calendar associated email does not case match exact case. r=#thunderbird-reviewers

[Approval Request Comment]
User impact if declined: may get double invitations
Testing completed (on c-c, etc.): c-c, beta
Risk to taking this patch (and alternatives if risky): safe, just case sensitivity ignoring in lookup

Attachment #9445658 - Flags: approval-comm-esr128?

Comment on attachment 9445658 [details]
Bug 1889607 - Invitations sent twice (from TB and caldav server) when calendar associated email does not case match exact case. r=#thunderbird-reviewers

[Triage Comment]
Approved for esr128

Attachment #9445658 - Flags: approval-comm-esr128? → approval-comm-esr128+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: