CPalius CMF 1.1.1
Released: 2026-09-14 · Channel: stable · Critical: no
Updating to 1.1.0 from the panel was interrupted part-way on a live installation. This release fixes the cause and leaves a way out if it ever happens again.
What went wrong
The cause was not exotic: CoreUpdater did not lift PHP's execution time limit,
so writing several thousand files hit max_execution_time part-way through.
A time-limit fatal cannot be caught. So the rollback in the catch block never ran, and neither did the cache clear after it. What was left behind was some new files, some old files, and a compiled container describing neither. The visible symptom was a 500 about a constructor signature — which tells an operator nothing about updates at all.
Fixes
-
set_time_limit(0)andignore_user_abort(true). The first lets the job finish. The second is less obvious and matters just as much: many hosts put a 60-second gateway timeout in front of PHP. The browser gets a 504, but the process keeps running and completes the work. -
An interrupted update now announces itself. A marker file is written before the first file is overwritten: which version, where the staged files are, where the backup is, how many files are in scope. A half-written tree is not something anyone can diagnose from the outside — the updater has to leave a note saying what it was doing.
-
A shutdown hook. Runs even on a time-limit fatal. If the marker is still there, the install did not finish and the compiled container now describes a tree that no longer exists; clearing it keeps the site bootable enough to show the recovery screen.
-
Resume / Roll back. The panel shows an interrupted update first, in a red card. Resume copies the staged files again — copying is a repeatable operation, and a resume that tried to guess which files had already landed would leave exactly the inconsistency it was called to fix. Roll back restores the files from the backup; files the release added are removed.
-
An interrupted update blocks starting another one. Starting a second update on top would overwrite the backup, which is the only way back.
Upgrade notes
-
From 1.1.0 this is a patch. AACP → Updates → File patches. Six files change; there is no schema change.
-
If your installation is in a half-updated state, get the site up first: upload the 1.1.1 package over FTP, then empty the contents of
cp-core/var/cache/prod/(keep the directory). When the panel opens, if a recovery card is showing, choose Resume. -
Updating from the panel clears the cache for you.
Breaking changes
None.