View Issue Details

IDProjectCategoryView StatusLast Update
0005809Composrcore_notificationspublic2024-09-04 22:21
ReporterPatrick SchmalstigAssigned ToPatrick Schmalstig 
SeverityMinor-bug 
Status resolvedResolutionfixed 
Product Version11.beta1 
Fixed in Version 
Summary0005809: 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
Time estimation (hours)
Sponsorship open

Relationships

related to 0005810 closedPatrick Schmalstig MySQL lockout: Commands out of sync; you can't run this command now 

Activities

admin

2024-07-26 18:56

administrator   ~0008980

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

Patrick Schmalstig

2024-07-26 21:12

administrator   ~0008982

Last edited: 2024-07-26 21:13

View 2 revisions

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   ~0009266

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   ~0009267

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

hotfix-5809, 2024-09-04 10pm.tar (30,720 bytes)

admin

2024-09-04 22:21

administrator   ~0009268

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 Patrick Schmalstig Tag Attached: Roadmap: v11
2024-07-26 19:01 Patrick Schmalstig Relationship added related to 0005810
2024-07-26 21:12 Patrick Schmalstig Note Added: 0008982
2024-07-26 21:13 Patrick Schmalstig Note Edited: 0008982 View Revisions