Complete restore can leave the site half-restored

オープン
#247 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

@rafaelmaeuer がすでに取り組んでいます。

2026年10月29日 から。

  • #251 @rafaelmaeuer による — オープン

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
20/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
php, wordpress
領域
backend, devtools

調査の方向性

The issue describes restore behavior in the file-copy and EventSource request paths, but names no source files or tests. Read the restore implementation and inspect the open pull request #251 to understand the proposed fix. Done means the running BackWPup version remains in place and the copy finishes after the browser leaves the page.

索引モデルが issue の本文から書いたものです。

説明

Describe the bug
Two ways a complete restore leaves a mix of old and restored files:

  1. The backup's BackWPup replaces the running plugin. The file step copies wp-content/plugins/backwpup from the backup over the plugin running the restore. The database step and the cleanup then run the backup's (often older) code, so fixes in the installed version are not used.
  2. Leaving the restore page aborts the copy. The file copy runs in one EventSource request without ignore_user_abort. Following a link, closing the tab or dismissing an admin notice via its link makes PHP abort the copy halfway.

To Reproduce

  1. Install a newer BackWPup than the one in the backup and start a complete restore. After the file step, wp-content/plugins/backwpup/backwpup.php has the backup's version.
  2. On a site with All-In-One WP Security's firewall (loaded via auto_prepend_file), restore a backup containing a different AIOS version and leave the page while "Restoring: Directories" is running.

Observed
For case 2, the restore log stops mid-way and every request, including / and the restore page, fails with:

PHP Fatal error: Trait "AIOWPS\Firewall\File_Prefix_Trait" not found

AIOS' new config.php was copied, but the libs/traits/ folder it needs was still queued. The restore can't be resumed from the browser.

Expected behavior
The restore keeps the running BackWPup plugin and finishes the copy even if the browser leaves the page.

System

  • BackWPup 5.7.8 (restore code shared with 4.x)
  • PHP 8.3, MariaDB, All-In-One WP Security with firewall enabled

A fix is ready as a pull request.

主要言語
PHP
スター
96
フォーク
48
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

wp-media/backwpup のほかの issue

wp-media/backwpup の issue をすべて見る

似ている issue

PHP の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。