fix(backup): Cancel Stalled fatal, stalled self-heal, runbackup overlay, update site #310

Merged
jmiller merged 6 commits from fix/backup-cancel-stall-runbackup-updatesite into dev 2026-07-18 21:29:22 +00:00

6 Commits

Author SHA1 Message Date
jmiller a96cad9f97 Merge branch 'fix/backup-cancel-stall-runbackup-updatesite' of https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup into fix/backup-cancel-stall-runbackup-updatesite
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 41s
Generic: Project CI / Lint & Validate (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Universal: PR Check / Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Has been cancelled
Branch Cleanup / Delete merged branch (pull_request) Has been cancelled
RC Revert / Rename rc/ back to dev/ (pull_request) Has been cancelled
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
# Conflicts:
#	.mokogit/workflows/issue-branch.yml
#	SECURITY.md
#	source/packages/com_mokosuitebackup/mokosuitebackup.xml
#	source/packages/mod_mokosuitebackup_cpanel/mod_mokosuitebackup_cpanel.xml
#	source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_console_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_content_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_quickicon_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_system_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_task_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.xml
#	source/pkg_mokosuitebackup.xml
2026-07-18 16:28:27 -05:00
jmiller ba2d065428 Merge remote-tracking branch 'origin/dev' into fix/backup-cancel-stall-runbackup-updatesite
# Conflicts:
#	.mokogit/workflows/issue-branch.yml
#	SECURITY.md
#	source/packages/com_mokosuitebackup/mokosuitebackup.xml
#	source/packages/mod_mokosuitebackup_cpanel/mod_mokosuitebackup_cpanel.xml
#	source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_console_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_content_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_quickicon_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_system_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_task_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.xml
#	source/pkg_mokosuitebackup.xml
2026-07-18 16:25:47 -05:00
mokogit-actions[bot] 166444b845 chore(version): pre-release bump to 02.67.05-dev [skip ci] 2026-07-18 20:30:00 +00:00
jmiller 93b7437e0c fix(backup): address PR review — transactional update site, safer stalled sweep
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 41s
Generic: Project CI / Lint & Validate (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Universal: PR Check / Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Has been cancelled
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
Silent-failure-hunter:
- ensureUpdateSite(): wrap the two inserts in a transaction so a failed link
  insert cannot orphan a #__update_sites row (the idempotency guard checks only
  the link table, so an orphan would be re-created on every retry). Surface
  failures via Log::add(jerror) + enqueueMessage instead of a silent error_log(),
  matching restoreDownloadKey().

Code-reviewer:
- markStalledAsFailed(): raise threshold to a generous 6h (well above
  PreflightCheck's 30-min per-profile start guard) so a long browser/CLI backup
  is not reaped mid-flight; delete partial archives for reaped rows to match
  PreflightCheck; add a WARNING breadcrumb in the catch. Real fix (heartbeat
  column) tracked as a follow-up in the stalled-backup issue.

Authored-by: Moko Consulting
Claude-Session: https://claude.ai/code/session_019V1WPYojhKyyPHewfUsPEz
2026-07-18 15:27:55 -05:00
mokogit-actions[bot] 36098fa606 chore(version): pre-release bump to 02.67.04-dev [skip ci] 2026-07-18 20:08:17 +00:00
jmiller cf191be338 fix(backup): repair Cancel Stalled fatal, stalled-run self-heal, runbackup overlay, update site
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 36s
- BackupsController::cancelStalled()/purge(): use Factory::getContainer()
  instead of the protected CMSApplication::getContainer() (fatal on Cancel Stalled)
- BackupStatusHelper::markStalledAsFailed(): flip orphaned "running" records
  older than a 1h threshold to "fail"; swept when the records list loads
- backup detail view: render "Not finished" for a null/zero backupend
  instead of the bogus "Monday, November 29, -0001"
- runbackup: full-screen black overlay (fixed, z-indexed) instead of an
  in-admin-chrome card, matching the lock overlay
- script.php ensureUpdateSite(): recreate a missing package update site in
  postflight so the "update site not found" banner self-heals

Authored-by: Moko Consulting
Claude-Session: https://claude.ai/code/session_019V1WPYojhKyyPHewfUsPEz
2026-07-18 15:04:10 -05:00