Como posso simular um descritor de arquivo que não responde?

Como posso simular um descritor de arquivo que não responde?

Temos um aplicativo que grava em um arquivo de log. No ambiente prod, o diretório do arquivo de log é mapeado para um NAS:

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

Disseram-me que em algumas ocasiões o NAS caiu, o que fez com que nosso aplicativo fosse bloqueado indefinidamente ao tentar gravar no arquivo de log.

Gostaria de tentar reproduzir isso para ter certeza de que aconteceu e também para poder testar uma correção. Mas não temos NAS em nosso ambiente de desenvolvimento.

Existe alguma maneira de fazer com que um descritor de arquivo pare de responder, de modo que uma tentativa de gravação nele seja bloqueada indefinidamente?

Responder1

Crie um pipe nomeado, mas não o abra para leitura:

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

Responder2

Abra um deles sem nada do outro lado.

  • Um pipe nomeado.
  • Um canal anônimo.
  • Uma tomada de internet.
  • ...

Você também pode executar um serviço localmente. Você pode até executá-los no docker (ou em contêiner ou virtualização). Esta é a opção preferida, pois você não terá ideia das diferenças que existem nas outras opções.

informação relacionada