nextcloud / nextcloud/calendar
Calendar freezes
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.2k
- Forks
- 332
- Avg merge
- 16h 13m
- Merged PRs (30d)
- 137
Description
Steps to reproduce
We're unsure what triggered this initially and cannot reproduce it outside of this server. A user was making a regular change to an event when the issues started.
- Enable calendar app
- Go to calendar in the web interface.
Expected behavior
Calendars should load, webUI should function, and the calendars should sync with thunderbird and DAVx5
Actual behaviour
When opening the calendar app, the web interface freezes, multiple calendars are indicated with a loading circle, and the entire web interface becomes unresponsive. No calendar can sync to a client.
When the Dashboard was enabled, the whole web interface would immediately freeze when it tried to fetch calendar events.
Everything else works fine when the Calendar app is disabled.
Calendar app version
4.7.14
CalDAV-clients used
DAVx5, thunderbird, web
Browser
various
Client operating system
various
Server operating system
Docker/k8s
Web server
Nginx
Database engine version
MySQL
PHP engine version
PHP 8.1
Nextcloud version
27.1.10.2
Updated from an older installed version or fresh install
Updated from an older version
List of activated apps
Enabled:
- activity: 2.19.0
- audioplayer: 3.4.1
- calendar: 4.7.14
- circles: 27.0.1
- cloud_federation_api: 1.10.0
- comments: 1.17.0
- contacts: 5.5.3
- contactsinteraction: 1.8.0
- dav: 1.27.0
- deck: 1.11.5
- federatedfilesharing: 1.17.0
- federation: 1.17.0
- files: 1.22.0
- files_external: 1.19.0
- files_pdfviewer: 2.8.0
- files_reminders: 1.0.0
- files_rightclick: 1.6.0
- files_sharing: 1.19.0
- files_trashbin: 1.17.0
- files_versions: 1.20.0
- files_versions_s3: 0.2.2
- firstrunwizard: 2.16.0
- forms: 3.4.7
- group_everyone: 0.1.13
- groupquota: 0.2.1
- logreader: 2.12.0
- lookup_server_connector: 1.15.0
- nextcloud_announcements: 1.16.0
- notes: 4.10.1
- notifications: 2.15.0
- oauth2: 1.15.2
- onlyoffice: 9.3.0
- password_policy: 1.17.0
- photos: 2.3.0
- polls: 7.1.4
- privacy: 1.11.0
- provisioning_api: 1.17.0
- recommendations: 1.6.0
- related_resources: 1.2.0
- serverinfo: 1.17.0
- settings: 1.9.0
- sharebymail: 1.17.0
- spreed: 17.1.10
- systemtags: 1.17.0
- tasks: 0.15.0
- text: 3.8.0
- theming: 2.2.0
- twofactor_backupcodes: 1.16.0
- twofactor_totp: 9.0.0
- user_status: 1.7.0
- viewer: 2.1.0
- weather_status: 1.7.0
- workflowengine: 2.9.0
Disabled:
- admin_audit: 1.17.0
- approval: 1.1.1 (installed 1.1.1)
- bruteforcesettings: 2.7.0
- dashboard: 7.7.0 (installed 7.5.0)
- encryption: 2.15.0
- files_lock: 27.0.7 (installed 27.0.7)
- support: 1.10.1 (installed 1.4.0)
- survey_client: 1.15.0 (installed 1.7.0)
- suspicious_login: 5.0.0
- updatenotification: 1.17.0 (installed 1.8.0)
- user_ldap: 1.17.0
- user_saml: 5.2.7 (installed 5.2.7)
Nextcloud configuration
{
"system": {
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"localhost",
"XXXXXXXXXXX",
"XXXXXXXXXXXXX.thegood.cloud"
],
"apps_paths": [
{
"path": "\/var\/www\/html\/apps",
"url": "\/apps",
"writable": false
},
{
"path": "\/var\/www\/html\/apps2",
"url": "\/apps2",
"writable": true
}
],
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"objectstore": {
"class": "\\OC\\Files\\ObjectStore\\S3",
"arguments": {
"bucket": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
"autocreate": true,
"key": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"hostname": "XXXXXXXXXXXXXXX.thegood.cloud",
"port": 443,
"use_ssl": true,
"region": "default",
"use_path_style": true
}
},
"dbtype": "mysql",
"version": "27.1.10.2",
"overwrite.cli.url": "https:\/\/XXXXXXXXXXXXXXX",
"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***",
"logtimezone": "Europe\/Amsterdam",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"port": "6379",
"password": "***REMOVED SENSITIVE VALUE***"
},
"memcache.local": "\\OC\\Memcache\\Redis",
"memcache.locking": "\\OC\\Memcache\\Redis",
"auth.bruteforce.protection.enabled": "false",
"upgrade.disable-web": "true",
"mail_smtpmode": "smtp",
"mail_smtpauthtype": "LOGIN",
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"mail_smtpauth": 1,
"mail_smtphost": "***REMOVED SENSITIVE VALUE***",
"mail_smtpport": "465",
"mail_smtpname": "***REMOVED SENSITIVE VALUE***",
"mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
"mail_smtpsecure": "ssl",
"trusted_proxies": "***REMOVED SENSITIVE VALUE***",
"twofactor_enforced": "true",
"twofactor_enforced_groups": [
"tgl_admin",
"admin"
],
"twofactor_enforced_excluded_groups": [
"all",
"mt",
"temp"
],
"mail_sendmailmode": "smtp",
"loglevel": 0,
"maintenance": false,
"skeletondirectory": "\/var\/www\/html\/data\/skeleton-tgc",
"knowledgebaseenabled": false,
"integrity.check.disabled": true,
"default_phone_region": "NL",
"profile.enabled": false,
"enable_previews": true,
"enabledPreviewProviders": {
"1": "OC\\Preview\\Movie",
"2": "OC\\Preview\\MKV",
"3": "OC\\Preview\\MP4",
"4": "OC\\Preview\\AVI",
"5": "OC\\Preview\\PNG",
"6": "OC\\Preview\\JPEG",
"7": "OC\\Preview\\GIF",
"8": "OC\\Preview\\BMP",
"9": "OC\\Preview\\XBitmap",
"10": "OC\\Preview\\MP3",
"11": "OC\\Preview\\TXT",
"12": "OC\\Preview\\MarkDown",
"13": "OC\\Preview\\OpenDocument",
"14": "OC\\Preview\\Krita",
"15": "OC\\Preview\\Illustrator",
"16": "OC\\Preview\\HEIC",
"17": "OC\\Preview\\Photoshop",
"18": "OC\\Preview\\StarOffice",
"19": "OC\\Preview\\SVG",
"20": "OC\\Preview\\TIFF",
"21": "OC\\Preview\\Font"
},
"onlyoffice": {
"editors_check_interval": 0
}
}
}
Web server error log
No response
Log file
[dav] Warning: Sabre\VObject\ParseException: This parser only supports VCARD and VCALENDAR files at <<closure>>
0. /var/www/html/3rdparty/sabre/vobject/lib/Parser/MimeDir.php line 90
Sabre\VObject\Parser\MimeDir->parseDocument()
1. /var/www/html/3rdparty/sabre/vobject/lib/Reader.php line 47
Sabre\VObject\Parser\MimeDir->parse()
2. /var/www/html/apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php line 247
Sabre\VObject\Reader::read()
3. /var/www/html/apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php line 86
OCA\DAV\CalDAV\WebcalCaching\RefreshWebcalService->queryWebcalFeed()
4. /var/www/html/apps/dav/lib/BackgroundJob/RefreshWebcalJob.php line 115
OCA\DAV\CalDAV\WebcalCaching\RefreshWebcalService->refreshSubscription()
5. /var/www/html/lib/public/BackgroundJob/Job.php line 81
OCA\DAV\BackgroundJob\RefreshWebcalJob->run()
6. /var/www/html/lib/public/BackgroundJob/Job.php line 67
OCP\BackgroundJob\Job->start()
7. /var/www/html/apps/dav/lib/BackgroundJob/RefreshWebcalJob.php line 108
OCP\BackgroundJob\Job->execute()
8. /var/www/html/cron.php line 152
OCA\DAV\BackgroundJob\RefreshWebcalJob->execute()
at 2024-08-06T10:21:03+02:00
[dav] Warning: InvalidArgumentException: SSL CA bundle not found: /tmp/oc_tmp_lf2KBf-.crt at <<closure>>
0. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php line 59
GuzzleHttp\Handler\CurlFactory->applyHandlerOptions()
1. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php line 43
GuzzleHttp\Handler\CurlFactory->create("*** sensitive parameters replaced ***")
2. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/Proxy.php line 28
GuzzleHttp\Handler\CurlHandler->__invoke()
3. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/Proxy.php line 48
GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}("*** sensitive parameters replaced ***")
4. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php line 256
GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}("*** sensitive parameters replaced ***")
5. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php line 240
GuzzleHttp\Middleware::GuzzleHttp\{closure}("*** sensitive parameters replaced ***")
6. /var/www/html/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php line 35
GuzzleHttp\Middleware::GuzzleHttp\{closure}("*** sensitive parameters replaced ***")
7. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php line 31
GuzzleHttp\PrepareBodyMiddleware->__invoke()
8. /var/www/html/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php line 71
GuzzleHttp\Middleware::GuzzleHttp\{closure}("*** sensitive parameters replaced ***")
9. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php line 63
GuzzleHttp\RedirectMiddleware->__invoke()
10. /var/www/html/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php line 75
GuzzleHttp\Middleware::GuzzleHttp\{closure}("*** sensitive parameters replaced ***")
11. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Client.php line 331
GuzzleHttp\HandlerStack->__invoke()
12. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Client.php line 168
GuzzleHttp\Client->transfer()
13. /var/www/html/3rdparty/guzzlehttp/guzzle/src/Client.php line 187
GuzzleHttp\Client->requestAsync("*** sensitive parameters replaced ***")
14. /var/www/html/lib/private/Http/Client/Client.php line 230
GuzzleHttp\Client->request()
15. /var/www/html/apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php line 214
OC\Http\Client\Client->get()
16. /var/www/html/apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php line 86
OCA\DAV\CalDAV\WebcalCaching\RefreshWebcalService->queryWebcalFeed()
17. /var/www/html/apps/dav/lib/BackgroundJob/RefreshWebcalJob.php line 115
OCA\DAV\CalDAV\WebcalCaching\RefreshWebcalService->refreshSubscription()
18. /var/www/html/lib/public/BackgroundJob/Job.php line 81
OCA\DAV\BackgroundJob\RefreshWebcalJob->run()
19. /var/www/html/lib/public/BackgroundJob/Job.php line 67
OCP\BackgroundJob\Job->start()
20. /var/www/html/apps/dav/lib/BackgroundJob/RefreshWebcalJob.php line 108
OCP\BackgroundJob\Job->execute()
21. /var/www/html/cron.php line 152
OCA\DAV\BackgroundJob\RefreshWebcalJob->execute()
at 2024-08-06T11:51:04+02:00
Browser log
No response
Additional info
We first encountered this issue in Nextcloud v25 with the 4.6.8 calendar app. We had a upgrade scheduled and found no issues upgrading to 26 and then to 27 but the same issue persists. Most of the calendars are shared internally. When looking at the calendars in the webinterface, the shared calendars seem to perpetually load while the 'personal' calendar does not.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php at lines 214 and 247, then trace the call from RefreshWebcalJob.php through cron.php. Compare the logged WebcalCaching failures with the calendar-loading and client-sync behavior; done means the web interface remains responsive and calendars load and sync normally.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, mysql, php
- Domain
- backend, databases, web-dev
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100