以前のリリースでデータ損失の印象を与えた後、 Linux 上の ZFS のメンテナンス担当者は、新しいバージョンを急いでリリースしました。
ZFS on Linux 0.7.7 は 3 月 21 日にリリースされたばかりですが、この GitHub スレッドの「リストできないファイルや消えるファイル」というタイトルのように、ユーザーは「大量のファイルがあるディレクトリをコピーするとデータが失われる」という経験をしました。
このバグにより、コピーを試みると、ファイルシステムがいっぱいであるというエラーが発生し、ファイルが目的の宛先に届かなくなるという問題が発生しました。
ユーザーはいくつかの Linux で問題を確認し、ロールバックするか、解決を待つかについてすぐに議論しました。
Oracle ZFS担当者がBig RedにファイルシステムをLinuxにアップストリーム化するよう要請
続きを読む
彼らがチャットしている間に、このコミットの形で犯人が見つかりました。その後、このコミットは削除され、ZFS on Linux 0.7.8 がリリースされましたが、このコミットの削除のみが変更点となっています。
新バージョンは驚くべき速さで作成されました。バグ報告のスレッドは2018年4月7日に開始され、修正は3日後にリリースされました。この粗雑なコミットに3人のレビュアーが承認したにもかかわらず、この迅速な対応はオープンソースにとってある種の勝利と言えるかもしれません。®
追加更新
Linux 上の ZFS 開発者からは、「実際にはデータは失われていないことが判明しました」という連絡がありました。
しかし、データが失われているようです。開発者のリチャード・ヤオ氏は次のように説明しています。「このリグレッションにより、新しいハードリンクが作成された一部のディレクトリでハードリンクが失われました。アップグレードしたすべてのシステムが、実際に問題を引き起こすほど十分な数の新しいハードリンクをディレクトリに作成したわけではありません。」
良いニュースは「すべてのファイルを復元できる」ということです。悪いニュースは「名前とディレクトリパス」が失われてしまうことです。
しかし、プロジェクトの開発者たちは「ドライバーに統合され、影響を受けたシステムを修復できるツール」の開発に取り組んでいる。「失われたファイルはlost+foundディレクトリに保存される」
「ただし、いくつか注意点があります」とヤオ氏は述べた。「破損したディレクトリを含むスナップショットは、プールを元の状態に戻すためにすべて破棄する必要があります。誰かがそれらのスナップショットをクローン化していた場合は、クローンも破棄する必要があります(ただし、データのコピーは可能です)。」
このツールは、システム管理者による手動削除が必要な項目のリストを提供します。ツールが削除を提案した場合は、そのままにしておくことも可能です。その場合、問題のあるスナップショットに関する煩わしいメッセージが表示されるだけで、特に問題が発生することはありません。