[Top][All Lists]

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

Connection drops data if it sent too quickly

From: Kai Großjohann
Subject: Connection drops data if it sent too quickly
Date: Mon, 03 Feb 2003 21:37:17 +0100
User-agent: Gnus/5.090015 (Oort Gnus v0.15) Emacs/21.3.50 (i686-pc-linux-gnu)

Tramp calls, say, ssh via start-process.  This results in an
interactive shell from the remote host.  Then Tramp sends commands to
this shell.  For example, it might send:

    mimencode -u -b <<'EOF'

Then Tramp uses process-send-region to send base64 encoded data to
this ssh process.  Then Tramp sends the string EOF.

The problem is that the connection is dropping bytes when the data is
sent too quickly.  I've changed it to send chunks of 500 bytes, then
wait 0.1 seconds.  This works.

This happens using for Michael, a codeveloper, using GNU Emacs 20.7.1
(hppa1.1-hp-hpux10.20, Motif) to connect to localhost.  The file in
question is between 300k and 400k (so the base64 encoded data is
correspondingly bigger).  It also happens to other people, but I don't
have a reference.  The remote end only sees 150 bytes (!) or so of it.
Removing the (sleep-for 0.1) but keeping the send-in-chunks mechanism
lets 250k (or so) arrive on the remote end.

There seems to be code in process-send-region (or a function called
from it) that tries to avoid sending data too quickly, but I don't
grok it.

Just unconditionally throttling the speed of data transmission seems
kludgy.  But what to do?

(Maybe Michael could try what happens when he does

  mimencode -b /tmp/largefile | \
    ssh address@hidden /bin/sh -c 'mimencode -u -b > /tmp/outfile'

outside of Emacs.  Maybe the problem is in ssh.  But nevertheless,
Tramp needs to work around it.)

Thanks for any advice.
A turnip curses Elvis

reply via email to

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