`du --apparent-size`が時々90%以上異なる理由は何ですか?

`du --apparent-size`が時々90%以上異なる理由は何ですか?

私はパックマンパッケージ(基本的にいくつかの特別なメタデータファイルを含むタールボール)を構築するソフトウェアを開発しています。テストスイートはいくつかのパッケージをビルドし、結果パッケージを記録された予想結果と比較します。

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

これは私が開発したローカルArch Linuxボックスでうまく動作します。テストが実行されるたびに、これらのパッケージはインストールサイズをバイト単位で正確に再現します(キロバイト、バイトではありません!)。

Ubuntu-12.04ベースのコンテナで実行されているTravisでもこのテストを有効にしました(Travisのドキュメントで理解しているように)。そこでテストはほとんど通過します。最大タイムズ。時々計算された取付寸法は80-99%の違いがあります。

以下は、失敗したテストの例です。https://travis-ci.org/holocm/holo/builds/89326780(試験を受けるその直前に成功。 ) 関連する違いの一つは

@@ -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回現れるのを見ましたが、問題を再現するのに役立つパターンは表示されません。

たぶんここで誰かがこの問題の原因を知っていますか?

編集:ああ、実際にパターンを観察しました。du各テストケースは一度実行されます。最初のテストケースが失敗すると、この実行のすべてのテストケースは失敗します。

ベストアンサー1

まあ、@derobertは私にこれを答えとして入れるように頼んだ。

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

おすすめ記事