-
Notifications
You must be signed in to change notification settings - Fork 241
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Notification spammed for calendar event #4811
Comments
The other calendar event I'm getting spammed for now:
|
Do you have a screenshot of the notification, so I can see which part to look into? |
I'd have to wait for that until next Tuesday, but it's just the normal reminder push notification. There is no new notification, only the new push notification. |
I noticed it's not only push notifications, but it's real notifications every 5 minutes between the reminder and the event. I think something with the cronjob is going wrong there. I guess this should be moved to the calendar repo? |
No wait, for the other event it's every 10 minutes?! Still has to be something with calendar. |
That part actually lives in server. |
It's my personal instance and I checked the logs and there is nothing :/ |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
Looks like the VALARM isn't parsed correctly any longer. cc @st3iny |
Related to nextcloud/server#34909? (I really hope it isn't 🤞) |
+1 |
We have some logging. @provokateurin can you please enable debug logging for your instance and look for \Sabre\VObject\Component\VAlarm::getEffectiveTriggerTime is where VALARMS are parsed. |
Sure, I should have the logs tomorrow evening when it happens again. |
@provokateurin Are you using a 32bit system/docker image by any chance? |
Nope 64 bit |
Hey @miaulalala I got the logs:
|
Thanks! Is that consistent with the alert spamming you're getting? |
Yes, I always get 7 notifications for this event. |
If you're up for it, we could try patching your instance with some more logging to see where why this is happening. Would you be game for that? |
Sure, just not today. Could we do this next week when I'm back to work? |
Debugging findings: Two Error messages: {
"reqId": "tdl7w2mTm7Svxm8WP89x",
"level": 3,
"time": "2023-01-18T09:50:02+00:00",
"remoteAddr": "",
"user": "--",
"app": "core",
"method": "",
"url": "--",
"message": "Error while running background job (class: OCA\\DAV\\BackgroundJob\\EventReminderJob, arguments: )",
"userAgent": "--",
"version": "25.0.2.3",
"exception": {
"Exception": "Sabre\\VObject\\Recur\\MaxInstancesExceededException",
"Message": "Recurring events are only allowed to generate 3500",
"Code": 0,
"Trace": [
{
"file": "/var/www/html/apps/dav/lib/CalDAV/Reminder/ReminderService.php",
"line": 485,
"function": "valid",
"class": "Sabre\\VObject\\Recur\\EventIterator",
"type": "->",
"args": []
},
{
"file": "/var/www/html/apps/dav/lib/CalDAV/Reminder/ReminderService.php",
"line": 198,
"function": "deleteOrProcessNext",
"class": "OCA\\DAV\\CalDAV\\Reminder\\ReminderService",
"type": "->",
"args": [
[
415,
1,
1503770,
true,
"428c2c4d-a640-41d7-a3f4-4270798ff0b0",
1674039000,
false,
"7bef06bc81b653db316686d1c4b47ee2",
"1882e64e3cc36a9fee42ba7cc511220b",
"DISPLAY",
true,
1674035400,
false,
null,
"Personal",
"principals/users/kate"
],
{
"__class__": "Sabre\\VObject\\Component\\VEvent",
"parent": {
"__class__": "Sabre\\VObject\\Component\\VCalendar",
"parent": null,
"name": "VCALENDAR"
},
"name": "VEVENT"
}
]
},
{
"file": "/var/www/html/apps/dav/lib/BackgroundJob/EventReminderJob.php",
"line": 68,
"function": "processReminders",
"class": "OCA\\DAV\\CalDAV\\Reminder\\ReminderService",
"type": "->",
"args": []
},
{
"file": "/var/www/html/lib/public/BackgroundJob/Job.php",
"line": 78,
"function": "run",
"class": "OCA\\DAV\\BackgroundJob\\EventReminderJob",
"type": "->",
"args": [
null
]
},
{
"file": "/var/www/html/lib/public/BackgroundJob/TimedJob.php",
"line": 103,
"function": "start",
"class": "OCP\\BackgroundJob\\Job",
"type": "->",
"args": [
{
"__class__": "OC\\BackgroundJob\\JobList"
}
]
},
{
"file": "/var/www/html/lib/public/BackgroundJob/TimedJob.php",
"line": 93,
"function": "start",
"class": "OCP\\BackgroundJob\\TimedJob",
"type": "->",
"args": [
{
"__class__": "OC\\BackgroundJob\\JobList"
}
]
},
{
"file": "/var/www/html/cron.php",
"line": 152,
"function": "execute",
"class": "OCP\\BackgroundJob\\TimedJob",
"type": "->",
"args": [
{
"__class__": "OC\\BackgroundJob\\JobList"
},
{
"__class__": "OC\\Log"
}
]
}
],
"File": "/var/www/html/3rdparty/sabre/vobject/lib/Recur/EventIterator.php",
"Line": 306,
"message": "Error while running background job (class: OCA\\DAV\\BackgroundJob\\EventReminderJob, arguments: )",
"exception": {},
"CustomMessage": "Error while running background job (class: OCA\\DAV\\BackgroundJob\\EventReminderJob, arguments: )"
}
} {
"reqId": "tdl7w2mTm7Svxm8WP89x",
"level": 3,
"time": "2023-01-18T09:50:01+00:00",
"remoteAddr": "",
"user": "--",
"app": "PHP",
"method": "",
"url": "--",
"message": "Undefined array key \"{http://sabredav.org/ns}email-address\" at /var/www/html/apps/dav/lib/Connector/Sabre/Principal.php#620",
"userAgent": "--",
"version": "25.0.2.3",
"exception": {
"Exception": "Error",
"Message": "Undefined array key \"{http://sabredav.org/ns}email-address\" at /var/www/html/apps/dav/lib/Connector/Sabre/Principal.php#620",
"Code": 0,
"Trace": [
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Principal.php",
"line": 620,
"function": "onError",
"class": "OC\\Log\\ErrorHandler",
"type": "::",
"args": [
2,
"Undefined array key \"{http://sabredav.org/ns}email-address\"",
"/var/www/html/apps/dav/lib/Connector/Sabre/Principal.php",
620
]
},
{
"file": "/var/www/html/apps/dav/lib/CalDAV/Reminder/ReminderService.php",
"line": 188,
"function": "getEmailAddressesOfPrincipal",
"class": "OCA\\DAV\\Connector\\Sabre\\Principal",
"type": "->",
"args": [
[
"principals/users/kate",
"Kate",
"INDIVIDUAL",
"en"
]
]
},
{
"file": "/var/www/html/apps/dav/lib/BackgroundJob/EventReminderJob.php",
"line": 68,
"function": "processReminders",
"class": "OCA\\DAV\\CalDAV\\Reminder\\ReminderService",
"type": "->",
"args": []
},
{
"file": "/var/www/html/lib/public/BackgroundJob/Job.php",
"line": 78,
"function": "run",
"class": "OCA\\DAV\\BackgroundJob\\EventReminderJob",
"type": "->",
"args": [
null
]
},
{
"file": "/var/www/html/lib/public/BackgroundJob/TimedJob.php",
"line": 103,
"function": "start",
"class": "OCP\\BackgroundJob\\Job",
"type": "->",
"args": [
{
"__class__": "OC\\BackgroundJob\\JobList"
}
]
},
{
"file": "/var/www/html/lib/public/BackgroundJob/TimedJob.php",
"line": 93,
"function": "start",
"class": "OCP\\BackgroundJob\\TimedJob",
"type": "->",
"args": [
{
"__class__": "OC\\BackgroundJob\\JobList"
}
]
},
{
"file": "/var/www/html/cron.php",
"line": 152,
"function": "execute",
"class": "OCP\\BackgroundJob\\TimedJob",
"type": "->",
"args": [
{
"__class__": "OC\\BackgroundJob\\JobList"
},
{
"__class__": "OC\\Log"
}
]
}
],
"File": "/var/www/html/lib/private/Log/ErrorHandler.php",
"Line": 92,
"CustomMessage": "--"
}
} Happens with recurrences that have no end date, but could also happen for others, we haven't imvestigated that issue. |
@provokateurin did you say you didn't have an email address set for the user kate? |
Yes, no email set |
The first one needs something similar to nextcloud/server#32191 for The second one is related to nextcloud/server#34909 when no emails are set indeed. |
Ahh, the second one is my fault. I assumed that retrieving a non-existant key would just yield null (like in JavaScript). I'll open a PR asap. |
I'll add the exception try- catch. |
Ref nextcloud/calendar#4811 Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
…hout end date Ref nextcloud/calendar#4811 Signed-off-by: Anna Larch <anna@nextcloud.com>
…hout end date Ref nextcloud/calendar#4811 Signed-off-by: Anna Larch <anna@nextcloud.com>
…hout end date Ref nextcloud/calendar#4811 Signed-off-by: Anna Larch <anna@nextcloud.com>
…hout end date Ref nextcloud/calendar#4811 Signed-off-by: Anna Larch <anna@nextcloud.com>
Ref nextcloud/calendar#4811 Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
After upgrading to 25.0.3 (from 25.0.2) this no longer happens. I didn't update anything else in between and the test case also no longer fails. Also no error shows up in the logs anymore. |
Ref nextcloud/calendar#4811 Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
That's very nice to hear. Both related PRs have been merged at this point, too. |
Ah I thought this was a problem now because the Calendar app wasn't updated, but it was actually a problem in the server! |
The whole calendar backend actually lives in the server repo. The calendar app is mainly just a browser "frontend". |
Ref nextcloud/calendar#4811 Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Ref nextcloud/calendar#4811 Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Ref nextcloud/calendar#4811 Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Ref nextcloud/calendar#4811 Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Ref nextcloud/calendar#4811 Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Steps to reproduce
Expected behaviour
I should only get push notifications for the reminders i configured in the calendar event
Actual behaviour
I get a push notification every 10 minutes until the event. This starts one hour before the event starts, but that is also the only reminder I configured for the events.
This only happened with this one recurring event after the upgrade to NC 25, but I didn't update the event in any way.
I have another recurring calendar event that also existed before the upgrade, but I never got the push notification spam there until TODAY, so this is twice as annoying for me now. I did move it to a different day at some point, but I'm unsure if that was right before or after the upgrade.
Server configuration
Operating system: Docker alpine
Web server: nginx
Database: PostgreSQL
PHP version: 8.1
Nextcloud version: 25.0.1
Where did you install Nextcloud from: Docker/Helm Chart
Signing status:
List of activated apps:
Nextcloud configuration:
Are you using an external user-backend, if yes which one: None
The text was updated successfully, but these errors were encountered: