如何模擬無回應的檔案描述符?

如何模擬無回應的檔案描述符?

我們有一個寫入日誌檔案的應用程式。在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 中運行它們(或透過容器化或虛擬化)。這是首選,因為您將不知道其他選項有什麼區別。

相關內容