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