テクノロジー · 実用ガイド
Linux の「Value too large for defined data type」?overflow した metadata field を証明
file は正常かもしれません。binary と syscall、size/inode/blocks/filesystem counter、caller ABI を特定してから program boundary を修正します。

file は正常かもしれません。binary と syscall、size/inode/blocks/filesystem counter、caller ABI を特定してから program boundary を修正します。
EOVERFLOW は caller type で結果を表現できない状態です。 Linux stat は off_t、ino_t、blkcnt_t で失敗し得ます。
1. caller と error を保存
command、stderr、exit、binary path/version、architecture、container、runtime library、mount namespace を保存します。64-bit host でも caller が旧 ABI の場合があります。
削除、truncate、copy、remount を先にしません。EOVERFLOW は representation failure であり corruption ではありません。
2. operation と metadata を分類
bounded syscall trace で stat/open、statfs/statvfs、time conversion を分け、pathname と errno 75 を保存します。
stat は size、inode、block count、filesystem call は counter が原因になり得ます。
3. known-good interface と比較
同じ namespace と mount で current tool を使い device、inode、size、blocks、filesystem を比較します。
binary が 32-bit、static、legacy toolchain、compatibility wrapper か確認します。small file でも large inode は存在します。
4. program boundary を修正
source があるなら build 全体で large-file interface を統一し、_FILE_OFFSET_BITS=64 を header 宣言前に有効化します。
source がないなら maintained ABI-correct build を使います。data 移動は比較であり根本修復ではありません。
5. original object を検証
original unchanged object と boundary fixture を再試験し identity と成功を確認します。
architecture/macros を build に記録し、large-file と large-inode regression test を各 mount で実行します。
