GNU bug report logs - #30762
27.0.50; Apparent regression in process.c caused by checking pty_flag before calling setsid

Previous Next

Package: emacs;

Reported by: Thomas Fitzsimmons <fitzsim <at> fitzsim.org>

Date: Sat, 10 Mar 2018 04:20:02 UTC

Severity: normal

Found in version 27.0.50

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Thomas Fitzsimmons <fitzsim <at> fitzsim.org>
Subject: bug#30762: closed (Re: bug#30762: 27.0.50; Apparent regression in
 process.c caused by checking pty_flag before calling setsid)
Date: Sun, 11 Mar 2018 02:34:01 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#30762: 27.0.50; Apparent regression in process.c caused by checking pty_flag before calling setsid

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 30762 <at> debbugs.gnu.org.

-- 
30762: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=30762
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Eli Zaretskii <eliz <at> gnu.org>, Thomas Fitzsimmons <fitzsim <at> fitzsim.org>
Cc: 30762-done <at> debbugs.gnu.org
Subject: Re: bug#30762: 27.0.50; Apparent regression in process.c caused by
 checking pty_flag before calling setsid
Date: Sat, 10 Mar 2018 18:33:05 -0800
Eli Zaretskii wrote:
> This change is on the emacs-26 branch as well, so if we want to
> restore previous code, we should do it on emacs-26, not only on
> master.

I installed the fix into emacs-26 and merged it into master. Thanks, Thomas, for 
reporting it and for tracking down the fix.

[Message part 3 (message/rfc822, inline)]
From: Thomas Fitzsimmons <fitzsim <at> fitzsim.org>
To: bug-gnu-emacs <at> gnu.org
Cc: Paul Eggert <eggert <at> cs.ucla.edu>
Subject: 27.0.50;
 Apparent regression in process.c caused by checking pty_flag before
 calling setsid
Date: Fri, 09 Mar 2018 23:18:51 -0500
Hi,

On x86_64, CentOS 7.3.1611, I noticed that on master tip (I tested
461e6818...), eudc-expand-inline was hanging.  It calls the ldapsearch
command line utility (by way of ldap-search-internal) using
start-process, and waits for a password prompt:

  (let* ((process-connection-type nil)
	 (proc-args (append arglist ldap-ldapsearch-args
			    filter))
	 (proc (apply #'start-process "ldapsearch" buf
		      ldap-ldapsearch-prog
		      proc-args)))
    (while (null (progn
		   (goto-char (point-min))
		   (re-search-forward
		    ldap-ldapsearch-password-prompt-regexp
		    (point-max) t)))
      (accept-process-output proc 1))
      [...])

master tip gets stuck in that while loop, whereas Emacs 25.1 is fine.

If I print the contents of the buffer within the loop, it shows:

Process ldapsearch stopped (tty output)

I isolated the working-to-non-working transition to this commit:

commit 8e5a769965313a7a1c42b5992ed24e8b0ea71ead
Author: Paul Eggert <eggert <at> cs.ucla.edu>
Date:   Tue Dec 6 23:41:45 2016 -0800

    Clean out some IRIX cruft
    
    * etc/MACHINES: Remove obsolete discussion of IRIX.
    * src/process.c (allocate_pty) [__sgi]: Remove SGI-specific code.
    (create_process) [HAVE_PTYS]: Don't worry about IRIX.
    * src/syntax.c (scan_sexps_forward): Remove obsolete comment.
    * src/unexelf.c [__sgi]: Don't include <syms.h>.
    (unexec) [__sgi]: Remove SGI-specific code.

and specifically the addition of this check in src/process.c:

-      /* We tried doing setsid only if pty_flag, but it caused
-	 process_set_signal to fail on SGI when using a pipe.  */
-      setsid ();
+      if (pty_flag)
+	setsid ();

If I remove the if (pty_flag) line, then eudc-expand-inline works again.

It may be that ldap-search-internal should change how it's invoking
ldapsearch, but I thought I would report the change in process.c
behavior anyway.

Thomas



This bug report was last modified 7 years and 78 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.