EFS 1.14 bug: long pty checking delays

Ben Liblit (liblit@z-code.ncd.com)
Tue, 17 Oct 1995 13:07:33 -0700


EFS is a beautiful piece of work, but I'm encountering a small problem
starting up new FTP processes.  I often encounter rather long delays
before things get started, on the order of ten to twenty seconds.
I've tracked the delays down to efs-pty-check, which seems to be
taking its own sweet time deciding if I've got a pty or not.  I've
also confirmed that setting efs-pty-check-threshold to nil eliminates
the delay.

First off, I'm concerned that I may be asking for trouble by disabling
pty checking.  What are the consequences of failing to notice that an
FTP process got stuck with a pipe instead?  How about adding a richer
description of this issue to the documentation?

Second, Emacs 19.29 introduced a new function, process-tty-name, that
sounds like it may overlap with efs-pty-check:

    process-tty-name: a built-in function.

    Return the name of the terminal PROCESS uses, or nil if none. This
    is the terminal that the process itself reads and writes on, not
    the name of the pty that Emacs uses to talk with that terminal.

    (process-tty-name PROC)

Is this the same sort of information that efs-pty-check is trying to
deduce?  If so, could this function be used to implement a version of
efs-pty-check that does all the same pty checking but without
unsightly delays?  Clearly, such an alternate implementation would
have to be used only conditionally, since process-tty-name will not be
a defined function on many Emacsen.

Lastly, a side question.  Near as I can tell, EFS has not changed
since August of 1994.  Yet it still calls itself "beta".  Is the
software really still in beta test?

Thanks for any answers you can provide!


Emacs  : GNU Emacs 19.29.1 (mips-sgi-irix5, X toolkit) of Wed Sep  6 1995 on zeppelin.z-code.com
Package: efs

current state:
==============
(setq
 efs-19.23-version "1.14/1.9"
 efs-auto-version "1.14/1.7"
 efs-cu-version "1.14/1.11"
 efs-defun-version "1.14/1.3"
 efs-dired-version "1.14/1.30"
 efs-fnh-version "1.14/1.1"
 efs-netrc-version "1.14/1.9"
 efs-ovwrt-version "1.14/1.5"
 efs-report-version "1.14/1.8"
 efs-version "1.14/1.52"
 efs-36-bit-binary-file-name-regexp nil
 efs-anonymous-umask nil
 efs-auto-save 0
 efs-auto-save-remotely nil
 efs-backup-by-copying nil
 efs-binary-file-host-regexp nil
 efs-binary-file-name-regexp "\\.\\([zZ]\\|t?gz\\|lzh\\|arc\\|zip\\|zoo\\|ta[rz]\\|dvi\\|sit\\|ps\\|elc\\|gif\\|Z-part-..\\|tpz\\|exe\\|[jm]pg\\|TZ[a-z]?\\|lib\\)\\(~\\|~[0-9]+~\\)?$\\|\\.\\(ARC\\|ELC\\|TAGS\\|EXE\\|ZIP\\|DVI|ZOO\\|GIF\\|T?GZ\\|[JM]PG\\)\\([.#;][0-9]+\\)?$"
 efs-buffer-name-case nil
 efs-compute-remote-buffer-file-truename nil
 efs-debug-ftp-connection nil
 efs-ding-on-chmod-failure t
 efs-ding-on-umask-failure t
 efs-disable-netrc-security-check nil
 efs-expire-ftp-buffers t
 efs-ftp-buffer-expire-time nil
 efs-ftp-program-args '("-i" "-n" "-g" "-v")
 efs-ftp-prompt-regexp "^\\(ftp\\|Ftp\\|FTP\\)> *"
 efs-gateway-ftp-prompt-regexp "^\\(ftp\\|Ftp\\|FTP\\)> *"
 efs-gateway-hash-mark-size nil
 efs-gateway-incoming-binary-hm-size nil
 efs-generate-anonymous-password t
 efs-hash-mark-size 1024
 efs-high-security-hosts nil
 efs-incoming-binary-hm-size nil
 efs-local-apollo-unix nil
 efs-ls-cache-max 5
 efs-make-backup-files '(unix
			 sysV-unix
			 bsd-unix
			 next-unix
			 apollo-unix
			 dumb-unix
			 dumb-apollo-unix
			 super-dumb-unix
			 )
 efs-max-ftp-buffer-size 3000
 efs-maximize-idle nil
 efs-message-interval 0
 efs-nlist-cmd "ls"
 efs-nslookup-on-connect nil
 efs-nslookup-program "nslookup"
 efs-prompt-for-transfer-type nil
 efs-pty-check-retry-time 5
 efs-pty-check-threshold 1000
 efs-retry-time 5
 efs-root-umask nil
 efs-send-hash t
 efs-short-circuit-to-remote-root nil
 efs-suppress-abort-recursive-edit-and-then nil
 efs-text-file-name-regexp ".*"
 efs-treat-crlf-as-nl nil
 efs-umask nil
 efs-verbose t
 efs-verify-anonymous-modtime nil
 efs-verify-modtime-host-regexp ".*"
 efs-ftp-program-name "ftp"
 efs-ftp-program-args '("-i" "-n" "-g" "-v")
 efs-local-host-regexp "\\(^[^.]+\\|\\.\\(z-code\\|ncd\\)\\.com\\)$"
 efs-ftp-local-host-regexp "\\(^[^.]+\\|\\.\\(z-code\\|ncd\\)\\.com\\)$"
 efs-gateway-host "firewall.ncd.com"
 efs-gateway-type '(proxy "ftp" ("-i" "-n" "-g" "-v"))
 reporter-version "2.12"
 features '(reporter
	    efs-report
	    info
	    findlib
	    efs-dired
	    passwd
	    efs-netrc
	    efs-defun
	    comint-fix
	    comint
	    efs
	    tabify
	    env
	    man
	    assoc
	    dired-shell
	    compile
	    dired-awrh
	    defer-lock
	    lazy-lock
	    font-lock
	    dired-font-lock
	    after-region
	    dired-fsf
	    dired
	    hsmail
	    mail-hist
	    ring
	    truncate-mode
	    pp
	    gnus-cite
	    gnus-msg
	    gnus-score
	    md4
	    nntp
	    sendmail
	    rnews
	    gnus-vis
	    easymenu
	    gnus-cache
	    gnus
	    gnus-cus
	    gnus-ems
	    custom
	    nnheader
	    timezone
	    mail-utils
	    ehelp
	    electric
	    holidays
	    lunar
	    solar
	    cal-dst
	    diary-lib
	    calendar
	    cal-menu
	    ediff-hook
	    rsz-mini
	    emacsd
	    paren
	    saveplace
	    crypt
	    crypt++
	    msb
	    mini-cl
	    cl
	    cl-19
	    scroll-in-place
	    iswitch
	    byte-optimize
	    bytecomp
	    byte-compile
	    advice
	    advice-preload
	    completer
	    hyperbole
	    hmouse-key
	    h-skip-bytec
	    hmouse-drv
	    hypb
	    hact
	    hhist
	    hvar
	    set
	    hversion
	    view
	    default-dir
	    backquote
	    efs-cu
	    efs-19\.23
	    efs-fnh
	    efs-ovwrt
	    efs-auto
	    iso-syntax
	    case-table
	    disp-table
	    vc-hooks
	    lisp-float-type
	    lisp-mode
	    page
	    select
	    scroll-bar
	    menu-bar
	    mouse
	    facemenu
	    faces
	    frame
	    x-toolkit
	    )
 )