Atraso antes que o arquivo novo / modificado apareça

1

Estou vendo dois casos separados em que há um atraso (aleatório?) antes que um arquivo novo ou modificado apareça.

O primeiro caso é o meu ambiente de desenvolvimento Rails: Modifico um arquivo de código (no vim) e o salvo, mudo para o meu navegador e recarrego a página. O servidor Rails percebe que algo foi alterado e recarregado. Tudo está bem e bem, exceto que, às vezes, o arquivo modificado desaparece por alguns segundos e o Rails reclama de um arquivo perdido.

O segundo caso é o indexador Sphinx em nosso ambiente de produção. Eu tenho uma configuração de indexação delta - o indexador Sphinx cria novos arquivos de índice e os mescla com os existentes. Tudo está bem e bem, exceto de vez em quando (cerca de uma vez a cada 10 minutos), um dos novos arquivos não existe quando o indexador tenta lê-lo - o mesmo processo que acabou de ser escrito e sabe por um fato que é lá.

Em ambos os casos, o arquivo está lá alguns segundos depois, parecendo presunçoso como se nada tivesse acontecido.

Alguém pode explicar isso ou dar algumas dicas sobre onde procurar uma solução?

O ambiente de desenvolvimento está rodando o CentOS 6.3, e o sistema de arquivos em que estou trabalhando é um ext3 local. O ambiente de produção é um Debian 7 (wheezy), e os arquivos de índice do Sphinx estão em um ext4 local.

    
por Weetu 11.12.2014 / 13:18

1 resposta

0

Este é um problema causado pelo Vim. O Vim apaga os arquivos antes de escrever o novo arquivo. Isto contrasta com p. Emacs (e o editor WingIDE) eu uso.

Tenho notado isso com um pequeno utilitário Python que eu executo ao testar um novo código: ele roda para ver se alguma lista de arquivos foi alterada com base em seus registros de data e hora e executa algum comando (normalmente os arquivos .py são verificados e primeiro deles é usado como um argumento para python para uma execução de teste).

Não há nenhum problema ao usar o emacs ou wingide, mas quando eu uso o vim para alterar um dos arquivos sob observação, o utilitário python sai porque os arquivos que o timestamp tenta verificar não existem.

    
por 11.12.2014 / 13:57