如何模拟无响应的文件描述符?

如何模拟无响应的文件描述符?

我们有一个写入日志文件的应用程序。在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 中运行它们(或通过容器化或虚拟化)。这是首选,因为您将不知道其他选项有什么区别。

相关内容