View Issue Details

IDProjectCategoryView StatusLast Update
5809Composrcore_notificationspublic2024-09-04 22:21
ReporterPDStig Assigned ToPDStig  
PriorityhighSeverityminor 
Status resolvedResolutionfixed 
Product Version11.beta1 
Summary5809: Poller can trigger PHP memory errors if there are lots of notifications
DescriptionIf a user has a lot of notifications to be polled, this can trigger PHP out of memory errors.

This can also happen if the notifications are large in size (e.g. errors with stack traces).

Perhaps the poller should pull only a max of X notifications on each poll. Let's say 5.

The "read all" page has the same problem.
TagsRoadmap: v11
Attach Tags
Attached Files
Time estimation (hours)
Sponsorship open

Sponsor

Date Added Member Amount Sponsored

Relationships

related to 5810 ClosedPDStig MySQL lockout: Commands out of sync; you can't run this command now 

Activities

admin

2024-07-26 18:56

administrator   ~8980

Automated message: This issue was created using the Report Issue Wizard on the Composr homesite.

PDStig

2024-07-26 21:12

administrator   ~8982

Last edited: 2024-07-26 21:13

Added temporary fixes:

* POST variables now subject to stack trace filtering
* stack trace filtering now strips strings that are too long
* If error text > 256 kb, then the web / mail notification will instead contain a path to data_custom/errors containing the error message and stack trace. Should rarely ever happen.
 - If the error could not be saved to disk, then instead the error will be included in the notification, but only the first 256 kb of it.
* Performance bloat health check will fail if there are 100 or more items in data_custom/errors

admin

2024-09-04 22:21

administrator   ~9266

Automated response: Notification pagination broken + limit notifications per page

The "view all" section of notifications had two fundamental problems:

a) The default max per page was 50 which could cause PHP memory issues when there are big notifications. This was reduced to 10 by default.
b) Pagination was broken anyway because the max rows was based on unread count when we are actually trying to show all (read and unread).

This hotfix fixes both cases.

admin

2024-09-04 22:21

administrator   ~9267

Fixed in Git commit e7fcba65ca (https://gitlab.com/composr-foundation/composr/commit/e7fcba65ca - link will become active once code pushed to GitLab)

admin

2024-09-04 22:21

administrator   ~9268

A hotfix (a TAR of files to upload) has been uploaded to this issue. Only apply this hotfix if you absolutely need it and cannot wait until the next release of Composr (releases are more reliable and strictly tested). As of Composr version 11, the recommended way to apply a hotfix is by following the same steps as an upgrade (https://baseurl/upgrader.php, use the hotfix on the step “Transfer across new/updated files”). The upgrader will automatically skip files belonging to addons you do not have installed or that are newer on disk than in the hotfix. Otherwise, you can manually extract and replace these files (do not replace if your on-disk file is newer than the one in the hotfix). Always take backups of your site or at least files you are replacing before applying a hotfix. Not sure how to extract TAR files to your Windows computer? Try 7-zip (http://www.7-zip.org/).

Issue History

Date Modified Username Field Change
2024-07-26 18:57 PDStig Tag Attached: Roadmap: v11
2024-07-26 19:01 PDStig Relationship added related to 5810
2024-07-26 21:12 PDStig Note Added: 0008982
2024-07-26 21:13 PDStig Note Edited: 0008982