Por que o Tramp trava ao enviar scripts Perl para o host remoto?

1

Eu sei que isso não é diretamente relacionado à programação, mas estou perplexo, e já que o Emacs é minha principal ferramenta de programação ...

Estou tentando configurar o Tramp para se conectar ao meu host de teste. Estou chamando-o usando /ssh:host:.bashrc ou /scp:host:.bashrc , mas ambos correm para o mesmo problema, mais cedo ou mais tarde.

Eles só chegam até a primeira tentativa de enviar um script perl antes do processo e eu sou forçado a matar a sessão ssh de um cliente.

Por exemplo:

tramp: Opening connection for username@host using scp...
tramp: Waiting 60s for local shell to come up...
tramp: Sending command 'ssh host -l username  -e none || exit'
tramp: Waiting for prompts from remote shell
tramp: Waiting 60s for prompt from remote shell on host host
tramp: Found remote shell prompt on 'host'
tramp: Waiting 30s for remote '/bin/sh' to come up...
tramp: Setting up remote shell environment
tramp: Determining coding system
tramp: Waiting 30s for 'HISTFILE=$HOME/.tramp_history; HISTSIZE=1; export HISTFILE; export HISTSIZE'
tramp: Waiting 30s for 'set +o vi +o emacs'
tramp: Waiting 30s for 'unset MAIL MAILCHECK MAILPATH'
tramp: Waiting 30s for 'unset CDPATH'
tramp: Setting shell prompt
tramp: Remote '/bin/sh' groks tilde expansion, good
tramp: Finding command to check if file exists
tramp: Finding a suitable 'ls' command
tramp: Checking remote '/bin/ls' command for '-n' option
tramp: Testing remote command '/bin/ls' for -n...okay
tramp: Using remote command '/bin/ls' for getting directory listings
tramp: Sending the Perl script 'tramp_file_attributes'...
tramp-wait-for-output: Process has died

Esse rastreamento está usando o método scp . O método ssh se parece com isto:

tramp: Opening connection for username@host using ssh...
tramp: Waiting 60s for local shell to come up...
tramp: Sending command 'ssh host -l username  -e none || exit'
tramp: Waiting for prompts from remote shell
tramp: Waiting 60s for prompt from remote shell on host host
tramp: Found remote shell prompt on 'host'
tramp: Waiting 30s for remote '/bin/sh' to come up...
tramp: Setting up remote shell environment
tramp: Determining coding system
tramp: Waiting 30s for 'HISTFILE=$HOME/.tramp_history; HISTSIZE=1; export HISTFILE; export HISTSIZE'
tramp: Waiting 30s for 'set +o vi +o emacs'
tramp: Waiting 30s for 'unset MAIL MAILCHECK MAILPATH'
tramp: Waiting 30s for 'unset CDPATH'
tramp: Setting shell prompt
tramp: Remote '/bin/sh' groks tilde expansion, good
tramp: Finding command to check if file exists
tramp: Finding a suitable 'ls' command
tramp: Checking remote '/bin/ls' command for '-n' option
tramp: Testing remote command '/bin/ls' for -n...okay
tramp: Using remote command '/bin/ls' for getting directory listings
tramp: Sending the Perl 'mime-encode' implementations.
tramp-wait-for-output: Process has died

Como você pode ver, a última coisa que acontece é tentar enviar o script Perl. O processo está morrendo porque eu estou matando em outra casca, caso contrário o emacs nunca volta disso.

Estou me conectando com FreeBSD 6.2-RELEASE-p5 do OSX 10.5.7, se fizer alguma diferença, usando Tramp 2.0.58-pre na compilação do Carbon Emacs 22.3.1.

    
por Chris R 14.07.2009 / 17:24

1 resposta

1

Talvez o strace no pid do sshd na extremidade receptora (o servidor do FreeBSD) mostre onde ele está travando. Você precisará seguir processos filho com -f. Se o pid do sshd for 3125:

sudo strace -vfp 3125 -o sshdStraceDump.txt
    
por 14.07.2009 / 19:42