nextcloud / server

☁️ Nextcloud server, a safe home for all your data
https://nextcloud.com
GNU Affero General Public License v3.0
27.52k stars 4.08k forks source link

Calendar: Error When Trying To Delete Recurring Event Instance via WebCal #27368

Closed gohrner closed 3 years ago

gohrner commented 3 years ago

This problem occurs repeatedly and causes frequent error message popups in Thunderbird, which is used as a WebCal client here.

As the request is simply a "DELETE", the problem seems to sit on NextCloud side, though. The event ALSO cannot be deleted through the NextCloud Calendar web frontend - so looks as if I'm stuck with it. :-/

Stacktrace from Nextcloud log:

[webdav] Fatal: Sabre\VObject\InvalidDataException: The supplied iCalendar datetime value is incorrect: master at <<closure>>

 0. /var/www/nextcloud/3rdparty/sabre/vobject/lib/DateTimeParser.php line 205
    Sabre\VObject\DateTimeParser::parseDateTime("master", DateTimeZone {ti ... "})
 1. /var/www/nextcloud/3rdparty/sabre/vobject/lib/ITip/Broker.php line 736
    Sabre\VObject\DateTimeParser::parse("master", DateTimeZone {ti ... "})
 2. /var/www/nextcloud/3rdparty/sabre/vobject/lib/ITip/Broker.php line 254
    Sabre\VObject\ITip\Broker->parseEventForAttendee(Sabre\VObject\Co ... l}, {uid: "9d1eeb82- ... l}, {uid: "9d1eeb82- ... l}, Sabre\VObject\Pr ... l})
 3. /var/www/nextcloud/3rdparty/sabre/dav/lib/CalDAV/Schedule/Plugin.php line 404
    Sabre\VObject\ITip\Broker->parseEvent(null, ["mailto:xx@ohrn ... "], Sabre\VObject\Co ... l})
 4. /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    Sabre\CalDAV\Schedule\Plugin->beforeUnbind("*** sensitive parameters replaced ***")
 5. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 292
    Sabre\DAV\Server->emit("beforeUnbind", ["*** sensitive parameter replaced ***"])
 6. /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    Sabre\DAV\CorePlugin->httpDelete(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
 7. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 474
    Sabre\DAV\Server->emit("method:DELETE", [Sabre\HTTP\Requ ... }])
 8. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 251
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
 9. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 319
    Sabre\DAV\Server->start()
10. /var/www/nextcloud/apps/dav/lib/Server.php line 332
    Sabre\DAV\Server->exec()
11. /var/www/nextcloud/apps/dav/appinfo/v2/remote.php line 35
    OCA\DAV\Server->exec()
12. /var/www/nextcloud/remote.php line 167
    require_once("/var/www/nextcl ... p")

DELETE /remote.php/dav/calendars/xx/personal/9d1eeb82-4e58-46c9-9098-ea083e690caf.ics
from xx.xx.xx.xx by xx at 2021-06-03T08:22:17+00:00

/var/www/nextcloud/3rdparty/sabre/vobject/lib/ITip/Broker.php line 736 is:

$dt = DateTimeParser::parse($instance['id'], $eventInfo['timezone']);

So $instance['id'] definitely isn't a date/time value at this point and cannot be parsed as such - it's the String "master".

The affected vEvent, obtained from the client - not sure if it's completely identical on the server:

BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20210331T135701Z
LAST-MODIFIED:20210515T173831Z
DTSTAMP:20210517T114731Z
UID:9d1eeb82-4e58-46c9-9098-ea083e690caf
SUMMARY:Daily
RECURRENCE-ID;TZID=Europe/Berlin:20210517T093000
ORGANIZER;ROLE=REQ-PARTICIPANT:mailto:zz@example.com
ATTENDEE;CN=XXXXX;ROLE=REQ-PART
 ICIPANT;SCHEDULE-STATUS=1.1:mailto:yy@example.com
ATTENDEE;PARTSTAT=DECLINED:mailto:xx@example.com
DTSTART;TZID=Europe/Berlin:20210517T093000
DTEND;TZID=Europe/Berlin:20210517T094500
TRANSP:OPAQUE
LOCATION:XXXXX
DESCRIPTION:XXXXX
SEQUENCE:3
X-MOZ-GENERATION:3
END:VEVENT
END:VCALENDAR

Addendum: Seems to be the same as on the server, here's the iCal file I could download using the NextCloud Calendar web frontend:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20210331T135701Z
LAST-MODIFIED:20210515T173831Z
UID:9d1eeb82-4e58-46c9-9098-ea083e690caf
SUMMARY:Daily
ORGANIZER;ROLE=REQ-PARTICIPANT:mailto:zz@example.com
ATTENDEE;CN=XXXXX;ROLE=REQ-PARTI
 CIPANT;SCHEDULE-STATUS=1.1:mailto:yy@example.com
ATTENDEE;PARTSTAT=DECLINED:mailto:xx@example.com
DTSTART;TZID=Europe/Berlin:20210517T093000
DTEND;TZID=Europe/Berlin:20210517T094500
TRANSP:OPAQUE
LOCATION:XXXXX
DESCRIPTION:XXXXX
SEQUENCE:3
X-MOZ-GENERATION:3
RECURRENCE-ID;TZID=Europe/Berlin:20210517T093000
DTSTAMP:20210517T114731Z
END:VEVENT
END:VCALENDAR

System information:

Server configuration detail

Operating system: Linux 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64

Webserver: Apache/2.4.38 (Debian) (fpm-fcgi)

Database: mysql 10.3.27

PHP version: 7.3.27-1~deb10u1

Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, Reflection, SPL, sodium, session, standard, cgi-fcgi, mysqlnd, PDO, xml, apcu, bcmath, bz2, calendar, ctype, curl, dom, mbstring, fileinfo, ftp, gd, gettext, gmp, iconv, igbinary, imagick, imap, intl, json, ldap, exif, mysqli, pdo_mysql, apc, posix, readline, recode, redis, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xmlreader, xmlwriter, xsl, zip, Phar, Zend OPcache

Nextcloud version: 20.0.10 - 20.0.10.1

Updated from an older Nextcloud/ownCloud or fresh install:

Where did you install Nextcloud from: unknown

Signing status Array ( )
List of activated apps ``` Enabled: - accessibility: 1.6.0 - activity: 2.13.4 - appointments: 1.9.1 - apporder: 0.12.0 - calendar: 2.2.2 - cloud_federation_api: 1.3.0 - comments: 1.10.0 - contacts: 3.5.1 - contactsinteraction: 1.1.0 - dashboard: 7.0.0 - dav: 1.16.2 - deck: 1.2.7 - external: 3.7.2 - federatedfilesharing: 1.10.2 - federation: 1.10.1 - files: 1.15.0 - files_external: 1.11.1 - files_markdown: 2.3.3 - files_pdfviewer: 2.0.1 - files_rightclick: 0.17.0 - files_sharing: 1.12.2 - files_trashbin: 1.10.1 - files_versions: 1.13.0 - files_videoplayer: 1.9.0 - firstrunwizard: 2.9.0 - forms: 2.2.4 - impersonate: 1.7.0 - logreader: 2.5.0 - lookup_server_connector: 1.8.0 - mail: 1.9.5 - nextcloud_announcements: 1.9.0 - notes: 4.0.4 - notifications: 2.8.0 - oauth2: 1.8.0 - password_policy: 1.10.1 - photos: 1.2.3 - polls: 1.8.3 - privacy: 1.4.0 - provisioning_api: 1.10.0 - recommendations: 0.8.0 - richdocuments: 3.8.2 - serverinfo: 1.10.0 - settings: 1.2.0 - sharebymail: 1.10.0 - socialsharing_email: 2.2.0 - spreed: 10.0.7 - support: 1.3.0 - survey_client: 1.8.0 - systemtags: 1.10.0 - tasks: 0.13.6 - text: 3.1.0 - theming: 1.11.0 - twofactor_backupcodes: 1.9.0 - updatenotification: 1.10.0 - user_ldap: 1.10.2 - user_status: 1.0.1 - viewer: 1.4.0 - weather_status: 1.0.0 - workflowengine: 2.2.0 Disabled: - admin_audit - encryption ```
Configuration (config/config.php) ``` { "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "nextcloud.ohrner-it.com" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "overwrite.cli.url": "https:\/\/nextcloud.ohrner-it.com", "htaccess.RewriteBase": "\/", "dbtype": "mysql", "version": "20.0.10.1", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "", "dbtableprefix": "oc_", "mysql.utf8mb4": true, "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "installed": true, "instanceid": "***REMOVED SENSITIVE VALUE***", "ldapIgnoreNamingRules": false, "ldapProviderFactory": "\\OCA\\User_LDAP\\LDAPProviderFactory", "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_smtpmode": "sendmail", "mail_smtpauthtype": "LOGIN", "mail_domain": "***REMOVED SENSITIVE VALUE***", "maintenance": false, "theme": "", "loglevel": 0, "auth.bruteforce.protection.enabled": true, "memcache.local": "\\OC\\Memcache\\APCu", "memcache.locking": "\\OC\\Memcache\\Redis", "redis": { "host": "***REMOVED SENSITIVE VALUE***", "port": 6379 }, "updater.release.channel": "stable", "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "enable_previews": true, "encryption.legacy_format_support": false, "encryption.key_storage_migrated": false } ```

External storages: yes

External storage configuration ``` No mounts configured ```

Encryption: no

User-backends:

Browser: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0

szaimen commented 3 years ago

Is this Issue still valid in NC21.0.2? If not, please close this issue. Thanks! :)

gohrner commented 3 years ago

No idea yet - this particular NC instance does not yet offer an upgrade to 21, so it's still on NC 20.

szaimen commented 3 years ago

cc @nextcloud/calendar

ghost commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity and seems to be missing some essential information. It will be closed if no further activity occurs. Thank you for your contributions.