テクノロジー · 実用ガイド
sort が一時ファイルを作れない? TMPDIR を変える前に実行時パスと容量を証明する
失敗したプロセスで GNU sort が選んだディレクトリを特定し、同じファイルシステムを検査し、元の処理の出力を検証してから修復を承認します。

GNU sort はメモリを超える入力を一時ファイルへ退避します。作成失敗は /tmp の満杯や、ホストの scratch がコンテナ内にも存在することを証明しません。
コマンドと実行環境を保存し、有効なディレクトリを導出し、同じ実行環境でパス、権限、ブロック、inode、quota を分け、元の処理と出力で閉じます。
コマンドを固定し有効ディレクトリを導出する
argv、作業ディレクトリ、環境、入出力、stderr、終了値、すべての -T と変数展開を保存します。
明示した -T、TMPDIR、/tmp の順に証拠で解決し、空値や不正値も隠しません。
失敗した実行環境でパスを検査する
同じ service user、job、container、mount namespace で親を含む存在と symlink、process 固有の mount view を確認します。
同じ identity で作成、書込み、close、rename、削除を試し、host root の成功を代用しません。
権限と容量を分ける
owner、mode、ACL、read-only flag、制約 policy を記録し、証明した境界だけを直します。
対象 filesystem の利用可能 block と inode、適用される user/group/project quota を記録します。
最小範囲の修復を選ぶ
container にパスがなければ承認済み scratch を bind し、容量なら所有 filesystem、権限や quota ならその policy だけを修正します。
代替 filesystem が意図され容量が十分な場合だけ -T または job 限定 TMPDIR を使い、rollback と cleanup を残します。
元の処理を再実行し出力を検証する
元の実行環境で元の sort を再実行し、有効ディレクトリ、mount、stderr、終了値、scratch 使用を保存します。
件数、sort key、duplicate 方針、checksum または下流 parse、atomic publish を確認し、経路が曖昧なら停止します。
