fix: raise resource limits for synchronous pre-update backup (white screen) #236

Merged
jmiller merged 2 commits from fix/preupdate-wsod-limits into dev 2026-07-06 03:34:20 +00:00
Owner

Immediate safety net for the white screen reported when clicking Update with backup_before_update on.

Cause

runPreActionBackup() (onExtensionBeforeUpdate/onExtensionBeforeUninstall) runs a full backup synchronously inside the update request with default PHP limits. On a large site (suite.dev is ~123 MB) it exceeds max_execution_time/memory_limit mid-backup → white screen of death.

Fix

Raise set_time_limit(0) / max_execution_time / memory_limit=512M / ignore_user_abort(true) before the synchronous backup — mirroring the web-cron handler which already does this.

This is a targeted safety net. The larger fix (full-screen backup screen + server-side redirect for core Joomla updates, so no synchronous backup runs in that request at all — Akeeba-style) is coming in a follow-up; these limits remain the guard for the extension-update/uninstall path.

Verify

  • php -l clean.

https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i

Immediate safety net for the white screen reported when clicking Update with `backup_before_update` on. ## Cause `runPreActionBackup()` (`onExtensionBeforeUpdate`/`onExtensionBeforeUninstall`) runs a **full backup synchronously inside the update request** with default PHP limits. On a large site (suite.dev is ~123 MB) it exceeds `max_execution_time`/`memory_limit` mid-backup → white screen of death. ## Fix Raise `set_time_limit(0)` / `max_execution_time` / `memory_limit=512M` / `ignore_user_abort(true)` before the synchronous backup — mirroring the web-cron handler which already does this. This is a targeted safety net. The larger fix (full-screen backup screen + server-side redirect for **core Joomla updates**, so no synchronous backup runs in that request at all — Akeeba-style) is coming in a follow-up; these limits remain the guard for the extension-update/uninstall path. ## Verify - `php -l` clean. https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
jmiller added 1 commit 2026-07-06 03:34:03 +00:00
fix: raise resource limits for synchronous pre-update backup (WSOD)
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 36s
Generic: Project CI / Lint & Validate (pull_request) Successful in 54s
Universal: PR Check / Validate PR (pull_request) Failing after 52s
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
49463eb747
The pre-update/uninstall backup runs synchronously inside the extension
update request. Without raising limits, a large site exceeds
max_execution_time/memory_limit mid-backup and the update page
white-screens. Raise set_time_limit(0)/memory_limit/ignore_user_abort
like the web-cron path.

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
jmiller added 1 commit 2026-07-06 03:34:13 +00:00
chore(version): pre-release bump to 02.58.12-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
064963da9c
jmiller merged commit 094787d26d into dev 2026-07-06 03:34:20 +00:00
jmiller deleted branch fix/preupdate-wsod-limits 2026-07-06 03:34:21 +00:00
Sign in to join this conversation.