Ubuntu

Nextcloud 整合性チェック不合格

Nextcloudを32から33にアップグレードしたところ、コードの整合性で問題が発生した。
管理画面にはこんなメッセージが表示されている。

✕ コードの整合性
  いくつかのファイルは整合性チェックに合格していません。無効なファイルのリスト... 再スキャン...

※無効なファイルのリスト、と、再スキャンがリンクになっている。

回復がなかなか難しかったので、メモを残しておく。



ここから広告
広告
広告ここまで


その1 mimetypelist.js

無効なファイルのリストをクリックしてみた。
※[CTRL]キーを同時に押すこと推奨。

Technical information
=====================
The following list covers which files have failed the integrity check. Please read
the previous linked documentation to learn more about the errors and how to fix
them.

Results
=======
- core
- INVALID_HASH
- core/js/mimetypelist.js

Raw output
==========
Array
(
[core] => Array
(
[INVALID_HASH] => Array
(
[core/js/mimetypelist.js] => Array
(
[expected] => cb945c6402e12d9e7d42d0359acf95a6e9a9b0c1f3bd8528f598a7fb1694e5ae34c80cf44ef6c8901eac1bfdd152de3315fc7eac007efee0f33f09ed3e518b6a
[current] => 6b290ba45e633706e1fe761ca21422053c113f17b2bb35f2351f2cf1c3b893aa543af6c594077ca213c755cfa0d002e22109bb1797bbadd8fb410ca839143e0e
)

)

)

)

結果からすると、必要ファイルが更新されていなかったと思われる。
Geminiさんに聞いてみたところ、コンテナにファイルが入っているから、それを本番環境にコピーすればOK、とのことだった。

念のため今あるファイルを待避して、コンテナの中のファイルを本番環境に置いてみた。

$ sudo mv /var/www/strage/nextcloud/core/js/mimetypelist.js ./
$ sudo docker cp nextcloud:/usr/src/nextcloud/core/js/mimetypelist.js /var/www/strage/nextcloud/core/js/mimetypelist.js
$ sudo chown www-data:www-data /var/www/strage/nextcloud/core/js/mimetypelist.js

※コンテナの /var/www/html を /var/www/strage/nextcloud にバインドマウントしている。
※色々なケースが考えられるから、コンテナの中に入って /usr/src/nextcloud/core/js/ から /var/www/html/core/js/ にコピーするのが安全かもしれない。

古いファイルと新しいファイルを比較してみたが、古いファイルの方が中身が多い。
Geminiさんによると、こんなことが行われたらしい。

  • MIMEタイプの動的読み込み(Lazy Loading)が改善された。
  • その際、従来のmimetypelist.jsに書かれていた定義の一部が、コアの別の場所やjsonスキーマへと再配置・移行された。
  • そのため新しいファイルの中身が減っている。

これが本当なのかどうかは確かめていないが、起きている事柄を考慮すると、妥当な落とし所のように思った。

さて、コンテナを再起動して整合性の問題は解消…とならない。
アップグレード時に実行した以下を再実行し、再スキャンをクリックしたところ、この問題は解消した。

$ sudo docker exec -u www-data nextcloud php occ maintenance:repair --include-expensive

しかし、次の整合性の問題が発見される。

その2 drawio.svg, dwb.svg

問題解消したかな、と思い管理画面にいったところ、依然として整合性の問題が表示されている。

もう一度、無効なファイルのリストをクリックしてみる。
※[CTRL]キーを同時に押すこと推奨。

Technical information
=====================
The following list covers which files have failed the integrity check. Please read
the previous linked documentation to learn more about the errors and how to fix
them.

Results
=======
- core
- EXTRA_FILE
- core/img/filetypes/drawio.svg
- core/img/filetypes/dwb.svg

Raw output
==========
Array
(
[core] => Array
(
[EXTRA_FILE] => Array
(
[core/img/filetypes/drawio.svg] => Array
(
[expected] =>
[current] => 92e0974cf869bf8ab969c3442dc2b80d55fde36441d22924db74916a06b407520aa2a9dc39336f9157195ebede697ffac0e639360879255ab91932d406e1897d
)

[core/img/filetypes/dwb.svg] => Array
(
[expected] =>
[current] => 43731dd5f17a048112ea5109b40b02ec019b3ee2324385a0f448e3bd2264cb13dc160ab018d893f92f8e2f168fd09009b51578c8c6b97a02a1617c67ac087701
)

)

)

)

Geminiさんに聞いたところ、そこにあってはいけないファイルが残ってしまっている、とのことだった。
expectedが空欄なのは、そういう意味なのね。

$ sudo mv /var/www/strage/nextcloud/core/img/filetypes/drawio.svg ./
$ sudo mv /var/www/strage/nextcloud/core/img/filetypes/dwb.svg ./

この後、勢い余って、先程の occ maintenance:repair --include-expensive を実行した。
けれども、理屈からすると関係なかったと思う。

再スキャンをクリックしたところ、この問題は解消した。

さいごに

この手の問題が発生したとき、なかなか答えが見つけられなくて、解決までに丸1日かかるのが普通だった。
今回も一応検索してみたけれど、私には原因と対策を見つけることができなかった。

Geminiとの会話には少し手間取ることもあるけれど、それでも問題解決までの時間は圧倒的に速い。
今回みたいに答えがない系の問題は、基本がどうなのか、といったところから質問して理解する必要もあるけれど、自分で調べるよりは断然速い。

そうなると、ネットを探しに行く機会も減る。

今となっては、「この記事に書いている実装をしたんだけど…」なんて聞きに行く始末。
まぁでも、エコシステムといえば、エコシステムかもしれない。

ここから広告
広告
広告ここまで

コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他