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.