arquivo de histórico cresce indefinidamente

1

Eu acredito que tenho o mesmo problema que esse cara . Estou no AIX, com tcsh 6.12.00

Após (provavelmente) um logout ruim, o arquivo de histórico cresceu exponencialmente, até que a cota parou (e quando a cota foi atingida, vários outros problemas ocorreram com trabalhos em lote que não puderam ser executados por causa disso). O conteúdo do arquivo de histórico era apenas:

 9917 host: path > 
    Use "logout" to logout.

repetido para todo o sempre (~ 50 milhões de vezes, na verdade). Observe que

host: path >

é na verdade o prompt (que eu ofusquei um pouco para evitar spammers).

Agora, existem dois problemas (possíveis separados) que aconteceram:

  1. por que essa saída foi para o arquivo .history (em vez disso - diga - minha tela quando saí)
  2. por que o limite de savehist não foi aplicado (era 5000 então nunca deveria chegar a 9917)

A única coisa que posso pensar é de um processo cujo stdout (ou err) foi redirecionado para lá, mas isso é realmente estranho! Você tem alguma pista sobre esse problema?

Infelizmente não consigo reproduzir o problema à vontade, o que ajudaria na depuração.

EDIT: sim, isso aconteceu com um login remoto (ssh), feito a partir de um emulador de terminal X no Linux (a máquina remota é AIX, o linux local )

EDIT: a única coisa que posso pensar é um bug no tcsh, que, no caso de algo "ruim" ocorrer ao tty, use erroneamente o descritor de arquivo .history, que deveria estar aberto apenas para atualizar o histórico. Mas é o caso? Não há nada mencionado aqui

Davide
fonte

Respostas:

1

Não há respostas definidas aqui, mas algumas idéias aleatórias que podem ou não ajudar:

A frase "Use" logout "para sair." soa muito como o tcsh tem um caractere EOF (^ D) e não gostou dele, pedindo para você digitar 'logout'. Então, de onde todos esses (hipotéticos) EOFs vieram?

Você é, como a pessoa que está tendo um problema com isso no Cygwin, usando o shell via um emulador de terminal X de algum tipo (xterm, rxvt, o que for)? Eu estou querendo saber se o que está acontecendo é o emulador de terminal fecha, fechando assim o ptys que o processo de shell está se conectando, o que faz com que o shell leia uma série 'infinita' de caracteres EOF, no ponto em que gira no infinito. Talvez haja algum tipo de corrida aqui, onde o termo janela fecha a loja antes de realmente notificar o shell que a sessão está completa?

Uma coisa para tentar seria descobrir a) se tcsh na sua configuração realmente aceitar (ou rejeitar) EOF para sair, e b) se rejeitar, descobrir a alternância para permitir isso.

Eu sei que isso é especulativo, na melhor das hipóteses, eu não uso tcsh e meu conhecimento de X internals e tty emulação é (felizmente pela minha sanidade) bastante mínima. Mas um cenário como esse parece plausível, de qualquer forma.

Jack Lloyd
fonte
Obrigado pela sua resposta (editei minha pergunta com detalhes sobre seus comentários). Eu já suspeitava de algo assim, mas isso não explica meus pontos 1 e 2 acima. Vou tentar, mas como não consigo reproduzir o problema, não posso ter certeza de que resolvi o problema.
Davide