photo by Scarygami 今日ownCloudを9.0.2にアップデートしようとした。だがアップデート後エラーとなり動作しなくなったのでチェックポイントで以前のバージョンに戻したという話。続きを読むから。
目次
CLIでアプデ
Webからだとどういうわけか画面がおかしくなるので、9.0.0から実装されたコマンドラインによるアップデートを試してみた。
$ sudo -u www-data -s $ cd /path/to/owncloud $ php updater/application.php ownCloud updater 1.0 - CLI based ownCloud server upgrades Checking system health. - file permissions are ok. Current version is 9.0.1.3 Online version is 9.0.2 [stable] What would you do next? [0] download [1] upgrade [2] abort > 1
nginx/php-fpmが動作するユーザー権限(Ubuntuだとwww-data)でowncloudのディレクトリに入り、php updater/application.phpを起動する。
1番を選択するとアップデートが始まる。0番だとパッケージのダウンロードのみ行う。
今回はアップデートなので1番を選択。チェックポイントの作成後アップデートが始まる。
死亡
しかし、データベースアップデート等が無事に終わったと思いきや、最後に初期化失敗という表示が。ほぼ同時にクライアントが接続不可の表示に。
Initialization failed with message: Use upgrade:checkpoint --list to view a list of checkpoints upgrade:checkpoint --restore [checkpointid] to revert to the last checkpoint Please attach your update.log to the issues you reporting. Done
update.logを見てみる。
$ cat updater/update.log (前略) [error] [Symfony\Component\Process\Exception\ProcessFailedException] The command "php /path/to/owncloud/occ --no-warnings config:list --private - -output "json"" failed. Exit Code: 255(Unknown error) Output: ================ Error Output: ================ PHP Fatal error: Class OCA\Encryption\Crypto\Encryption contains 1 abstrac t method and must therefore be declared abstract or implement the remaining methods (OCP\Encryption\IEncryptionModule::isReadyForUser) in /path/to/owncl oud/apps/encryption/lib/crypto/encryption.php on line 550 (後略)
ロールバックじゃよ
んー暗号化モジュールのコード周りのバグか?ということで、アップデート前に作成されたチェックポイントで以前のバージョンに戻してみる。
$ php updater/application.php upgrade:checkpoint --list 9.0.1.3-573100239a077 - May 10 2016 06:24 9.0.1.3-573100b13c1bc - May 10 2016 06:27 $ php updater/application.php upgrade:checkpoint --restore 9.0.1.3-573100b13c1bc Restored checkpoint 9.0.1.3-573100b13c1bc
これでアップデート前の状態に戻った。暗号化されたファイルも問題なくアクセスできることを確認。
GitHubから関連するIssuesを探したがこれくらいしかなかった。
何日くらいか待てば修正版来るのかな…?