`du --apparent-size`가 때때로 90% 이상 다른 이유는 무엇입니까?

`du --apparent-size`가 때때로 90% 이상 다른 이유는 무엇입니까?

저는 팩맨 패키지(기본적으로 일부 특수 메타데이터 파일이 포함된 타르볼)를 빌드하는 소프트웨어를 개발 중입니다. 테스트 스위트는 일부 패키지를 빌드한 다음 결과 패키지를 기록된 예상 결과와 비교합니다.

패키지에 기록되는 메타데이터 필드 중 하나는 패키지 설치 크기로, 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에서 이 문제를 재현하려고 하는데 해당 문제가 한두 번 나타나는 것을 보았지만 문제를 재현하는 데 도움이 되는 패턴이 나타나지 않습니다.

어쩌면 여기 누군가가 이 문제의 원인을 알고 있을까요?

편집: 아, 실제로 패턴을 관찰했습니다. du각 테스트 케이스는 한 번씩 실행됩니다. 첫 번째 테스트 사례가 실패하면 이번 실행의 모든 ​​테스트 사례가 실패합니다.

답변1

글쎄, @derobert가 나에게 이것을 답변으로 넣으라고 요청했습니다.

당신이 겪고 있는 문제는 AUFS입니다....관련 문제를 확인하고, 최신 커널에 없는 이유를 확인하고, "안정성"을 확인하고, "POSIX 무결성"을 확인하세요. – Hvisage 1월 24일 20:55

관련 정보