応答しないファイル記述子をシミュレートする方法は?

応答しないファイル記述子をシミュレートする方法は?

ログファイルに書き込むアプリケーションがあります。 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

そのうちの1つを開くと、もう一方の端には何もありません。

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

サービスをローカルで実行することもできます。 Dockerで(またはコンテナ化または仮想化を介して)実行することもできます。これは、他のオプションとの違いを知ることができないので好ましい。

関連情報