GNU bug report logs - #33050
27.0.50; [macOS] Problem with process input with process-connection-type nil

Previous Next

Package: emacs;

Reported by: Filipp Gunbin <fgunbin <at> fastmail.fm>

Date: Mon, 15 Oct 2018 19:04:02 UTC

Severity: normal

Found in version 27.0.50

Done: Filipp Gunbin <fgunbin <at> fastmail.fm>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Filipp Gunbin <fgunbin <at> fastmail.fm>
To: Thomas Fitzsimmons <fitzsim <at> fitzsim.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 33050 <at> debbugs.gnu.org
Subject: bug#33050: 27.0.50; [macOS] Problem with process input with process-connection-type nil
Date: Wed, 24 Oct 2018 17:05:39 +0300
This may be the clue to the problem:

man termios(4):

   If a process is in the foreground process group of its controlling termi-
   nal, read operations are allowed.  Any attempts by a process in a back-
   ground process group to read from its controlling terminal causes a
   SIGTTIN signal to be sent to the process's group unless one of the fol-
   lowing special cases apply:  If the reading process is ignoring or block-
   ing the SIGTTIN signal, or if the process group of the reading process is
   orphaned, the read(2) returns -1 with errno set to EIO and no signal is
   sent.  The default action of the SIGTTIN signal is to stop the process to
   which it is sent.

I output the process-attributes of the started process, and note tpgid
(ID of foreground process group on the process’s tty) and tty:

- p-c-t t

  attrs=((etime 0 0 7080 0) (start 23504 29912 167367 0) (nice . 0)
  (tpgid . 16419) (tty . ttys001) (pgrp . 16419) (ppid . 98669) (state
  . R) (comm . ldapsearch) (group . staff) (egid . 20) (user . fgunbin)
  (euid . 501))

 ldapsearch's pgrp=16419, it is using ttys001 for r/w, and it's in
 foreground process group on that tty (tpgid . 16419)

- p-c-t nil

  attrs=((etime 0 0 6177 0) (start 23504 29897 662718 0) (nice . 0)
  (tpgid . 98669) (tty . ttys000) (pgrp . 16416) (ppid . 98669) (state
  . R) (comm . ldapsearch) (group . staff) (egid . 20) (user . fgunbin)
  (euid . 501))

  ldapsearch's pgrp=16416, it is using ttys000 for r/w (??), and it is
  NOT in foreground process group on that tty - (tpgid . 98669).  98669
  is emacs, and emacs is in foreground - this is ok.

So the question is - why the process in the second case thinks that it
has a tty?  When it tries to use it, it receives SIGTTIN and is stopped,
as termios man page says.  My test case with p-c-t nil results in the
processed being stopped, indeed.

My knowledge of these things is very limited, forgive me if I'm clearly
wrong somewhere.

Filipp




This bug report was last modified 6 years and 152 days ago.

Previous Next


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