`du --apparent-size` が 90% 以上ずれることがあるのはなぜですか?

`du --apparent-size` が 90% 以上ずれることがあるのはなぜですか?

私は Pacman パッケージ (基本的にはいくつかの特別なメタデータ ファイルを含む tarball) をビルドするソフトウェアに取り組んでいます。テスト スイートはいくつかのパッケージをビルドし、その結果得られたパッケージを記録された予想結果と比較します。

パッケージに記録されるメタデータのフィールドの 1 つは、パッケージのインストール サイズです。du -s --apparent-sizeこれは、tar する前にルート ディレクトリで実行することによって決定されます。

これらはすべて、私が開発しているローカルの Arch Linux ボックスで完全に正常に動作します。パッケージは、インストールされたサイズ (バイト単位、キロバイトではなくバイト単位) も含めて、テストを実行するたびに正確に再現されます。

今、私はこのテストを Travis でも有効にしました。Travis のドキュメントから私が理解している限りでは、このテストは Ubuntu-12.04 ベースのコンテナーで実行されます。そこでは、ほとんどの場合、テストは成功します。ほとんど時々、インストールされたサイズが 80 ~ 99% ずれて計算されることがあります。

失敗したテストの例を次に示します。https://travis-ci.org/holocm/holo/builds/89326780(テストその直前成功しました。)関連する差分の1つは

@@ -37,7 +37,7 @@
             pkgdesc = my foo bar package
             url = 
             packager = Unknown Packager
-            size = 37728
+            size = 1464
             arch = any
             license = custom:none
             replaces = foo-bar<2.1

これに関して不可解なのは、明らかなパターンがなく、時々しか発生しないということです。テストでは、いつものように同じファイルを配置し、du -s --apparent-size結果のツリーで実行し、完全に間違った結果に到達します。Ubuntu 12.04 VM でこれを再現しようとしましたが、1、2 回発生したことは確認しましたが、問題を再現するのに役立つパターンは確認できませんでした。

この問題の原因について、何か考えをお持ちの方はいらっしゃいますか?

編集: ああ、実は私が観察したパターンが 1 つあります。duテストケースごとに 1 回実行されます。最初のテストケースで失敗すると、この実行のすべてのテストケースで失敗します。

答え1

さて、@derobertからこれを回答として投稿するように促されました

あなたが抱えている問題は AUFS です...それに関連する問題を確認し、最新のカーネルに含まれていない理由を確認し、「安定性」を確認し、「POSIX の完全性」を確認してください。 – Hvisage 1 月 24 日 20:55

関連情報