応答しないファイル記述子をシミュレートするにはどうすればよいですか?

応答しないファイル記述子をシミュレートするにはどうすればよいですか?

ログ ファイルに書き込むアプリケーションがあります。prod 環境では、ログ ファイル ディレクトリは NAS にマップされます。

192.168.1.10:/storage/app/log 2554360832 11844608 2412762112   1% /usr/local/app/log

NAS がダウンし、ログ ファイルに書き込もうとするとアプリケーションが無期限にブロックされるというケースが数回あったと聞きました。

これが実際に起こったことなのかを確かめるために、また修正をテストできるように、これを再現してみたいと思います。しかし、私たちの開発環境には NAS がありません。

ファイル記述子を応答不能にして、書き込みの試行が無期限にブロックされるようにする方法はありますか?

答え1

名前付きパイプを作成しますが、読み取り用に開かないでください。

$ mkfifo /tmp/test-fifo
$ echo a > /tmp/test-fifo

答え2

片方の端に何も付けずに開きます。

  • 名前付きパイプ。
  • 匿名のパイプ。
  • インターネットソケット。
  • ...

サービスをローカルで実行することもできます。Docker (またはコンテナ化や仮想化) で実行することもできます。他のオプションにどのような違いがあるか分からないため、これが推奨されます。

関連情報