Dear GNU Emacs bug team and XEmacs bug team.
This bug is found in both Emacsen, hence the same bug report is sent
to both teams.
There is a bug related to `start-process' when
`process-connection-type' is set to nil (using pipe).
The bug was initially discussed on XEmacs mailing list, see the
following threads:
http://list-archive.xemacs.org/xemacs-beta/200201/msg00306.html
http://list-archive.xemacs.org/xemacs-beta/200201/msg00371.html
It has been tracked down to the above mentioned function/variable. It
is seen on all compilable XEmacs version from 21.1.6 and up and also
GNU Emacs 20.7.1. Due to some discussion on XEmacs mailing list I
believe that it is only related to (some) Unix versions of (X)Emacs,
i.e. *not* windows versions.
I believe it is related to some IPC stuff and is therefore not
deterministically reproducable, I have generated a skeleton elisp file
that provokes the bug, cvs is used as the process to be invoked, but
any other app may do as well.
The bug has been confirmed to exist by
Gerd Boerrigter <gerd.boerrigter(a)i2c-systems.com>
Following is the elisp code to provoke the bug, it works with both GNU
Emacs and XEmacs:
,----
| ;;
| ;; invoke as 'xemacs -batch -l bug-debug-batch.el; diff -u /tmp/cvs-tmp-pty.txt
/tmp/cvs-tmp-pipe.txt'
| ;;
| (let (
| (mypassword "PaSsWoRd");;insert a password here
| (cvs-directory (expand-file-name "~/projects/eicq/"))
| mycvs-pipe mycvs-pty
| )
| (progn
| (setq process-connection-type nil) ; Use a pipe.
| (find-file "/tmp/cvs-tmp-pipe.txt")
| (kill-region (point-min) (point-max))
| (let ((default-directory cvs-directory))
| (setq mycvs-pipe (apply 'start-process "mycvs-pipe" (current-buffer)
"cvs" '("-f" "status")))
| (while (eq (process-status mycvs-pipe) 'run)
| (accept-process-output mycvs-pipe 1 0)
| )
| )
| (goto-char (point-max))
| (beginning-of-line)
| (kill-line -1)
| (save-buffer)
| (kill-buffer (current-buffer))
|
| (setq process-connection-type t) ; Use a pty.
| (find-file "/tmp/cvs-tmp-pty.txt")
| (kill-region (point-min) (point-max))
| (let ((default-directory cvs-directory))
| (setq mycvs-pty (apply 'start-process "mycvs-pty" (current-buffer)
"cvs" '("-f" "status")))
| (when mypassword
| (process-send-string "mycvs-pty" (concat mypassword "\n"))
| )
| (while (eq (process-status mycvs-pty) 'run)
| (accept-process-output mycvs-pty 1 0)
| )
| )
| (when mypassword
| (goto-char (point-min))
| (kill-line (if (string-match "XEmacs" (version))
| 2
| 1))
| )
| (goto-char (point-max))
| (beginning-of-line)
| (kill-line -1)
| (save-buffer)
| (kill-buffer (current-buffer))
| )
| )
`----
================================================================
System Info to help track down your bug:
========================================
GNU Emacs:
----------
In GNU Emacs 20.7.1 (i386-suse-linux, X toolkit)
of tir maj 15 2001 on ivy
configured using `configure --with-gcc --with-pop --with-system-malloc --prefix=/usr
--exec-prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man
--sharedstatedir=/var/state --libexecdir=/usr/lib --with-x --with-x-toolkit=lucid
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib i386-suse-linux'
XEmacs:
-------
uname -a: Linux zeus 2.4.4-4GB #1 Fri May 18 14:11:12 GMT 2001 i686 unknown
./configure '--dynamic=no' '-with-mule'
XEmacs 21.5-b4 "bamboo" configured for `i686-pc-linux'.
Compilation / Installation:
Source code location:
/home/jarl/projects/cvs-sandbox/xemacs-devel/xemacs-21.5
Installation prefix: /usr/local
Operating system description file: `s/linux.h'
Machine description file: `m/intel386.h'
Compiler: gcc -g -O3 -Wall -Wno-switch -Winline
-Wmissing-prototypes -Wsign-compare -Wshadow
Relocating allocator for buffers: no
GNU version of malloc: yes
- Using Doug Lea's new malloc from the GNU C Library.
Window System:
Compiling in support for the X window system:
- X Windows headers location: /usr/X11/include
- X Windows libraries location: /usr/X11/lib
- Handling WM_COMMAND properly.
Using Lucid menubars.
Using Lucid scrollbars.
TTY:
Compiling in support for ncurses.
Compiling in support for GPM (General Purpose Mouse).
Images:
Compiling in support for GIF images (builtin).
Compiling in support for XPM images.
Compiling in support for PNG images.
Compiling in support for JPEG images.
Compiling in support for TIFF images.
Compiling in support for X-Face message headers.
Sound:
Compiling in support for sound (native).
Compiling in support for ESD (Enlightened Sound Daemon).
Databases:
Compiling in support for Berkeley database.
Compiling in support for GNU DBM.
Internationalization:
Compiling in support for Mule (multi-lingual Emacs).
Compiling in support for XIM (X11R5+ I18N input method).
- Using raw Xlib to provide XIM support.
Mail:
Compiling in support for "dot-locking" mail spool file locking method.
Other Features:
Inhibiting IPv6 canonicalization at startup.
Compiling in support for dynamic shared object modules.
Compiling in support for extra debugging code.
WARNING: ---------------------------------------------------------
WARNING: Compiling in support for runtime error checking.
WARNING: XEmacs will run noticeably more slowly as a result.
WARNING: Error checking is on by default for XEmacs beta releases.
WARNING: ---------------------------------------------------------
Load-Path Lisp Shadows:
----------------------
(/usr/local/lib/xemacs-21.5-b4/lisp/mwheel /home/jarl/elisp/mwheel
/usr/local/lib/xemacs/xemacs-packages/lisp/mule-base/char-table
/home/jarl/elisp/char-table)
Installed XEmacs Packages:
-------------------------
((zenirc:version 1.11 :type regular)
(xslt-process :version 1.05 :type regular)
(xemacs-devel :version 1.39 :type single-file)
(xemacs-base :version 1.56 :type regular)
(w3 :version 1.2 :type regular)
(vm :version 7.0 :type regular)
(viper :version 1.29 :type regular)
(view-process :version 1.11 :type regular)
(vhdl :version 1.13 :type regular)
(vc-cc :version 1.18 :type regular)
(vc :version 1.3 :type regular)
(tramp :version 1.0 :type regular)
(tpu :version 1.12 :type regular)
(tooltalk :version 1.13 :type regular)
(tm :version 1.29 :type regular)
(time :version 1.11 :type regular)
(textools :version 1.12 :type regular)
(text-modes :version 1.32 :type single-file)
(texinfo :version 1.2 :type regular)
(supercite :version 1.18 :type regular)
(strokes :version 1.08 :type regular)
(speedbar :version 1.21 :type regular)
(sounds-wav :version 1.1 :type regular)
(sounds-au :version 1.1 :type regular)
(slider :version 1.13 :type regular)
(skk :version 1.19 :type regular)
(sh-script :version 1.13 :type regular)
(sgml :version 1.08 :type regular)
(semantic :version 1.1 :type regular)
(scheme :version 1.11 :type regular)
(rmail :version 1.12 :type regular)
(reftex :version 1.23 :type regular)
(psgml :version 1.25 :type regular)
(ps-print-nomule :version 1.05 :type regular)
(prog-modes
:version
1
.48
:type
single-file)
(pcomplete :version 1.01 :type regular)
(pcl-cvs :version 1.56 :type regular)
(pc :version 1.2 :type single-file)
(os-utils :version 1.25 :type single-file)
(net-utils :version 1.23 :type single-file)
(mule-ucs :version 1.0 :type regular)
(mule-base :version 1.39 :type regular)
(misc-games :version 1.15 :type single-file)
(mine :version 1.14 :type regular)
(mh-e :version 1.13 :type regular)
(mew :version 1.14 :type regular)
(mailcrypt :version 2.09 :type regular)
(mail-lib :version 1.4 :type regular)
(lookup :version 1.08 :type regular)
(locale :version 1.18 :type regular)
(leim :version 1.17 :type regular)
(jde :version 1.31 :type regular)
(ispell :version 1.23 :type regular)
(ilisp :version 1.19 :type regular)
(igrep :version 1.08 :type regular)
(idlwave :version 1.23 :type regular)
(hm--html-menus :version 1.16 :type regular)
(gnus :version 1.57 :type regular)
(gnats :version 1.12 :type regular)
(games :version 1.13 :type regular)
(fsf-compat :version 1.09 :type single-file)
(frame-icon :version 1.09 :type regular)
(forms :version 1.13 :type regular)
(footnote :version 1.13 :type regular)
(eudc :version 1.34 :type regular)
(eterm :version 1.13 :type regular)
(eshell :version 1.01 :type regular)
(emerge :version 1.09 :type regular)
(elib :version 1.08 :type single-file)
(eieio :version 1.01 :type regular)
(eicq :version 1.05 :type regular)
(egg-its :version 1.26 :type regular)
(efs :version 1.26 :type regular)
(edt :version 1.12 :type regular)
(edit-utils :version 1.73 :type single-file)
(ediff :version 1.33 :type regular)
(edict :version 1.12 :type regular)
(edebug :version 1.14 :type regular)
(dired :version 1.11 :type regular)
(dictionary :version 1.06 :type regular)
(debug :version 1.14 :type regular)
(crisp :version 1.12 :type regular)
(cookie :version 1.13 :type regular)
(clearcase :version 1.0 :type regular)
(cc-mode :version 1.26 :type regular)
(calendar :version 1.18 :type regular)
(calc :version 1.17 :type regular)
(c-support :version 1.16 :type single-file)
(build :version 1.03 :type regular)
(bbdb :version 1.16 :type regular)
(auctex :version 1.28 :type regular)
(apel :version 1.2 :type regular)
(ada :version 1.1 :type regular)
(Sun :version 1.13 :type regular))
Features:
--------
(xemacsbug shadow hyper-apropos mail-extr gnus-picon w3-forms
w3-display w3-imap w3-widget css font w3-mouse w3-vars w3-cus
w3-keyword url mm mule-sysdp url-parse url-vars sort gnus-cite
psgml-dtd psgml-parse psgml-edit tempo psgml-xemacs sgml-mode psgml
psgml-html view-less view man shell comint time-stamp compile cc-mode
cc-align cc-cmds cc-engine cc-styles cc-langs cc-vars cc-menus imenu
cc-defs bookmark pp gnus-async gnus-score score-mode gnus-ml gnus-msg
gnus-art mm-uu mm-view disp-table gnus-topic gnus-sum nndraft nnmh
gnus-cache nnfolder pop3 env nnml gnus-group gnus-undo gnus-demon
nnmail mail-source format-spec nntp nnoo gnus-start gnus-range
gnus-spec gnus-int gnus-win gnus gnus-ems gnus-xmas message mml
mm-decode mm-encode mailcap mm-bodies uudecode mail-parse rfc2045
rfc2231 rfc2047 qp ietf-drums mail-abbrevs sendmail rfc822 mailheader
gnus-util time-date parse-time bbdb esms esms-conf esms-ssp-funs
time-functions dansk code-conversion mwheel vc ring vc-hooks
byte-optimize font-lock tex-site efs-cu eicq-toolbar eicq bytecomp
byte-compile smiley messagexmas nnheader nnheaderxm mm-util mail-prsvr
mail-utils annotations goto-addr overlay thingatpt wid-edit timezone
outline browse-url pcl-cvs diff-mode advice advice-preload
pcl-cvs-parse pcl-cvs-info pcl-cvs-defs pcl-cvs-util cvs-compat
dired-faces dired-xemacs dired cookie dll elib-node time cus-face
rsz-minibuf zenirc-autoloads xslt-process-autoloads
xemacs-devel-autoloads xemacs-base-autoloads w3-autoloads vm-autoloads
viper-autoloads view-process-autoloads vhdl-autoloads vc-cc-autoloads
vc-autoloads tramp-autoloads tpu-autoloads tooltalk-autoloads
tm-autoloads time-autoloads textools-autoloads text-modes-autoloads
texinfo-autoloads supercite-autoloads strokes-autoloads
speedbar-autoloads sounds-wav-autoloads sounds-au-autoloads
slider-autoloads skk-autoloads sh-script-autoloads sgml-autoloads
semantic-autoloads scheme-autoloads rmail-autoloads reftex-autoloads
psgml-autoloads ps-print-nomule-autoloads prog-modes-autoloads
pcomplete-autoloads pcl-cvs-autoloads pc-autoloads os-utils-autoloads
net-utils-autoloads mule-ucs-autoloads mule-base-autoloads
misc-games-autoloads mine-autoloads mh-e-autoloads mew-autoloads
mailcrypt-autoloads mail-lib-autoloads lookup-autoloads
locale-autoloads leim-autoloads jde-autoloads ispell-autoloads
ilisp-autoloads igrep-autoloads idlwave-autoloads
hm--html-menus-autoloads gnus-autoloads gnats-autoloads
games-autoloads fsf-compat-autoloads frame-icon-autoloads
forms-autoloads footnote-autoloads eudc-autoloads eterm-autoloads
eshell-autoloads emerge-autoloads elib-autoloads eieio-autoloads
eicq-autoloads egg-its-autoloads efs-autoloads edt-autoloads
edit-utils-autoloads ediff-autoloads edict-autoloads edebug-autoloads
dired-autoloads dictionary-autoloads debug-autoloads crisp-autoloads
cookie-autoloads clearcase-autoloads cc-mode-autoloads
calendar-autoloads calc-autoloads c-support-autoloads build-autoloads
bbdb-autoloads auctex-autoloads apel-autoloads ada-autoloads
Sun-autoloads src-autoloads loadhist auto-show fontl-hooks x-iso8859-1
slovenian czech romanian ccl mule-help code-cmds gutter-items
menubar-items x-menubar mode-motion mouse itimer auto-save lisp-mode
easymenu iso8859-1 page buff-menu lib-complete cus-file derived frame
text-props obsolete cus-start custom widget cl-extra mini-cl cl cl-19
packages backquote very-early-lisp file-coding mule lucid-scrollbars
cut-buffer lucid-menubars x c-balloon-help tty-frames tty toolbar
esd-sound native-sound scrollbar unix-processes multicast
network-streams subprocesses modules menu-accelerator-support menubar
berkeley-db dbm md5 xemacs xim gutter tiff png gif jpeg xface xpm xbm
lisp-float-type linux devices window-system base64)
Recent keystrokes:
-----------------
down down down down down down down down down down down
up up up up up up up up up up up up up up up up up
up up up up up up up up up up up up up C-a C-x C-s
C-x C-s C-right C-right C-left M-d j a r l 1 2 3 C-x
C-s C-_ C-_ C-x C-s C-x b RET up up up RET m C-c C-k
M-x x e m TAB M-BS x e m TAB r e TAB M-BS M-BS r e
p o TAB r t TAB x e TAB RET
Recent messages (most recent first):
-----------------------------------
Loading xemacsbug...done
Loading xemacsbug...
Making completion list...
Fontifying *mail*... done.
Fontifying *mail*...
Generating summary...done
Generating summary...
Fetching headers for nnml+softace:DIKU...done
Fetching headers for nnml+softace:DIKU...
Retrieving newsgroup: nnml+softace:DIKU...
Wrote /home/jarl/tmp/bug-demo-batch.el
Wrote /home/jarl/tmp/bug-demo-batch.el
Wrote /home/jarl/tmp/bug-demo-batch.el
Symbol's value as variable is void: sadfas
nil
t
nil
Making completion list...
Quit
Quit