[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems with 2.0.22; hangs on connect

From: Kai Großjohann
Subject: Re: Problems with 2.0.22; hangs on connect
Date: Sat, 31 May 2003 16:10:10 +0200
User-agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3.50 (gnu/linux)

Joel Stanley <address@hidden> writes:

> --Contents of *debug tramp/scp cypher*--
> # Opening connection at cypher using scp...
> # Waiting for prompts from remote shell
> # Waiting 60s for prompt from remote shell
> # Found remote shell prompt.
> # Initializing remote shell
> $ exec env PS1='$ ' /bin/sh
> # Waiting 30s for remote `/bin/sh' to come up...
> exec env 'PS1=$ ' /bin/sh^M
> $ # Setting up remote shell environment
> stty -inlcr -echo kill '^U'^M
> $ $ # Determining coding system
> foo^M
> bar^M
> $ # Trying `stty -onlcr'
> foo^M
> bar^M
> $ $ [[Regexp `\(^[^#$%>
> ]*[#$%>] *\|^[^#$%>
> ]*[#$%>] *\)\'' not found in 30 secs]]
> --Contents of *tramp/scp cypher* --
> foo^M
> bar^M
> $ $ 

Ayee.  This part of Tramp has probably not been exercised in a long
time.  It is only used on no-mule Emacsen.

The problem it is trying to solve is that the remote host sends \r\n
as EOL.  But Tramp doesn't want to see the \r.  So it issues an stty
command that tries to remove the \r part.  But it seems that `stty
-onlcr' is the wrong command to do that.  After this, no newline at
all shows up.

You can see this from the two dollar signs in the same line.  It
seems that there are two shell prompts without an intervening newline.

Hm.  I'm not sure what to do now.

What you can try to investigate is the following: when Tramp has
reached that spot, switch to the *tramp/foo* buffer.  Then, you can
send strings to the remote host by typing this:

    M-: (process-send-string nil "string-to-send") RET

One thing to try is to just send a simple hello command:

    M-: (process-send-string nil "echo hello\n") RET

Or maybe also try the command that Tramp itself uses:

    M-: (process-send-string nil "echo foo; echo bar\n") RET

Then you can compare what happens.  Are foo and bar shown on the same
line?  Is there a newline between them?  Is there a ^M at the end of
a line?

Also, please try sending various stty invocations to the remote end,
followed by the "echo foo; echo bar\n" trick to see the results.

After "echo foo; echo bar\n" the buffer should contain:

    $                   (shell prompt from previous test)
    foo                 (no ^M at end of line)
    bar                 (neither here)
    $                   (shell prompt from the new command sent)

If you like, you can also erase the *tramp/foo* buffer between tests
if the old contents are confusing.

I'm sorry that my response doesn't contain a fix, but rather just
instructions for helping you help yourself, but I don't have a
no-mule XEmacs installed.  Hm.  Of course, I could try to install it,
to see what happens.

This line is not blank.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]